Esta página descreve como usar as notificações de serviço do Cloud Deploy, incluindo como se inscrever nelas.
O Cloud Deploy usa o Pub/Sub para publicar notificações para dois fins:
Permitir a integração do Cloud Deploy com ferramentas de terceiros e outras ferramentas do Google, como ferramentas para tíquetes de fluxo de trabalho ou infraestrutura de teste.
Para estender o Cloud Deploy com uma lógica de negócios complementar.
Tópicos disponíveis
O Cloud Deploy publica mensagens no seguinte conjunto de tópicos do Google Pub/Sub:
clouddeploy-resources
Quando há uma operação (criar, atualizar, excluir) em relação a qualquer recurso principal do Cloud Deploy (automação, tipo de segmentação personalizada, pipeline de entrega, execução de job, versão, lançamento, destino).
clouddeploy-operations
- Quando o Cloud Deploy renderiza a configuração do Skaffold.
- Quando o Cloud Deploy é implantado em um destino (
Start
,Succeed
,Failure
,Terminated
(execução de job),Cancelled
(lançamento)).
clouddeploy-approvals
- Quando o Cloud Deploy precisa de uma aprovação (ou rejeição) de um lançamento.
- Quando um lançamento é aprovado ou rejeitado.
clouddeploy-advances
- Quando o lançamento do Cloud Deploy avançou de uma fase para a próxima.
- Quando um lançamento estiver pronto para ser avançado.
É possível usar um modelo push ou pull nas assinaturas do Pub/Sub.
Receber notificações de serviço do Cloud Deploy
Para receber notificações do serviço do Cloud Deploy:
Ative a API Cloud Deploy:
A conta de serviço do Agente de serviço do Cloud Deploy é adicionada automaticamente ao seu projeto quando você chama a API Cloud Deploy pela primeira vez. Essa conta de serviço permite que você receba notificações de serviço do Cloud Deploy usando o Pub/Sub.
O nome da conta de serviço tem o seguinte formato, em que project-number é o número do projeto:
service-project-number@gcp-sa-clouddeploy.iam.gserviceaccount.com
Se você ainda não encontrar a conta de serviço do Agente de serviço do Cloud Deploy na página do IAM ou não conseguir receber notificações do Pub/Sub, adicione essa conta de serviço ao seu projeto:
Abra a página IAM no console do Google Cloud:
Clique em Add.
Adicione a seguinte conta principal, em que project-number é o número do projeto:
service-project-number@gcp-sa-clouddeploy.iam.gserviceaccount.com
Selecione Gerenciamento de Serviço > Agente de serviço do Cloud Deploy como seu papel.
Clique em Save.
Habilitar a API Pub/Sub:
Crie o tópico ou tópicos do Pub/Sub, com base nos tipos de notificação que você 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 como gerenciar tópicos do Pub/Sub, consulte Como gerenciar tópicos e assinaturas.
Inscrever-se para receber notificações de serviço do Cloud Deploy
Você tem várias opções para se inscrever para receber notificações. Por exemplo, é possível enviar mensagens por push para um endpoint ou gravar um aplicativo Python para pesquisar sua assinatura.
Para saber como configurar assinaturas do Pub/Sub para notificações de serviço do Cloud Deploy, leia o Guia de assinantes do Pub/Sub. Você também pode aprender sobre Bibliotecas cliente do Pub/Sub, que facilitam o desenvolvimento de aplicativos assinantes.
Valores de campo
Esta seção lista os valores possíveis para campos nas mensagens do Cloud Deploy Pub/Sub.
Para Action
Nessas 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 amostra
Os exemplos a seguir mostram vários tipos de mensagens do Pub/Sub dos tópicos do Cloud Deploy.
Criação do pipeline de entrega
Veja a seguir um exemplo de uma mensagem do Pub/Sub publicada em clouddeploy-resources
em resposta à criação de uma nova 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
Veja a seguir um exemplo de uma mensagem do Pub/Sub publicada em clouddeploy-operations
para notificar que uma versão foi renderizada:
{
"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
Veja a seguir um exemplo de uma mensagem do Pub/Sub publicada em clouddeploy-approvals
para notificar que um lançamento 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"
}
}
Avançar lançamento
Confira a seguir um exemplo de uma mensagem do Pub/Sub publicada em
clouddeploy-advances
para notificar que um lançamento foi avançado de uma fase
para a próxima:
{
"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 em que o lançamento foi
avançado.