Usar las notificaciones de Cloud Deploy

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

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

  • Para que puedas integrar Cloud Deploy con herramientas de terceros y otras herramientas de Google, como las de gestión de incidencias de flujo de trabajo o de infraestructura de pruebas.

  • Para ampliar 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 se realiza una operación (crear, actualizar o eliminar) en cualquier recurso principal de Cloud Deploy (automatización, tipo de destino personalizado, canalización de entrega, ejecución de trabajo, lanzamiento, implementación o destino).

  • clouddeploy-operations

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

    • Cuando Cloud Deploy necesita que se apruebe (o rechace) un lanzamiento.
    • Cuando se aprueba o se rechaza un lanzamiento.
  • clouddeploy-advances

    • Cuando se ha avanzado de una fase a otra en un lanzamiento de Cloud Deploy.
    • Cuando una implementación esté lista para avanzar.

Puedes usar un modelo push o pull para tus suscripciones de Pub/Sub.

Recibir notificaciones de servicio de Cloud Deploy

Para recibir notificaciones de servicio de Cloud Deploy, sigue estos pasos:

  1. Habilita la API Cloud Deploy en tu proyecto:

    Habilitar la API Cloud Deploy

  2. Habilita la API Pub/Sub:

    Habilitar la API de Pub/Sub

  3. Crea los temas de Pub/Sub en función de los tipos de notificaciones que quieras 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 gestionar temas de Pub/Sub, consulta Gestionar temas y suscripciones.

Suscribirse a las notificaciones de servicio de Cloud Deploy

Tienes varias opciones para suscribirte a las notificaciones. Por ejemplo, puedes enviar mensajes a un endpoint o escribir una aplicación de Python para sondear tu suscripción.

Para obtener información sobre cómo configurar suscripciones de Pub/Sub para las notificaciones de servicios de Cloud Deploy, consulta la guía para suscriptores de Pub/Sub. También puedes consultar información sobre las bibliotecas de cliente de Pub/Sub, que facilitan el desarrollo de aplicaciones de suscriptor.

Valores de campo

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

Para Action

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

  • Recursos

    • Create
    • Update
    • Delete
  • Para operaciones:

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

    • Required
    • Approved
    • Rejected
  • Para los anticipos:

    • Required
    • Advanced

Para ResourceType

Los valores posibles de ResourceType son los siguientes:

  • DeliveryPipeline
  • Target
  • Release
  • Rollout
  • JobRun

Mensajes de ejemplo

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

Delivery pipeline create

A continuación, se muestra un ejemplo de un mensaje de Pub/Sub publicado en clouddeploy-resources en respuesta a la creación de un nuevo deliveryPipeline:

{
  "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

A continuación, se muestra un ejemplo de un mensaje de Pub/Sub publicado en clouddeploy-operations para notificar que se ha renderizado 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"
  }
}

Aprobación obligatoria

A continuación, se muestra un ejemplo de un mensaje de Pub/Sub publicado en clouddeploy-approvals para notificar que una implementación 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"
   }
 }

Lanzamiento anticipado

A continuación, se muestra un ejemplo de un mensaje de Pub/Sub publicado en clouddeploy-advances para notificar que se ha avanzado de una fase a otra:

{
  "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 se ha avanzado en el lanzamiento.

Siguientes pasos