Categorías
Google Cloud

Cómo gestionar proyectos con gcloud, respaldar firestore y corregir el error CORS

A Abril del 2024, ya existe una manera un poco más simple de configurar los backups. Ver: https://webintegral.com.co/blog/como-configurar-los-backups-de-firestore-desde-la-consola/

gcloud permite gestionar los proyectos Google Cloud. ¡En serio! Cosas como respaldar bases de datos (firestore) o similares, son más fáciles de hacer aquí.

Para hacerse la vida más fácil, se pueden crear ‘configuraciones’ que se pueden activar una a la vez para no tener que definir cada vez en que proyecto se está trabajando.

Antes de comenzar debes instalar Google Cloud CLI, que será la consola con la que podrás gestionar tus proyectos. En el siguiente enlace podrás encontrar las instrucciones para instalarlo: https://cloud.google.com/sdk/docs/install?hl=es-419

Para crear una configuración para el proyecto «mi-proyecto» se puede usar el siguiente comando:

gcloud config configurations create mi-proyecto

Una vez creada, se puede validar que efectivamente dicha configuración ahora está activa con el siguiente comando:

gcloud config configurations list

Saldrá una cosa como así:

NAME                 IS_ACTIVE  ACCOUNT                   PROJECT   DEFAULT_ZONE  DEFAULT_REGION

vaina-ahi            False

otra-cosa            False      [email protected]     cosa-dev

default              False      [email protected]     otra-dev

mi-proyecto          True

blabla-dev           False      [email protected]     blab-dev

Nótese que ‘mi-proyecto’ sale como activo. El lío es que está vacío. Toca asignarle el proyecto al que está asociado. Para esto, se especifica el id del proyecto con el siguiente comando.

gcloud config set project mi-proyecto

Esto correrá un proceso que se demora un ratico. Por favor no lo detenga. La otra cosa que se necesita es la cuenta que usará para la autenticación:

gcloud config set account [email protected]

Con esto queda la cuenta creada. Ahora sí, hagamos el backup de la base de datos del proyecto:

gcloud firestore export gs://bucket-pal-backup

Digamos que hoy es día de hacer respaldos en todos los proyectos, entonces para cambiar de un proyecto a otro, se utiliza el siguiente comando:

gcloud config configurations activate otro-proyecto

Sobra decir que solo se pueden activar los proyectos que ya están definidos y que aparencen con el comando

gcloud config configurations list

Si tu necesidad es corregir el error de CORS, deberás asegurarte en el Google CLI que efectivamente el proyecto en el que está saliendo el error esté completamente creado y habilitado (true). Luego en la terminal del proyecto, en la raíz podrás ingresar la instrucción:

gsutil cors set projects/wi/src/app/files-wi/cors.json gs://<nombre del bucket del storage>

El nombre del bucket del storage puedes encontrarlo en la consola de firebase, en el storage.

Por si está absolutamente perdido con esto:

  1. La documentación completa del comando config de gcloud puede encontrarse aquí: https://cloud.google.com/sdk/gcloud/reference/config
  2. La documentación de como se exportan datos de firestore está aquí: https://firebase.google.com/docs/firestore/manage-data/export-import
  3. Para poder exportar datos de firestore toca crear un bucket. La documentación está aquí: https://cloud.google.com/storage/docs/creating-buckets
  4. Y si usted no quiere tener que hacer esto nunca más, la manera de hacer un script que lo haga solito está aquí: https://cloud.google.com/firestore/docs/solutions/schedule-export

La virgen los acompañe.