El acto de implementar una función de Cloud Run coordina automáticamente los servicios de Google Cloud subyacentes, incluidos Cloud Storage, Cloud Build y Artifact Registry, para empaquetar y ejecutar tu código. Comprender estas interacciones de servicio te ayuda a configurar los permisos de Identity and Access Management necesarios, hacer un seguimiento de las dependencias de recursos y solucionar problemas de implementación o compilación.
Antes de comenzar
Familiarízate con los conceptos de Cloud Run Functions y de implementación de fuentes en la guía Opciones de implementación y modelo de recursos de Cloud Run.
Descripción general de la arquitectura
Cuando implementas el código fuente de la función en Cloud Run Functions, ese código fuente se almacena en un bucket de Cloud Storage. Luego, Cloud Build compila el código automáticamente en una imagen de contenedor y la envía a un registro de imágenes de Artifact Registry. Cloud Run Functions accede a esta imagen cuando necesita ejecutar el contenedor para ejecutar la función.
En el siguiente diagrama, el cuadro de Cloud Run Functions representa una función que se implementa en Cloud Run, con la API de Cloud Run Admin o la API de Cloud Functions. Por lo general, las funciones más nuevas se implementan con la API de Cloud Run Admin, y las funciones más antiguas se implementan con la API de Cloud Functions.
Según la API que se use cuando se implemente una función, ocurrirá lo siguiente:
Si implementaste tu función con la API de Cloud Run Admin, ocurrirá lo siguiente:
Tu código fuente se sube a un bucket de Cloud Storage que no tiene un período de retención.
- Si usas la encriptación predeterminada, el nombre del bucket se genera automáticamente y se llama
run-sources-PROJECT_ID-REGION. - Si proteges tus datos con claves de encriptación administradas por el cliente (CMEK), el nombre del bucket no se genera automáticamente y debes proporcionar uno.
- Si usas la encriptación predeterminada, el nombre del bucket se genera automáticamente y se llama
El código fuente se envía a Cloud Build, donde los buildpacks de Google Cloud y Functions Framework crean una imagen de contenedor. Ten en cuenta que la cuenta de servicio de Cloud Build compila la imagen de contenedor. De forma predeterminada, Cloud Run usa el tipo de máquina
e2-standard-2que proporciona Cloud Build.Luego, la imagen de contenedor se sube a Artifact Registry a través de un bucket creado automáticamente llamado
REGION-docker.pkg.dev/PROJECT_ID/cloud-run-source-deploy.La imagen se implementa en Cloud Run como un servicio.
Puedes activar o invocar la función con Eventarc, Pub/Sub o con otros activadores HTTP.
Si implementaste tu función con la API de Cloud Functions (v2), ocurrirá lo siguiente:
Tu código fuente se sube a un bucket de Cloud Storage que no tiene un período de retención.
El nombre del bucket se genera de forma automática y tiene el siguiente formato:
- Si usas la encriptación predeterminada, este bucket se llama
gcf-v2-sources-PROJECT_NUMBER-REGION. - Si proteges tus datos con CMEK, el bucket se llama
gcf-sources-PROJECT_NUMBER-REGION-CMEK_KEY_HASH.
- Si usas la encriptación predeterminada, este bucket se llama
El código fuente se envía a Cloud Build, donde los buildpacks de Google Cloud y Functions Framework crean una imagen de contenedor. Ten en cuenta que la cuenta de servicio de Cloud Build compila la imagen de contenedor. De forma predeterminada, Cloud Run usa el tipo de máquina
e2-standard-2que proporciona Cloud Build.Luego, la imagen de contenedor se sube a Artifact Registry a través de un bucket creado automáticamente llamado
REGION-docker.pkg.dev/PROJECT_ID/gcf-artifacts.La imagen se implementa en Cloud Run como un servicio.
Puedes activar o invocar la función con Eventarc, Pub/Sub o con otros activadores HTTP.
¿Qué sigue?
- Obtén más información sobre los diferentes tipos de funciones y las opciones para activar funciones.
- Si ya creaste funciones con la API de Cloud Functions, consulta la guía de comparación de Cloud Run Functions para conocer las diferencias entre las dos versiones de Cloud Run Functions.