Conecta Cloud Run a Firebase Hosting para dominios personalizados y CDN

Para configurar un extremo público nuevo para el servicio de Cloud Run, puedes usar Firebase Hosting frente al servicio de Cloud Run. Con Firebase Hosting, puedes obtener acceso a una CDN global y configurar dominios personalizados gratuitos para tu servicio. Firebase Hosting te permite dirigir las solicitudes de hosting al servicio de Cloud Run, pero es posible que requiera tiempo de integración si no estás familiarizado con el uso de Firebase Hosting.

Mediante las integraciones de Cloud Run (vista previa) que se describen en esta página, puedes exponer con rapidez tu servicio de Cloud Run a través de Firebase nuevo sitio de Firebase Hosting sin tener que configurar Firebase Hosting. Si deseas usar un sitio existente, consulta Entrega contenido dinámico y aloja microservicios con Cloud Run.

Antes de comenzar

  • Asegúrate de que el servicio de Cloud Run con el que te integras ya esté implementado.
  • Revisa la página de precios de Firebase Hosting. Se te facturan los recursos individuales usados en la integración.

Roles obligatorios

Para usar las integraciones de Cloud Run, tú o tu administrador deben otorgar roles de IAM en dos principales diferentes.

Haz clic para ver los roles necesarios para tu Cuenta de Google

Para obtener los permisos que necesitas para usar las integraciones de Cloud Run, pídele a tu administrador que otorgue a tu Cuenta de Google los siguientes roles de IAM en tu proyecto:

Haz clic para ver los roles necesarios para la cuenta de servicio

Para implementar el servicio de Cloud Run, puedes usar la cuenta de servicio predeterminada de Compute Engine creada automáticamente o especificar una cuenta de servicio administrada por el usuario. Esta cuenta de servicio debe tener los siguientes roles:

Conecta el servicio de Cloud Run a un sitio de Firebase Hosting

Puedes conectarte a un sitio de Firebase Hosting con la consola o la línea de comandos.

Console

  1. En la consola de Google Cloud, ve a la página Cloud Run.

    Ir a Cloud Run

  2. Haz clic en el servicio de la lista de servicios que deseas usar en esta integración.

  3. Haz clic en la pestaña Integraciones.

  4. Haz clic en Agregar integración.

  5. Haz clic en Firebase Hosting.

    imagen

  6. Ingresa el ID de un sitio en el cuadro de campo Subdominio (ID del sitio). Tu servicio se alojará en site_ID.web.app después de su creación.

  7. Si se te solicita que habilites una lista de APIs, haz clic en Habilitar y espera a que las API se habiliten. Ten en cuenta que la API de Firebase Hosting está sujeta a las Condiciones del Servicio de Firebase.

  8. En Recursos, observa los recursos nuevos que se crearán como resultado de esta integración.

  9. Haz clic en Enviar y espera a que se creen la integración y los recursos.

    • Cuando finalice, se mostrarán las URLs públicas del sitio.
    • También puedes hacer clic en el vínculo proporcionado para ir directamente a la consola de Firebase.

gcloud

  1. Actualiza a la versión más reciente de Google Cloud CLI:

    gcloud components update
  2. Crea la integración:

    gcloud beta run integrations create \
    --type=firebase-hosting \
    --service=SERVICE \
    --parameters='site-id=SITE_ID'

    Reemplaza lo siguiente:

    • SITE_ID por el ID del sitio de Firebase Hosting que deseas crear y usar Esto aparece como el subdominio de la URL de Firebase “SITE_ID.web.app”
    • SERVICE por el nombre del servicio de Cloud Run que usas.

    De manera opcional, puedes incluir la marca --service-account=SERVICE_ACCOUNT_EMAIL.

    • Reemplaza SERVICE_ACCOUNT_EMAIL por la dirección de correo electrónico de la cuenta de servicio administrada por el usuario (PROJECT_NUMBER-compute@developer.gserviceaccount.com) que se usa para implementar el servicio. Omite esta marca si deseas usar la cuenta de servicio de procesamiento predeterminada (SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com).

      Para seguir usando la cuenta de servicio especificada cuando implementas integraciones de Cloud Run, ejecuta lo siguiente:

      gcloud config set runapps/deployment-service-account
  3. Espera entre 1 y 2 minutos mientras se crea el sitio de Firebase Hosting. Cuando se completa el proceso, se muestra el siguiente mensaje:

    [firebase-hosting] integration [firebase-hosting-1] has been created successfully.

    Puedes verificar el estado con gcloud beta run integrations describe.

Actualiza las integraciones de Firebase Hosting

La actualización de una integración actualiza todos los recursos de Google Cloud asociados a esa integración. Para actualizar una integración de Firebase Hosting de tu servicio de Cloud Run, haz lo siguiente:

Console

  1. En la consola de Google Cloud, ve a la página Cloud Run.

    Ir a Cloud Run

  2. Haz clic en el servicio que deseas actualizar.

  3. Haz clic en la pestaña Integraciones.

  4. Ubica la integración de Firebase Hosting y haz clic en Editar.

  5. Cuando termines de actualizar los campos, haz clic en Actualizar.

gcloud

  1. Usa el siguiente comando para obtener una lista de las integraciones disponibles:

    gcloud beta run integrations list
  2. Ejecuta el comando para actualizar la integración:

    gcloud beta run integrations update INTEGRATION_NAME

    Reemplaza lo siguiente:

    • Reemplaza INTEGRATION_NAME por el nombre de tu integración de Firebase Hosting.

    De manera opcional, puedes usar las siguientes opciones de marcas:

    Opción Descripción
    --parameters El ID del sitio por el que reemplazas el servicio de Cloud Run.
    --service-account La dirección de correo electrónico de la cuenta de servicio administrada por el usuario que se debe especificar cuando se actualiza el servicio. Esta cuenta de servicio anula la cuenta de servicio anterior que se usó en la implementación.

Ver integraciones de Firebase Hosting

Para ver el estado actual de las integraciones de Firebase Hosting con el servicio de Cloud Run, sigue estos pasos:

Console

  1. En la consola de Google Cloud, ve a la página Cloud Run.

    Ir a Cloud Run

  2. Haz clic en el servicio de la lista de servicios que deseas usar en esta integración.

  3. Haz clic en la pestaña Integraciones.

  4. Ubica la integración de Firebase Hosting que te interese y haz clic en Ver detalles.

gcloud

  1. Usa el siguiente comando para obtener una lista de las integraciones disponibles:

    gcloud beta run integrations list
  2. Con un nombre de la lista que se muestra, muestra sus detalles:

    gcloud beta run integrations describe INTEGRATION_NAME

    Reemplaza INTEGRATION_NAME por el nombre de tu integración de Firebase Hosting.

Borra integraciones de Firebase Hosting

Si borras una integración, también se borrarán todos los recursos de Google Cloud asociados a esa integración, pero no se borrará tu servicio de Cloud Run.

Para borrar una integración de Firebase Hosting de tu servicio de Cloud Run, haz lo siguiente:

Console

  1. En la consola de Google Cloud, ve a la página Cloud Run.

    Ir a Cloud Run

  2. Haz clic en el servicio del que deseas borrar una integración.

  3. Haz clic en la pestaña Integraciones.

  4. Ubica la integración de Firebase Hosting que te interese y haz clic en el ícono de puntos suspensivos a la derecha de la integración. Luego, haz clic en Borrar.

gcloud

  1. Usa el siguiente comando para obtener una lista de las integraciones disponibles:

    gcloud beta run integrations list
  2. Con un nombre de la lista que se muestra, borra la integración:

    gcloud beta run integrations delete INTEGRATION_NAME

    Reemplaza lo siguiente:

    • Reemplaza INTEGRATION_NAME por el nombre de tu integración de Firebase Hosting.

    De manera opcional, puedes usar las siguientes opciones de marcas:

    Opción Descripción
    --service-account La dirección de correo electrónico de la cuenta de servicio administrada por el usuario para realizar la operación de eliminación.

Limitaciones

Las integraciones de Cloud Run solo se admiten en ciertas regiones. Si necesitas usar una región que no sea compatible con las integraciones de Cloud Run, consulta Entrega contenido dinámico y aloja microservicios con Cloud Run.