En esta página, se explica cómo implementar aplicaciones en funciones de Cloud Run con Cloud Build. Si eres nuevo en Cloud Build, primero lee las guías de inicio rápido y la descripción general de la configuración de compilación.
Cloud Run Functions es un entorno de ejecución sin servidores para crear y conectar servicios en la nube. Con Cloud Run Functions, puedes escribir código sencillo y de un solo propósito que están conectadas a eventos emitidos desde tu infraestructura de nube y de Google Cloud. La función se activa cuando ocurre un evento que se está supervisando. Para obtener más información sobre las funciones de Cloud Run, consulta la documentación de las funciones de Cloud Run.
Antes de comenzar
Habilita la API de Cloud Run Functions:
Otorga el rol de Desarrollador de funciones de Cloud Run a la cuenta de servicio de compilación:
Abre la página Configuración de Cloud Build:
Configura el estado del rol Desarrollador de funciones de Cloud Run como Habilitado.
Para ejecutar los comandos de
gcloud
de esta página, instala Google Cloud CLI.Mantén el código fuente de la aplicación que quieres compilar e implementar Cloud Run funciones a mano. Tu código fuente debe almacenarse en un repositorio, como Cloud Source Repositories, GitHub o Bitbucket.
Configura la implementación
Cloud Build permite usar cualquier imagen de contenedor disponible a nivel público para ejecutar tareas. Para ello, especifica la imagen en una compilación step
en el archivo de configuración de Cloud Build.
Cloud Run Functions proporciona el comando gcloud functions deploy
, que
implementa la función desde el directorio que contiene el código de la función.
Puedes usar la imagen de cloud-sdk
como un paso de compilación en tu archivo de configuración para invocar los comandos de gcloud
dentro de la imagen.
Los argumentos que se pasan a este paso de compilación se pasan directamente a Google Cloud CLI, lo que te permite ejecutar cualquier comando de gcloud
en esta imagen.
Para implementar una aplicación en las funciones de Cloud Run, sigue estos pasos:
- En el directorio raíz del proyecto, crea el archivo de configuración de Cloud Build con el nombre
cloudbuild.yaml
ocloudbuild.json
. En el archivo de configuración, haz lo siguiente:
- Agrega un campo
name
y especifica el paso de compilación degcloud
. - Agrega
functions deploy
al campoargs
para invocar el comandogcloud functions deploy
. Para ver las opciones de configuración disponibles, consulta la referencia degcloud functions deploy
. --source=.
implica que el código fuente está en el directorio de trabajo actual.
YAML
steps: - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk' args: - gcloud - functions - deploy - FUNCTION_NAME - --region=FUNCTION_REGION - --source=. - --trigger-http - --runtime=RUNTIME
JSON
{ "steps": [ { "name": "gcr.io/google.com/cloudsdktool/cloud-sdk", "args": [ "gcloud", "functions", "deploy", [ "FUNCTION_NAME" ], "--region=FUNCTION_REGION", "--source=.", "--trigger-http", "--runtime=RUNTIME" ] } ] }
Reemplaza los valores de marcador de posición en el archivo de configuración anterior por lo siguiente:
FUNCTION_NAME
es el nombre de las funciones de Cloud Run que estás implementando. Si actualizas una función existente, este valor debe coincidir con el nombre de la función que actualizas.FUNCTION_REGION
es la región a la que te diriges para implementar funciones de Cloud Run. Para obtener una lista de las regiones compatibles, consulta Ubicaciones de las funciones de Cloud Run.--trigger-http
es el tipo de activador de esta función, en este caso, una solicitud HTTP (webhook).RUNTIME
es el entorno de ejecución en el que se ejecuta la función.
Para obtener más información sobre el uso de
gcloud functions deploy
, consulta la documentación de las funciones de Cloud Run.- Agrega un campo
Inicia la compilación con el archivo de configuración creado en el paso anterior mediante el siguiente comando:
gcloud builds submit --region=REGION --config CONFIG_FILE_PATH SOURCE_DIRECTORY
Reemplaza los valores de marcador de posición en el archivo de configuración anterior por lo siguiente:
CONFIG_FILE_PATH
es la ruta de acceso al archivo de configuración de compilación.SOURCE_DIRECTORY
es la ruta o la URL del código fuente.REGION
es una de las regiones de compilación admitidas.
Si se no especifica
CONFIG_FILE_PATH
niSOURCE_DIRECTORY
en el comandogcloud builds submit
, Cloud Build da por hecho que el archivo de configuración y el código fuente están en el directorio de trabajo actual.
Implementación continua
Puedes automatizar la implementación de tu software en funciones de Cloud Run mediante la creación de activadores de Cloud Build. Puedes configurar tus activadores para compilar y, luego, implementar imágenes cada vez que actualices tu código fuente.
Para automatizar tu implementación en funciones de Cloud Run, sigue estos pasos:
En la raíz de tu repositorio, agrega un archivo de configuración con pasos para invocar el comando
gcloud functions deploy
:YAML
steps: - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk' args: - gcloud - functions - deploy - FUNCTION_NAME - --region=FUNCTION_REGION - --source=. - --trigger-http - --runtime=RUNTIME
JSON
{ "steps": [ { "name": "gcr.io/google.com/cloudsdktool/cloud-sdk", "args": [ "gcloud", "functions", "deploy", [ "FUNCTION_NAME" ], "--region=FUNCTION_REGION", "--source=.", "--trigger-http", "--runtime=RUNTIME" ] } ] }
Reemplaza los valores de marcador de posición en el archivo de configuración anterior por lo siguiente:
FUNCTION_NAME
es el nombre de las funciones de Cloud Run que estás implementando. Si actualizas una función existente, este valor debe coincidir con el nombre de la función que actualizas.FUNCTION_REGION
es la región en la que implementas las funciones de Cloud Run. Para obtener una lista de las regiones admitidas, consulta Ubicaciones de las funciones de Cloud Run.--trigger-http
es el tipo de activador de esta función, en este caso, una solicitud HTTP (webhook).RUNTIME
es el entorno de ejecución en el que se ejecuta la función.
Crea un activador de compilación con el archivo de configuración generado en el paso anterior:
Abre la página Activadores en la consola de Google Cloud:
Selecciona tu proyecto en el menú desplegable del selector de proyectos, que se encuentra en la parte superior de la página.
Haz clic en Crear activador.
En el campo Nombre, ingresa un nombre para el activador.
En Región, selecciona la región para tu activador.
En Evento, selecciona el evento del repositorio para iniciar el activador.
En Fuente, selecciona el repositorio y el nombre de la rama o de la etiqueta que iniciará el activador. Para obtener más información sobre cómo especificar qué ramas se deben compilar de manera automática, consulta Crea un activador de compilación.
En Configuración, selecciona Archivo de configuración de Cloud Build (YAML o JSON).
En el campo Ubicación del archivo de configuración de Cloud Build, escribe
cloudbuild.yaml
después de/
.Haz clic en Crear para guardar el activador de compilación.
Cada vez que envíes código nuevo a tu repositorio, se activará automáticamente un compilar e implementar en Cloud Run Functions.
Para obtener más información sobre cómo crear activadores de Cloud Build, consulta Crea y administra activadores de compilación.
¿Qué sigue?
- Obtén información para realizar implementaciones azul-verde en Compute Engine
- Consulta Implementa en Cloud Run.
- Consulta Implementa en GKE.
- Consulta Implementa en Firebase
- Consulta Implementa en App Engine.
- Obtén más información para solucionar errores de compilación.