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 quieras asignar menos CPU y RAM al entorno de etapa de pruebas, o puedes asegurarte tu entorno de producción mantiene al menos 1 instancia activa y lista para entregar solicitudes. También puedes especificar diferentes variables de entorno y según el entorno y los recursos que quieras usar.
En esta guía, se describe cómo implementar un entorno de producción y de etapa de pruebas, cada uno para en un proyecto de Firebase independiente. Siguiendo los mismos principios, puedes implementar a otros tipos diferentes de entornos. Para obtener más información sobre los entornos, consulta consulta la Descripción general de entornos y la política General prácticas recomendadas para configurar Firebase proyectos.
Requisitos previos
- El código de la aplicación ya está almacenado en GitHub.
- Ya creaste un proyecto distinto para cada uno de tus
entornos, por ejemplo,
my-production-firebase-project
ymy-staging-firebase-project
Asegúrate de etiquetar tu Firebase de producción proyecto con el campo "production" medio ambiente del tipo de fila. - En cada proyecto, creaste un backend App Hosting, con el backend
configurada en la rama de GitHub que quieres implementar (como
main
). Consulta Comienza a usar App Hosting para obtener más información información.
Paso 0: Crea una configuración predeterminada en apphosting.yaml
App Hosting admite un archivo de configuración llamado apphosting.yaml
para administrar
configuración del entorno de ejecución (CPU, simultaneidad, límites de memoria, etc.) y el entorno
variables para tu app. También admite referencias a Secrets administrados con
Cloud Secret Manager, lo que hace que sea seguro registrarse en el control del código fuente. Para ver más
consulta Configura un
backend.
Para comenzar, crea un archivo apphosting.yaml
en el directorio raíz de tu app.
Este es el archivo de configuración de resguardo que se usa cuando un
no se encuentra el archivo de configuración específico del entorno. Los valores almacenados en
apphosting.yaml
debe ser una configuración predeterminada que sea segura de usar en todos los entornos.
En las siguientes secciones, se explica cómo anular los valores predeterminados en apphosting.yaml
para entornos específicos. Este flujo de ejemplo crea un entorno de etapa de pruebas.
Paso 1: Establece el nombre del entorno
Cada backend App Hosting tiene una configuración de Nombre del entorno. Este campo es para asignar tu backend a un archivo de configuración específico del entorno y también modificarse en cualquier momento. Solo puedes configurar un nombre de entorno por backend.
Para configurar el nombre del entorno de backend,
- En Firebase console, selecciona el proyecto de etapa de pruebas (en este ejemplo, my-staging-firebase-project).
- Selecciona App Hosting en el panel de navegación izquierdo.
- Haz clic en Ver panel en el backend que elegiste.
- En la pestaña Configuración, selecciona Implementación.
- En Nombre del entorno,ingresa el nombre de tu entorno. Puedes nombrar sea lo que más te guste. En este ejemplo, es staging.
- Haz clic en Guardar.
Cuando se activa un lanzamiento de App Hosting para tu backend (ya sea en Git)
push o de forma manual a través de la consola), App Hosting verificará si hay
apphosting.ENVIRONMENT_NAME.yaml
archivo antes
y volverá a apphosting.yaml
.
Paso 2: Crea el archivo apphosting.yaml
específico del entorno
Para la configuración específica del entorno, crea un archivo con el nombre
apphosting.ENVIRONMENT_NAME.yaml
para
y especificar anulaciones específicas del entorno. Este archivo tiene el mismo formato que
el archivo apphosting.yaml predeterminado y deben ubicarse en
el directorio raíz de tu app junto con apphosting.yaml
.
Durante el tiempo de compilación, App Hosting combina estos dos archivos y se le da prioridad a
valores en el archivo YAML específico del entorno en la base apphosting.yaml
.
En este ejemplo, crearás un archivo llamado apphosting.staging.yaml
en el
directorio raíz de la app:
runConfig:
cpu: 1
memoryMiB: 512
concurrency: 5
env:
- variable: API_URL
value: api.staging.service.com
availability:
- BUILD
- variable: DATABASE_URL
secret: secretStagingDatabaseURL
Supongamos que ya tenías un apphosting.yaml
con el siguiente aspecto:
runConfig:
cpu: 3
memoryMiB: 1024
maxInstances: 4
minInstances: 0
concurrency: 100
env:
- variable: API_URL
value: api.service.com
availability:
- BUILD
- RUNTIME
- variable: STORAGE_BUCKET
value: mybucket.appspot.com
availability:
- RUNTIME
- variable: API_KEY
secret: secretIDforAPI
El resultado combinado final, que puedes inspeccionar en los registros de Cloud Build, verse así:
runConfig:
cpu: 1
memoryMiB: 512
maxInstances: 4
minInstances: 0
concurrency: 5
env:
- variable: API_URL
value: api.staging.service.com
availability:
- BUILD
- variable: STORAGE_BUCKET
value: mybucket.appspot.com
availability:
- RUNTIME
- variable: API_KEY
secret: secretIDforAPI
- variable: DATABASE_URL
secret: secretStagingDatabaseURL
Ten en cuenta que también se reemplazaron ciertos valores de runConfig
, como CPU
como cualquier variable de entorno superpuesta.
Paso 3: Implementa tu base de código
Una vez que termines de editar el archivo apphosting.ENVIRONMENT_NAME.yaml
específico del entorno, envía el archivo a GitHub:
$ git add apphosting.<ENVIRONMENT_NAME>.yaml
$ git commit -m "Added environment specific yaml file"
$ git push
Cualquier backend etiquetado con este nombre de entorno usará la anulación específica
valores especificados en el archivo YAML correspondiente y recurrir
Es apphosting.yaml
cuando no se encuentra un valor. Para backends sin un
puedes seguir usando apphosting.yaml.
Próximos pasos
- Más información: Explora un codelab de Firebase que integra una app alojada en Funciones de IA de Google y Firebase Authentication: Next.js | Angular
- Conecta un dominio personalizado.
- Configura tu backend.
- Supervisa los lanzamientos, el uso del sitio y los registros.