En esta página, se describe cómo usar las notificaciones del servicio de Cloud Deploy. incluido cómo suscribirse a ellos.
Cloud Deploy usa Pub/Sub para publicar notificaciones de con dos propósitos:
Permitirte integrar Cloud Deploy en herramientas de terceros y otros Herramientas de Google, como las herramientas para la venta de tickets para el flujo de trabajo o la infraestructura de pruebas.
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 se produce una operación (crear, actualizar, eliminar) en cualquier Recurso principal de Cloud Deploy (automatización, tipo de destino personalizado, canalización de entrega, ejecución de trabajos, lanzamiento, lanzamiento, destino).
clouddeploy-operations
- Cuando Cloud Deploy renderiza la configuración de Skaffold.
- Cuando Cloud Deploy se implementa en un destino (
Start
,Succeed
,Failure
,Terminated
(ejecución del trabajo),Cancelled
(lanzamiento)).
clouddeploy-approvals
- Cuando Cloud Deploy necesita la aprobación (o rechazo) de un lanzamiento.
- Cuando un lanzamiento se aprobó o se rechazó.
clouddeploy-advances
- Cuando un lanzamiento de Cloud Deploy se avanzó de una fase a el 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, sigue estos pasos:
Habilita la API de Cloud Deploy:
Habilita la API de Cloud Deploy
La cuenta de servicio Agente de servicio de Cloud Deploy se agrega automáticamente a tu proyecto cuando llames por primera vez a la API de Cloud Deploy. Este servicio te permite recibir notificaciones del servicio de Cloud Deploy con 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 Pub/Sub notificaciones, agrega esta cuenta de servicio a tu proyecto:
Abre la página 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 las notificaciones. Por ejemplo, puedes enviar mensajes a un extremo o escribir una app de Python para que sondee tu suscripción.
A fin de aprender a configurar suscripciones a Pub/Sub para Cloud Deploy las notificaciones de servicio, lee la Guía para 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 posibles valores para los campos de Cloud Deploy mensajes de Pub/Sub.
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 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"
}
}
Implementación anticipada
El siguiente es un ejemplo de un mensaje de Pub/Sub publicado en
clouddeploy-advances
para notificar que se adelantó 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 en la que se realizó el lanzamiento.
.