Entrega contenido dinámico y aloja microservicios con Firebase Hosting

Firebase Hosting se integra en las opciones de computación sin servidores, incluidos Cloud Functions for Firebase y Cloud Run. Si usas Firebase Hosting con estas opciones, puedes alojar microservicios mediante el redireccionamiento de solicitudes HTTPS para activar tus funciones y apps alojadas en contenedores a fin de que se ejecuten en un entorno seguro y administrado.

Cloud Functions for Firebase: Escribe e implementas una función, que es código de backend que responde a un activador específico. Luego, usa Firebase Hosting para redireccionar solicitudes HTTPS a fin de activar la función que se debe ejecutar.

Cloud Run: Escribe e implementa una aplicación empaquetada en una imagen de contenedor. Luego, puedes usar Firebase Hosting para dirigir las solicitudes HTTPS a fin de activar la app alojada en contenedores que se debe ejecutar.

Casos de uso

¿Cómo puedes usar las opciones de computación sin servidores con Firebase Hosting?

  • Entrega contenido dinámico: Puedes entregar respuestas generadas de forma dinámica desde una función o app en contenedores que realice tareas lógicas en el servidor, además de entregar contenido estático en tu sitio de Hosting.

    Por ejemplo, puedes orientar un patrón de URL (como /blog/<blog-post-id>) hacia una función que use el parámetro de ID de la entrada de blog de la URL para recuperar contenido de forma dinámica desde tu base de datos.

  • Compila API de REST: Puedes usar las funciones para crear una API de microservicio.

    Por ejemplo, las funciones pueden controlar la funcionalidad de acceso en tu sitio web. Mientras este se aloje en /, cualquier solicitud que se realice a /api se redireccionará a la API de microservicio. Por ejemplo, consulta esta muestra de código abierto.

  • Almacena el contenido dinámico en caché: Puedes configurar el almacenamiento en caché de tu contenido dinámico en una CDN global.

    Por ejemplo, si una función genera contenido nuevo solo de manera periódica, puedes almacenar en caché el contenido generado durante un período breve, como mínimo, para acelerar la app. Además, se pueden disminuir potencialmente los costos de ejecución, ya que el contenido se entrega desde la CDN y no desde una función activada o una app alojada en un contenedor.

  • Renderiza las apps de una sola página de manera previa: Puedes crear etiquetas meta dinámicas para mejorar la SEO y optimizar el uso compartido entre diversas redes sociales. Mira este video o revisa esta muestra de código abierto para obtener más información.

Elige una opción sin servidores

Si bien Cloud Functions for Firebase y Cloud Run se integran en Firebase Hosting y ofrecen un entorno sin servidores seguro, con ajuste de escala automático y completamente administrado, ambas opciones se pueden aprovechar en casos de uso diferentes, y su configuración se puede personalizar en el nivel deseado.

Cuando se usa cualquiera de las opciones sin servidores, es mejor ubicarla junto con los servidores de Firebase Hosting. Para ello, debes implementarlas en una de las siguientes regiones:

  • us-west1
  • us-central1
  • us-east1
  • europe-west1
  • asia-east1

En la siguiente tabla, se describen algunas consideraciones básicas sobre el uso de Cloud Functions for Firebase en comparación con Cloud Run. Consulta la documentación detallada de cada producto (Cloud Functions for Firebase o Cloud Run) para ver un listado completo de las cuotas, los límites y las métricas.

Consideración Cloud Functions for Firebase Cloud Run
Configuración Firebase CLI agrupa tareas diversas en comandos únicos, desde la inicialización hasta la compilación y la implementación. Los contenedores ofrecen más opciones personalizables, por lo que las tareas de configuración, compilación e implementación implican pasos diferentes.
Entorno de ejecución Requiere Node.js, pero puedes especificar la versión que deseas usar. Cuando compiles el contenedor, debes especificar el entorno de ejecución.
Lenguajes y marcos de trabajo compatibles

JavaScript y TypeScript

Los frameworks web, como Express.js, son compatibles.

Se incluye cualquier lenguaje compatible con Dockerfiles, como Go, Node.js, Python, Java y otros.

Los frameworks web de cada lenguaje son compatibles.

Se agotó el tiempo de espera de la solicitud Hosting 60 segundos (consulta la Nota a continuación) 60 segundos (consulta la Nota a continuación)
Simultaneidad 1 solicitud por instancia de función
(sin simultaneidad por instancia)
Hasta 1,000 solicitudes simultáneas por instancia de contenedor
Facturación Uso de Cloud Functions

Cuota de uso gratuito, pero se necesita una cuenta de Cloud Billing. Consulta las Preguntas frecuentes de Firebase.

Uso de Cloud Run + Almacenamiento de Container Registry

Cuota de uso gratuito, pero se necesita una cuenta de Cloud Billing