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:
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:
Abre la página de IAM en la consola de Google Cloud.
Haga clic en Agregar.
Agrega el siguiente principal, en el que project-number es tu número de proyecto:
service-project-number@gcp-sa-clouddeploy.iam.gserviceaccount.com
Selecciona Administración de servicios > Agente de servicio de Cloud Deploy como tu rol.
Haz clic en Guardar.
Habilita la API de Pub/Sub:
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.