Crear activadores de webhook

Cloud Build te permite definir activadores de webhook, que pueden autenticar y aceptar eventos de webhook entrantes. Estos eventos, enviados a una URL personalizada, te permiten conectar de forma directa los sistemas externos y los sistemas de administración de código fuente externos como Bitbucket.com, Bitbucket Server o GitLab, a Cloud Build mediante eventos de webhook.

Con los activadores de webhook, puedes definir un archivo de configuración de compilación en línea en lugar de especificar un origen cuando crees tu activador. La configuración de compilación intercalada te permite controlar las operaciones de Git y definir el resto de tu compilación.

En esta página, se describe cómo crear activadores de webhook.

Antes de comenzar

  • Habilita las API de Cloud Build and Secret Manager.

    Habilita las API

  • Para usar los comandos de gcloud en esta página, instala el SDK de Cloud.

Crear activadores de webhook

Console

Para crear un activador de webhook con Google Cloud Console, sigue estos pasos:

  1. Abrir la página Activadores:

    Abrir la página Activadores de compilación

  2. Selecciona el proyecto en la parte superior de la página y haz clic en Abrir.

  3. Haz clic en Crear activador.

  4. Ingresa las siguientes opciones de configuración del activador:

    • Nombre: un nombre para tu activador
    • Descripción (opcional): Una descripción para tu activador
    • Evento: Selecciona Evento de webhook para configurar el activador a fin de comenzar a compilar compilaciones en respuesta a eventos de webhook entrantes.
    • URL de webhook: Usa la URL de webhook para autenticar eventos de webhooks entrantes.

      • Secreto: Necesitarás un secreto para autenticar eventos entrantes de webhook. Puedes crear un secreto nuevo o usar uno existente.

        Sigue estos pasos para crear un secreto nuevo:

        1. Selecciona Crear nueva.
        2. Haz clic en Crear Secreto.

          Verás la casilla emergente Crear un secreto de webhook.

        3. Ingresa un nombre para tu secreto en el campo Nombre del secreto.

        4. Haz clic en Crear secreto para guardar el secreto, que se creará y almacenará automáticamente en Secret Manager.

        Para usar un secreto existente, sigue estos pasos:

        1. Seleccione Usar existentes.
        2. En el campo Secreto, selecciona el nombre del secreto que quieres usar en el menú desplegable o sigue las instrucciones para agregar un secreto por ID de recurso.
        3. En el campo Versión del secreto, selecciona tu versión del secreto en el menú desplegable.

      Después de crear o seleccionar tu secreto, verás una vista previa de URL de webhook. Tu URL contendrá una clave de API generada por Cloud Build y tu secreto. Si Cloud Build no puede recuperar tu clave de API, puedes agregar tu clave de API manualmente a la URL o aprender cómo obtener una clave de API si no tienes. uno por uno.

      Puedes usar la URL para invocar un evento de webhook mediante una solicitud HTTP con el método POST.

       https://cloudbuild.googleapis.com/v1/projects/${PROJECT_NAME}/triggers/${TRIGGER_NAME}:webhook?key=${API_KEY}&secret=${SECRET_VALUE}
      

      Después de completar estos pasos, la función de Administrador de secretos del administrador de secretos se otorgará automáticamente a tu cuenta de servicio de Cloud Build, service-${PROJECT_NUMBER}@gcp-sa-cloudbuild.iam.gserviceaccount.com. Si no ves esta función que se agrega automáticamente a tu cuenta de servicio, completa los siguientes pasos descritos en Otorga una función de administrador de secretos a tu cuenta de servicio.

    • Fuente (opcional): selecciona el repositorio que se compilará cuando se ejecute el activador de webhook. Si especificas una configuración de compilación integrada, no es necesario que especifiques la siguiente fuente.

    • Revisión (opcional): Seleccione la rama o etiqueta para compilar cuando se ejecute el activador de webhook. Si especificas una configuración de compilación intercalada, no es necesario que especifiques las siguientes revisiones.

      • Rama (opcional): Configura un activador para compilar en esta rama. Debes especificar un valor literal. No se admiten las expresiones regulares.
      • Etiqueta (opcional): Configura un activador para compilar con esta etiqueta. Debes especificar un valor literal. No se admiten las expresiones regulares.
    • Configuración: Selecciona el archivo de configuración de compilación ubicado en tu repositorio remoto o crea un archivo de configuración de compilación intercalado para usarlo en tu compilación.

      • Tipo: selecciona el tipo de configuración que se usará para la compilación.
        • Archivo de configuración de Cloud Build (yaml o json): usa un archivo de configuración de compilación para la configuración.
        • Dockerfile: usa un Dockerfile para la configuración.
      • Ubicación: especifica la ubicación de la configuración.

        • Repositorio Si tu archivo de configuración está ubicado en tu repositorio remoto, proporciona la ubicación de laarchivo de configuración de compilación o elDockerfile y un nombre para la imagen resultante. Si tu configuración es una Dockerfile, puedes proporcionar un tiempo de espera opcional para tu compilación. Cuando hayas proporcionado el Dockerfile y el nombre de la imagen, verás una vista previa del comando docker build que se ejecutará en la compilación.
        • En línea: Si seleccionaste Archivo de configuración de Cloud Build (yaml o json) como tu opción de configuración, puedes especificar tu configuración de compilación intercalada. Haz clic en Abrir editor para abrir tu archivo de configuración de compilación en Google Cloud Console con la sintaxis YAML o JSON. Haz clic en Listo para guardar la configuración de compilación.

      En el siguiente ejemplo, los registros del archivo de configuración de compilación intercalado son "hello world":

       steps:
       - name: 'ubuntu'
         args: ['echo', 'hello world']
      
    • Sustituciones Opcional: Si seleccionaste el archivo de configuración de compilación como tu opción de configuración de compilación o creaste un archivo de configuración de compilación intercalado, puedes elegir definir un activador específico del activadorvariables de sustitución usando este campo. También puedes obtener datos mediante vinculaciones de carga útil cuando defines valores de variables de sustitución.

    • Filtros (opcional): Puedes crear una regla dentro de un activador que determine si el activador ejecutará o no una compilación en función de las variables de sustitución.

      Para ver una sintaxis de ejemplo para el filtrado que podrías aplicar a tus activadores de webhook, consulta Usa CEL para filtrar eventos de compilación.

  5. Haz clic en Crear para crear el activador de compilación.

gcloud

Para crear un activador de webhook, sigue estos pasos:

     gcloud alpha builds triggers create webhook \
       --name=TRIGGER_NAME \
       --repo=PATH_TO_REPO \
       --secret=PATH_TO_SECRET \
       --subtitutions=\
         _SUB_ONE='$(body.message.test)', _SUB_TWO='$(body.message.output)'
       --filter='_SUB_ONE == prod'
       --build-config=PATH_TO_BUILD_CONFIG # or --inline-config=PATH_TO_INLINE_BUILD_CONFIG
       --tag=TAG_NAME  # or --branch=BRANCH_NAME

Aquí:

  • TRIGGER_NAME es el nombre del activador.
  • PATH_TO_REPO es la ruta al repositorio en la que se invoca una compilación. Por ejemplo, https://www.github.com/owner/repo.
  • PATH_TO_SECRET es la ruta a tu secreto, tal como se almacena en el administrador de secretos. Por ejemplo, projects/my-project/secrets/my-secret/versions/2
  • PATH_TO_BUILD_CONFIG es la ruta de acceso al archivo de configuración de compilación.
  • PATH_TO_INLINE_BUILD_CONFIG es la ruta de acceso a tu archivo de configuración de compilación intercalada.
  • TAG_NAME es el nombre de tu etiqueta si deseas que el activador se compile en una etiqueta.
  • BRANCH_NAME es el nombre de tu rama si deseas configurar tu activador para que se compile en una rama.

Obtén una clave de API (opcional)

Necesitarás una clave de API para autenticar tu evento de webhook entrante.

Para obtener una clave de API, haz lo siguiente:

  1. Abre la página Credenciales en Google Cloud Console:

    Abrir la página Credenciales

  2. Haz clic en Crear credenciales.

  3. Haz clic en Clave de API.

    Verás un cuadro emergente con tu clave de API creada. Anota tu clave de API.

  4. Si deseas restringir tu clave, haz clic en Restringir clave a fin de completar pasos adicionales para protegerla. De lo contrario, haz clic en Cerrar.

Otorga la función de administrador de secretos a tu cuenta de servicio (opcional)

Cloud Build otorga automáticamente la función de Administrador de secretos de administrador de secretos a cuentas de servicio que requieren la función durante la configuración de secretos. Si no ves esta función que se le otorga de forma automática a la cuenta de servicio necesaria, completa los siguientes pasos para agregar la función de forma manual a fin de que la cuenta de servicio tenga acceso a tu secreto:

  1. Abre la página de IAM en Cloud Console.

    Abrir la página IAM

  2. Toma nota de tu cuenta de servicio de Cloud Build a la que deseas otorgar la función.

  3. Abre la página Administrador de secretos en Cloud Console:

    Abrir la página Administrador de secretos

  4. Haz clic en el nombre del secreto.

    Verás la página Detalles del secreto.

    1. Haz clic en la pestaña Permisos en el panel de información a la derecha.

    2. Haz clic en Agregar miembro.

    3. En la sección Miembro nuevo, agrega el correo electrónico de miembro asociado con tu cuenta de servicio de Cloud Build.

    4. En la sección Seleccionar una función, selecciona Administrador de secretos > Administrador y descriptor de acceso a secretos.

    5. Haga clic en Add.

¿Qué sigue?