En esta página, se explica cómo implementar aplicaciones en Cloud Functions mediante 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 Functions es un entorno de ejecución sin servidores para compilar y conectar servicios en la nube. Con Cloud Functions, puedes escribir funciones simples de un solo propósito vinculadas a eventos emitidos desde tu infraestructura y servicios en la nube. La función se activa cuando ocurre un evento que se está supervisando. Para obtener más información sobre Cloud Functions, consulta Documentación de Cloud Functions.
Antes de comenzar
Habilita la API de Cloud Functions mediante los siguientes pasos:
Otorga la función de Desarrollador de Cloud Functions a la cuenta de servicio de Cloud Build mediante los siguientes pasos:
Abre la página Configuración de Cloud Build:
Establece el estado de la función de Desarrollador de Cloud Functions en Habilitada.
Para ejecutar los comandos de
gcloud
en esta página, instala los Google Cloud CLI.Ten a mano el código fuente de la aplicación que deseas compilar y, luego, implementa en Cloud Functions. El 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 Functions proporciona el comando de gcloud functions deploy
, mediante el cual se implementa la función desde el directorio que contiene tu código de función.
Puedes usar la
Imagen cloud-sdk
como un paso de compilación en tu archivo de configuración para invocar comandos 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 gcloud
en esta imagen.
Para implementar una aplicación en Cloud Functions, 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 la función de Cloud Functions 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 Cloud Functions. Para obtener una lista de las regiones compatibles, consulta Ubicaciones de Cloud Functions.--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 Documentación de Cloud Functions.- 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 compatibles.
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 del software en Cloud Functions 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 Cloud Functions, 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 la función de Cloud Functions 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 implementarás Cloud Functions. Para obtener una lista de las regiones compatibles, consulta Ubicaciones de Cloud Functions.--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 Cloud Build. de configuración YAML (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á de forma automática una compilación y una implementación en Cloud 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?
- Aprende a 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.