Usa notificaciones de Cloud Deploy

En esta página, se describe cómo usar las notificaciones del servicio de Cloud Deploy, incluso cómo suscribirse a ellas.

Cloud Deploy usa Pub/Sub para publicar notificaciones con dos fines:

  • Para permitirte integrar Cloud Deploy con herramientas de terceros y otras herramientas de Google, como herramientas para la emisión de tickets de flujo de trabajo o la infraestructura de prueba.

  • Para extender Cloud Deploy con lógica empresarial complementaria.

Temas disponibles

Cloud Deploy publica mensajes en el siguiente conjunto de temas de Google Pub/Sub:

  • clouddeploy-resources

    Cuando hay una operación (crear, actualizar y borrar) en cualquiera de los recursos principales de Cloud Deploy (automatización, tipo de destino personalizado, canalización de entrega, ejecución de trabajo, versión, lanzamiento y destino).

  • clouddeploy-operations

    • Cuando Cloud Deploy renderiza la configuración de Skaffold.
    • Cuando Cloud Deploy se implementa en un destino (Start, Succeed, Failure, Terminated (inicio de trabajo), Cancelled (lanzamiento)).
  • clouddeploy-approvals

    • Cuando Cloud Deploy necesita una aprobación (o rechazo) de un lanzamiento.
    • Cuando un lanzamiento se aprobó o se rechazó.
  • clouddeploy-advances

    • Cuando un lanzamiento de Cloud Deploy pasó de una fase a la siguiente.
    • Cuando un lanzamiento esté listo para avanzar.

Puedes usar un modelo de envío o extracción para las suscripciones de Pub/Sub.

Recibe notificaciones del servicio de Cloud Deploy

Para recibir notificaciones del servicio de Cloud Deploy, haz lo siguiente:

  1. Habilita la API de Cloud Deploy:

    Habilita la API de Cloud Deploy

    La cuenta de servicio del agente de servicio de Cloud Deploy se agrega automáticamente a tu proyecto cuando llamas por primera vez a la API de Cloud Deploy. Esta cuenta de servicio te permite recibir notificaciones del servicio de Cloud Deploy mediante Pub/Sub.

    El nombre de la cuenta de servicio tiene el siguiente formato, en el que project-number es tu número de proyecto:

     service-project-number@gcp-sa-clouddeploy.iam.gserviceaccount.com
    

    Si aún no ves la cuenta de servicio del Agente de servicio de Cloud Deploy en tu página de IAM o no puedes recibir notificaciones de Pub/Sub, agrega esta cuenta de servicio a tu proyecto:

    1. Abre la página de IAM en la consola de Google Cloud.

      Abrir la página IAM

    2. Haga clic en Agregar.

    3. Agrega el siguiente principal, en el que project-number es tu número de proyecto:

      service-project-number@gcp-sa-clouddeploy.iam.gserviceaccount.com
      
    4. Selecciona Administración de servicios > Agente de servicio de Cloud Deploy como tu rol.

    5. Haz clic en Guardar.

  2. Habilita la API de Pub/Sub:

    Habilitar la API de Pub/Sub

  3. Crea los temas de Pub/Sub, según los tipos de notificaciones que desees recibir:

    gcloud pubsub topics create clouddeploy-resources
    gcloud pubsub topics create clouddeploy-operations
    gcloud pubsub topics create clouddeploy-approvals
    gcloud pubsub topics create clouddeploy-advances
    

    Para obtener más información sobre cómo administrar temas de Pub/Sub, consulta Administra temas y suscripciones.

Suscríbete a las notificaciones del servicio de Cloud Deploy

Tienes varias opciones para suscribirte a notificaciones. Por ejemplo, puedes enviar mensajes a un extremo o escribir una app de Python para que sondee tu suscripción.

Si quieres obtener información para configurar las suscripciones de Pub/Sub para las notificaciones del servicio de Cloud Deploy, consulta la Guía de suscriptores de Pub/Sub. También puedes obtener más información sobre las Bibliotecas cliente de Pub/Sub, que facilitan el desarrollo de aplicaciones para suscriptores.

Valores de campo

En esta sección, se enumeran los valores posibles para los campos en los mensajes de Pub/Sub de Cloud Deploy.

Para Action

En estas notificaciones, los valores posibles para Action son los siguientes.

  • Para los recursos:

    • Create
    • Update
    • Delete
  • Para las operaciones:

    • Start
    • Succeed
    • Failure
    • Terminated
    • Cancelled
  • Para las aprobaciones:

    • Required
    • Approved
    • Rejected
  • Para avances:

    • Required
    • Advanced

Para ResourceType

Y los valores posibles para ResourceType son los siguientes:

  • DeliveryPipeline
  • Target
  • Release
  • Rollout
  • JobRun

Mensajes de muestra

En los siguientes ejemplos, se muestran varios tipos de mensajes de Pub/Sub de los temas de Cloud Deploy.

Crea la canalización de entrega

El siguiente es un ejemplo de un mensaje de Pub/Sub publicado en clouddeploy-resources en respuesta a la creación de una deliveryPipeline nueva:

{
  "ackId":   "RFAGFixdRkhRNxkIaFEOT14jPzUgKEUQBQgUBXx9cEFMdVhddmhRDRlyfWByY11AAgVMVnldURsHaE5tdR_Wg6LHS0NVaF4TBgpGVX5fXx0IYVtedi_m7r_2wPXOXkAvOYXL6Mtpe735h9xvZiM9XxJLLD5-IzRFQV5AEkwoAURJUytDCypYEU4EISE-MD5FUw",
  "message": {
    "attributes": {
      "Action": "Create",
      "Resource": "projects/120123456789/locations/us-central1/deliveryPipelines/etest",
      "ResourceType": "DeliveryPipeline",
      "Location": "us-central1",
      "DeliveryPipelineId": "etest",
      "ProjectNumber": "120123456789",

    },
    "messageId": "2407836004659723",
    "publishTime": "2021-05-17T21:24:48.204Z"
  }
}

Inicio de la renderización

El siguiente es un ejemplo de un mensaje de Pub/Sub publicado en clouddeploy-operations para notificar que se renderizó una versión:

{
  "ackId": "U0RQBhYsXUZIUTcZCGhRDk9eIz81IChFFwYIFAV8fXBBTHVeXHRoUQ0Zcn1gcmNfR1MLFlN5WFEaB2hObXUfioKix0tDVWheEwYKRVZ3W1kdBGFVXH0v_qD5rMP1zl5AKDnZyujLaXudkqxfZiM9XxJLLD5-PTNFQV5AEkw2BkRJUytDCypYEU4EISE-MD5F",
  "message": {
    "attributes": {
      "Action": "Start",
      "Resource": "projects/120123456789/locations/us-central1/deliveryPipelines/etest/releases/f2",
      "ResourceType": "Release"
      "Location": "us-central1",
      "DeliveryPipelineId": "etest",
      "ProjectNumber": "120123456789",
      "ReleaseId": "f2",
    },
    "messageId": "2407805942699908",
    "publishTime": "2021-05-17T21:28:04.201Z"
  }
}

Se requiere aprobación

El siguiente es un ejemplo de un mensaje de Pub/Sub publicado en clouddeploy-approvals para notificar que un lanzamiento requiere aprobación:

{
   "ackId": "RVNEUAYWLF1GSFE3GQhoUQ5PXiM_NSAoRRILUxNRXHQBWhBpWF8aB1ENGXJ8ZnxtCRBVU0FWf1VbEQ16bVxti6C2rERfQXduWhQJBkBXd11aHQhoXF9dotnkpeTv2kFwYSuN8_7mSH_Mo6AYZiA9XBJLLD5-IzZFQV5AEkwoA0RJUytDCypYEU4EISE-MD4",
   "message": {
     "attributes": {
       "Action": "Required",
       "Rollout": "projects/120123456789/locations/us-central1/deliveryPipelines/etest/releases/f2/rollouts/rollout-123"
       "ReleaseId": "f2",
       "RolloutId": "rollout-123",
       "TargetId": "prod",
       "Location": "us-central1",
       "ProjectNumber": "120123456789",
     },
     "messageId": "2407845492165003",
     "publishTime": "2021-05-17T21:31:25.143Z"
   }
 }

Adelanto del lanzamiento

El siguiente es un ejemplo de un mensaje de Pub/Sub publicado en clouddeploy-advances para notificar que se avanzó un lanzamiento de una fase a la siguiente:

{
  "ackId": "RFAGFixdRkhRNxkIaFEOT14jPzUgKEUSAwVPAihdeTFXKkFZdWhRDRlyfWB9bV4UUFZMV38OURoHaE5tdR_z4ILjS0NVbVkQBApEUHldXhkEa1RcfC-a0fmv1OzMV0AvOaCoyO9pe77r3NluZiM9XhJLLD5-Jz1FQV5AEkwsCERJUytDCypYEU4EISE-MD5FUw",
  "message": {
    "attributes": {
      "Action": "Advanced",
      "Location": "us-central1",
      "PhaseId": "stable",
      "ProjectNumber": "120123456789",
      "ReleaseId": "rollout-123",
      "Rollout": "projects/120123456789/locations/us-central1/deliveryPipelines/etest/releases/f2/rollouts/rollout-123",
      "RolloutId": "rollout-123",
      "TargetId": "prod"
    },
    "messageId": "7335813725293809",
    "publishTime": "2023-04-03T15:16:30.425Z"
  }
}

En este mensaje, PhaseId identifica la fase a la que avanzó el lanzamiento.

¿Qué sigue?