Desplegar en Cloud Run Functions

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:

    Habilita la API Cloud Run Functions

  • Asigna el rol Desarrollador de funciones de Cloud Run a la cuenta de servicio de Cloud Build:

    1. En la Google Cloud consola, ve a la página Permisos de Cloud Build:

      Ve a Permisos.

    2. 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:

  1. En el directorio raíz de tu proyecto, crea el archivo de configuración de Cloud Build llamado cloudbuild.yaml o cloudbuild.json.
  2. En el archivo de configuración:

    • Añade un campo name y especifica el paso de compilación gcloud.
    • Añade functions deploy al campo args para invocar el comando gcloud functions deploy. Para ver las opciones de configuración disponibles, consulta la referencia de gcloud 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.

  3. 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 y SOURCE_DIRECTORY en el comando gcloud 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:

  1. 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.
  2. Crea un activador de compilación con el archivo de configuración que has creado en el paso anterior:

    1. Abre la página Triggers (Activadores) en la Google Cloud consola:

      Abrir la página Activadores

    2. Selecciona tu proyecto en el menú desplegable del selector de proyectos situado en la parte superior de la página.

    3. Haz clic en Crear activador.

    4. En el campo Nombre, introduce un nombre para el activador.

    5. En Región, selecciona la región de tu activador.

    6. En Evento, selecciona el evento del repositorio para iniciar el activador.

    7. 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.

    8. En Configuración, selecciona Archivo de configuración de Cloud Build (YAML o JSON).

    9. En el campo Ubicación del archivo de configuración de Cloud Build, escribe cloudbuild.yaml después de /.

    10. 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