Esta página descreve como usar as notificações de serviço do Cloud Deploy, incluindo como subscrever as mesmas.
O Cloud Deploy usa o Pub/Sub para publicar notificações para dois fins:
Para lhe permitir integrar o Cloud Deploy com ferramentas de terceiros e outras ferramentas Google, como ferramentas para registo de pedidos de fluxo de trabalho ou infraestrutura de testes.
Para estender a implementação na nuvem com lógica empresarial suplementar.
Tópicos disponíveis
O Cloud Deploy publica mensagens no seguinte conjunto de tópicos do Google Pub/Sub:
clouddeploy-resources
Quando existe uma operação (criar, atualizar, eliminar) contra qualquer recurso principal do Cloud Deploy (automatização, tipo de destino personalizado, pipeline de entrega, execução de tarefas, lançamento, implementação, destino).
clouddeploy-operations
- Quando o Cloud Deploy renderiza a configuração do Skaffold.
- Quando o Cloud Deploy é implementado num destino (
Start
,Succeed
,Failure
,Terminated
[execução de tarefas],Cancelled
[implementação]).
clouddeploy-approvals
- Quando o Cloud Deploy precisa de uma aprovação (ou uma rejeição) de uma implementação.
- Quando uma implementação foi aprovada ou rejeitada.
clouddeploy-advances
- Quando uma implementação do Cloud Deploy é avançada de uma fase para a seguinte.
- Quando uma implementação está pronta para ser avançada.
Pode usar um modelo de envio ou obtenção para as suas subscrições do Pub/Sub.
Receba notificações do serviço Cloud Deploy
Para receber notificações do serviço Cloud Deploy:
Ative a API Cloud Deploy para o seu projeto:
Ative a API Pub/Sub:
Crie o tópico ou os tópicos do Pub/Sub com base nos tipos de notificações que quer receber:
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 saber mais sobre a gestão de tópicos do Pub/Sub, consulte o artigo Gerir tópicos e subscrições.
Subscreva notificações de serviço do Cloud Deploy
Tem várias opções para subscrever notificações. Por exemplo, pode enviar mensagens para um ponto final ou escrever uma app Python para sondar a sua subscrição.
Para saber como configurar subscrições do Pub/Sub para notificações de serviços do Cloud Deploy, leia o guia de subscrição do Pub/Sub. Também pode saber mais sobre as bibliotecas de cliente do Pub/Sub, que facilitam o desenvolvimento de aplicações de subscrição.
Valores dos campos
Esta secção apresenta os valores possíveis para os campos nas mensagens do Pub/Sub do Cloud Deploy.
Para Action
Nestas notificações, os valores possíveis para Action
são os seguintes.
Para recursos
Create
Update
Delete
Para operações:
Start
Succeed
Failure
Terminated
Cancelled
Para aprovações:
Required
Approved
Rejected
Para adiantamentos:
Required
Advanced
Para ResourceType
Os valores possíveis para ResourceType
são os seguintes:
DeliveryPipeline
Target
Release
Rollout
JobRun
Mensagens de exemplo
Os exemplos seguintes mostram vários tipos de mensagens do Pub/Sub de tópicos do Cloud Deploy.
Criação de pipeline de entrega
Segue-se um exemplo de uma mensagem do Pub/Sub publicada em
clouddeploy-resources
em resposta à criação de um novo 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"
}
}
Início da renderização
Segue-se um exemplo de uma mensagem do Pub/Sub publicada em
clouddeploy-operations
para notificar que um lançamento foi renderizado:
{
"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"
}
}
Aprovação necessária
Segue-se um exemplo de uma mensagem do Pub/Sub publicada em clouddeploy-approvals
para notificar que uma implementação requer aprovação:
{
"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"
}
}
Implementação avançada
Segue-se um exemplo de uma mensagem do Pub/Sub publicada em
clouddeploy-advances
para notificar que uma implementação foi avançada de uma fase
para a seguinte:
{
"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"
}
}
Nesta mensagem, PhaseId
identifica a fase para a qual a implementação foi
avançada.