Comprende el hosting de apps y cómo funciona

App Hosting controla una serie compleja de tareas en segundo plano para simplificar la de tu app. En esta página, se describen las partes clave de ese flujo de tareas, proporcionando información sobre los puntos en los que podrías querer personalizar el flujo según las necesidades de tu aplicación.

Compatibilidad con el framework

App Hosting proporciona asistencia de compilación e implementación sin necesidad de configuración para aplicaciones web. desarrolladas en estos frameworks:

  • Next.js 13 y versiones posteriores
  • Angular 17.2 y versiones posteriores

App Hosting identifica qué framework estás usando mediante la inspección del package-lock.json o algún otro archivo de bloqueo en tu repositorio. Si intentas implementar una app de Node.js al que le falta un archivo de bloqueo, App Hosting no podrá compilar y ejecutar tu app. Puedes crear package-lock.json si ejecutas npm install en tu directorio raíz.

Los adaptadores de framework de App Hosting tienen dos funciones clave:

  1. Analizan tu código fuente y cualquier archivo de configuración específico del framework (como next.config.js) para comprender el comportamiento configurado de tu app.
  2. Ejecutan el comando de compilación de tu app para generar recursos estáticos y crear un una versión optimizada de tu app para producción.

Los adaptadores de framework compilan tu app de Node.js con npm run build y funcionan mejor. con las secuencias de comandos de compilación predeterminadas para cada framework: next build para Next.js y ng build para Angular. App Hosting intentará realizar compilaciones con compilaciones personalizadas comandos, pero no puede garantizar el éxito de manera confiable.

Cómo funciona la integración del repositorio de App Hosting

La conexión importante entre tu repositorio de GitHub y App Hosting backend es manejado por Developer Connect, Plataforma de conectividad de Google Cloud para herramientas externas de DevOps. Durante la creación de un backend App Hosting, El flujo de trabajo de la IU de Developer Connect te guía en la instalación de la App de Firebase en GitHub. Los pasos clave en este proceso son los siguientes:

  1. Debes otorgarle a Developer Connect el Administrador de Secret Manager en el área de la seguridad en la nube. Esto permite que el sistema almacene credenciales de forma segura como “Secrets” en Cloud Secret Manager.
  2. Autorizas a la app de Firebase GitHub para que acceda a tu GitHub Cloud Storage.
  3. Developer Connect almacena un token de autorización de GitHub dedicado en tu el repositorio de Secret Manager del proyecto; no modifiques ni borres este token.

Además, App Hosting se integra en la API de comprobaciones de GitHub para proporcionar un verificar los lanzamientos. Esta verificación te permite ver el estado del lanzamiento GitHub y depura el proceso de implementación en caso de errores.

Integración en Firebase y otros servicios de Google

App Hosting configura tus entornos de compilación y entorno de ejecución de modo que puedas inicializa el SDK de Firebase Admin con Google Credenciales predeterminadas de la aplicación. De esa manera, tu backend puede comunicarse con otros productos de Firebase durante la compilación y la implementación.

La cuenta de servicio de backend App Hosting

Durante la compilación y en el entorno de ejecución, tu backend App Hosting se autentica con otros servicios de Google con una cuenta de servicio. Una cuenta de servicio predeterminada estos propósitos se crean la primera vez que habilitas App Hosting en una Proyecto de Firebase:

firebase-app-hosting-compute@PROJECT ID.iam.gserviceaccount.com

Esta cuenta de servicio se aplica a todos los backends de forma predeterminada permisos para que puedas compilar, ejecutar y supervisar tu app. También cuenta con permiso para autenticar el SDK de Admin con las credenciales predeterminadas de la aplicación para realizar operaciones como cargar datos desde Cloud Firestore Consulta Roles de App Hosting de Firebase

Si tu app necesita interactuar con servicios adicionales de Google en la compilación o desde un backend en ejecución, puedes personalizar la cuenta de servicio predeterminada agregando roles. Por ejemplo, si tu app requiere permisos para Vertex AI, puedes quizás debas agregar roles/aiplatform.user o algún rol relacionado.

Términos y definiciones clave

  • Backend: Es la colección de recursos administrados que App Hosting. crea para compilar y ejecutar tu app web.
  • Lanzamiento: Una versión específica de tu app activa, vinculada a una confirmación de Git.
  • Rama activa: Es la rama de tu repositorio de GitHub que se implementa en tu URL publicada. A menudo, es la rama en la que las ramas de atributos o de desarrollo de software.

Problemas conocidos y limitaciones

La vista previa de App Hosting tiene algunas limitaciones conocidas:

  • La eliminación de backends no funciona.
  • La optimización de imágenes aún no está disponible.
  • En algunos casos, un backend App Hosting puede mostrar Intermittent connection error mensajes en la URL de tu app. Si solucionas el problema, estará disponible en una versión posterior.
  • Los encabezados de control de caché se modifican para limitar las cachés de CDN a 60 s. en la en el futuro, cuando App Hosting pueda purgar rápidamente la caché en implementar, se eliminará este límite.
  • Los encabezados Set-Cookie se quitan de las respuestas entregadas a través de Plano de datos App Hosting. Habrá una solución disponible en una versión posterior.
  • Los archivos estáticos no almacenados en caché se entregan de Cloud Run. en una se almacenarán y se entregarán desde el origen App Hosting para obtener un mejor rendimiento.
  • Es posible que los SKU de App Hosting no aparezcan en la página de uso del backend en el Consola de Firebase. Estarán disponibles en una versión posterior.
  • La consola de Firebase puede mostrar de forma intermitente un mensaje que indica que no se encontró la compilación y que no es válido" en la creación del backend.
  • Actualmente, todos los backends en el mismo proyecto comparten una organización o cuenta de GitHub. Pueden conectarse a diferentes repositorios dentro de esa organización o cuenta. Para crear backends que estén conectados a diferentes cuentas de GitHub, haz lo siguiente: colocarlos en proyectos separados.
  • Por el momento, solo se admite la región us-central1.
  • El middleware, las reescrituras y los redireccionamientos de Next.js se ejecutan en Cloud Run, detrás de la CDN. Como estos no protegerán los recursos respuestas, asegúrate de establecer las directivas de control adecuadas para el contenido que estás renderizando.