En esta guía, se proporciona una descripción general introductoria de cómo otros Google Cloud servicios participan en el proceso de implementación de funciones de Cloud Run.
Antes de comenzar
Familiarízate con las funciones de Cloud Run y los conceptos de implementación de origen en la guía de 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. A continuación, Cloud Build compila el código de forma automática en una imagen de contenedor y envía esa imagen 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 funciones de Cloud Run representa una función que se implementa en Cloud Run, ya sea 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 más antiguas, 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 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 paquetes de compilación de Google Cloud y el Framework de Functions crean una imagen de contenedor. Ten en cuenta que la cuenta de servicio de Cloud Build compila la imagen del contenedor.
Luego, tu 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 período de retención.
El nombre del bucket se genera automáticamente 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 paquetes de compilación de Google Cloud y el Framework de Functions crean una imagen de contenedor. Ten en cuenta que la cuenta de servicio de Cloud Build compila la imagen del contenedor.
Luego, tu 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 información sobre los diferentes tipos de funciones y tus opciones para activar funciones.
- Si ya creaste funciones con la API de Cloud Functions, consulta la guía de comparación de funciones de Cloud Run para obtener información sobre las diferencias entre las dos versiones de funciones de Cloud Run.