Implementa varios entornos a partir de una base de código

Es común tener varios entornos implementados desde la misma base de código, cada uno con una configuración ligeramente diferente. Por ejemplo, es posible que desees asignar menos CPU y RAM a tu entorno de etapa de pruebas o asegurarte de que tu entorno de producción mantenga al menos 1 instancia activa y lista para entregar solicitudes.

Si quieres obtener más información acerca de los entornos, consulta la Descripción general de los entornos y las Prácticas recomendadas generales para configurar proyectos de Firebase.

Requisitos previos

Paso 0: Configura la rama de producción de Git

Si prefieres implementar el entorno de producción desde la rama main, continúa con el siguiente paso. Si quieres implementar la producción desde otra rama, como production, primero debes crearla en GitHub.

Para crear tu rama de producción con la IU de GitHub, consulta Crea y borra ramas dentro de tu repositorio.

Para crear la rama production de manera local, sigue estos pasos:

$ git checkout -b production
$ git push origin production:production

Paso 1: Configura el archivo apphosting.yaml en producción

Supongamos que deseas asegurarte de que tu producción siempre mantenga al menos 1 máquina en ejecución y tenga algunas variables de entorno específicas de la producción. Para ello, debes crear un archivo apphosting.yaml en la raíz de tu proyecto con algo similar a lo siguiente:

# Saved at <repository root>/apphosting.yaml

runConfig:
  minInstances: 1

env:
  - variable: STORAGE_BUCKET
    value: <production Cloud Storage bucket name>

Para ver una lista completa de los parámetros de configuración compatibles, consulta Configura App Hosting.

Después de editar apphosting.yaml, envíalo a tu repositorio de GitHub:

$ git add apphosting.yaml
$ git commit -m "Added production App Hosting backend configuration."
$ git push origin

Paso 2: Implementa tu base de código en producción

Una vez configurada la rama de Git de producción, puedes crear tu nuevo backend de App Hosting de producción. Para obtener instrucciones detalladas, consulta Comienza a usar App Hosting.

Para comenzar, navega a https://console.firebase.google.com/project/_/apphosting para crear un backend nuevo con Firebase console.

Para crearlo de manera local, primero debes tener instalado Firebase CLI y, luego, ejecutar lo siguiente:

firebase apphosting:backends:create --project <replace with your PRODUCTION project ID>

Cuando este comando se ejecute correctamente, tu backend de producción debería estar activo, y App Hosting compilará e implementará automáticamente cualquier confirmación nueva en tu rama de producción.

Paso 3: Configura la rama de Git de etapa de pruebas

Sigue los mismos pasos que los anteriores para crear la rama de etapa de pruebas en GitHub:

$ git checkout -b staging
$ git push origin staging:staging

Paso 4: Configura el archivo de etapa de pruebas apphosting.yaml

Tu rama de etapa de pruebas ya debería tener una copia del archivo apphosting.yaml de producción. Modifícalo para que App Hosting pueda desactivar el entorno de etapa de pruebas cuando no se use de forma activa y también establecer un valor diferente para la variable de entorno STORAGE_BUCKET.

# Saved at <repository root>/apphosting.yaml

runConfig:
  minInstances: 0

env:
  - variable: STORAGE_BUCKET
    value: <some other staging Cloud Storage bucket name>

Cuando termines de editar, envía el archivo a la rama de etapa de pruebas de Git:

$ git add apphosting.yaml
$ git commit -m "Added staging App Hosting backend configuration."
$ git push origin

Paso 5: Implementa tu base de código en la etapa de pruebas

Una vez configurada la rama de Git de etapa de pruebas, puedes seguir los mismos pasos que se hicieron antes para implementar la base de código en la etapa de pruebas:

firebase apphosting:backends:create --project <replace with your STAGING project ID>

Después de completar este paso, tendrás dos backends de App Hosting con la misma base de código, uno para producción y otro para la etapa de pruebas, cada uno en un proyecto de Firebase diferente.

Próximos pasos