En esta página se explica cómo desplegar aplicaciones en Cloud Run Functions con Cloud Build. Si es la primera vez que usas Cloud Build, consulta primero las guías de inicio rápido y el resumen de la configuración de compilación.
Cloud Run Functions es un entorno de ejecución sin servidor para crear y conectar servicios en la nube. Con Cloud Run Functions, puedes escribir funciones sencillas con una sola finalidad que se vinculan a eventos emitidos desde tus servicios y tu infraestructura en la nube. Tu función se activa cuando se activa un evento que se está monitorizando. Para obtener más información sobre Cloud Run Functions, consulta la documentación de Cloud Run Functions.
Antes de empezar
Habilita la API de funciones de Cloud Run:
Asigna el rol Desarrollador de funciones de Cloud Run a la cuenta de servicio de Cloud Build:
-
En la Google Cloud consola, ve a la página Permisos de settings Cloud Build:
Asigna el estado Habilitado al rol Desarrollador de funciones de Cloud Run.
-
Para ejecutar los comandos
gcloud
de esta página, instala la CLI de Google Cloud.Ten a mano el código fuente de la aplicación que quieras compilar y desplegar en Cloud Run Functions. El código fuente debe almacenarse en un repositorio, como Cloud Source Repositories, GitHub o Bitbucket.
Configuración del despliegue
Cloud Build te permite usar cualquier imagen de contenedor disponible públicamente para ejecutar tus tareas. Para ello, especifica la imagen en un step
de compilación
en el archivo de configuración de Cloud Build.
Cloud Run Functions proporciona el comando gcloud functions deploy
, que despliega tu función desde el directorio que contiene el código de la función.
Puedes usar la imagen de cloud-sdk
como paso de compilación en tu archivo de configuración para invocar comandos de gcloud
en la imagen.
Los argumentos que se transfieren a este paso de compilación se transfieren directamente a la CLI de Google Cloud, lo que te permite ejecutar cualquier comando gcloud
en esta imagen.
Para desplegar una aplicación en Cloud Run Functions, sigue estos pasos:
- En el directorio raíz de tu proyecto, crea el archivo de configuración de Cloud Build llamado
cloudbuild.yaml
ocloudbuild.json
. En el archivo de configuración:
- Añade un campo
name
y especifica el paso de compilacióngcloud
. - Añade
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" ] } ] }
Sustituye los valores de marcador de posición del archivo de configuración anterior por los siguientes:
FUNCTION_NAME
es el nombre de las funciones de Cloud Run que vas a desplegar. Si vas a actualizar una función, este valor debe coincidir con el nombre de la función que vas a actualizar.FUNCTION_REGION
es la región en la que vas a implementar Cloud Run Functions. Para ver 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 tiempo de ejecución en el que se ejecuta la función.
Para obtener más información sobre cómo usar
gcloud functions deploy
, consulta la documentación de Cloud Run Functions.- Añade un campo
Inicia la compilación con el archivo de configuración creado en el paso anterior:
gcloud builds submit --region=REGION --config CONFIG_FILE_PATH SOURCE_DIRECTORY
Sustituye los valores de marcador de posición del archivo de configuración anterior por los siguientes:
CONFIG_FILE_PATH
es la ruta 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 no especificas
CONFIG_FILE_PATH
ySOURCE_DIRECTORY
en el comandogcloud builds submit
, Cloud Build asume que el archivo de configuración y el código fuente se encuentran en el directorio de trabajo actual.
Despliegue continuo
Puedes automatizar el despliegue de tu software en funciones de Cloud Run creando activadores de Cloud Build. Puedes configurar tus activadores para que compilen e implementen imágenes cada vez que actualices el código fuente.
Para automatizar el despliegue en funciones de Cloud Run, sigue estos pasos:
En la raíz de tu repositorio, añade un archivo de configuración con los 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" ] } ] }
Sustituye los valores de marcador de posición del archivo de configuración anterior por los siguientes:
FUNCTION_NAME
es el nombre de las funciones de Cloud Run que vas a desplegar. Si vas a actualizar una función, este valor debe coincidir con el nombre de la función que vas a actualizar.FUNCTION_REGION
es la región en la que vas a desplegar las funciones de Cloud Run. Para ver 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 tiempo de ejecución en el que se ejecuta la función.
Crea un activador de compilación con el archivo de configuración que has creado en el paso anterior:
Abre la página Triggers (Activadores) en la Google Cloud consola:
Selecciona tu proyecto en el menú desplegable del selector de proyectos situado en la parte superior de la página.
Haz clic en Crear activador.
En el campo Nombre, introduce un nombre para el activador.
En Región, selecciona la región de tu activador.
En Evento, selecciona el evento del repositorio para iniciar el activador.
En Source (Origen), selecciona tu repositorio y el nombre de la rama o etiqueta que activará el activador. Para obtener más información sobre cómo especificar qué ramas se deben compilar automáticamente, consulta Crear 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 una compilación y un despliegue en Cloud Run Functions.
Para obtener más información sobre cómo crear activadores de Cloud Build, consulta el artículo Crear y gestionar activadores de compilación.
Siguientes pasos
- Consulta cómo realizar implementaciones azul/verde en Compute Engine.
- Consulta cómo desplegar en Cloud Run.
- Consulta cómo desplegar en GKE.
- Consulta cómo implementar en Firebase.
- Consulta cómo desplegar en App Engine.
- Consulta cómo solucionar errores de compilación.