O Cloud Build publica mensagens em um tópico do Google Pub/Sub quando o estado do build é alterado. Por exemplo, quando o build é criado quando ele começa a funcionar e quando ele é concluído.
O tópico do Pub/Sub em que o Cloud Build publica essas mensagens de atualização do build é chamado de cloud-builds
. Cada mensagem contém uma representação de string JSON em base64 do recurso da build no atributo message.data
. O código exclusivo e o status da build estão no campo message.attributes
.
É possível usar um modelo push ou pull nas assinaturas do Pub/Sub.
Receber notificações de build
Para receber notificações da build:
Ativar a API Cloud Build
Quando você ativa a API Cloud Build, a conta de serviço do Agente de serviço do Cloud Build é adicionada automaticamente ao projeto. A conta de serviço permite receber notificações de versão via Pub/Sub.
A conta de serviço tem o seguinte formato, em que project-number é o número do projeto:
service-project-number@gcp-sa-cloudbuild.iam.gserviceaccount.com
Se você não vir a conta de serviço do Agente de serviço do Cloud Build na página do IAM ou não conseguir receber notificações por meio do Pub/Sub, siga estas etapas para adicionar a conta de serviço do Agente de serviços do Cloud Build ao seu projeto:
Abra a página IAM no console do Google Cloud:
Clique em Conceder acesso.
Adicione a seguinte conta principal, em que project-number é o número do projeto:
service-project-number@gcp-sa-cloudbuild.iam.gserviceaccount.com
Selecione Agentes de serviço > Agente de serviço do Cloud Build como seu papel.
Clique em Save.
Habilitar a API Pub/Sub:
Crie o tópico
cloud-builds
:gcloud pubsub topics create cloud-builds
Para saber mais sobre como gerenciar tópicos do Pub/Sub, consulte Como gerenciar tópicos e assinaturas.
Push
As inscrições push entregam mensagens para um ponto de extremidade HTTP definido por você. As mensagens são entregues assim que são publicadas no tópico.
As mensagens enviadas a partir de inscrições push são assim:
{
"message": {
"attributes": {
"buildId": "abcd-efgh...",
"status": "SUCCESS"
},
"data": "SGVsbG8gQ2xvdWQgUHViL1N1YiEgSGVyZSBpcyBteSBtZXNzYWdlIQ==",
"message_id": "136969346945"
},
"subscription": "projects/myproject/subscriptions/mysubscription"
}
Pull
As inscrições pull entregam mensagens quando pesquisadas pelo aplicativo inscrito. As mensagens são entregues quando a inscrição é pesquisada.
As mensagens enviadas a partir de inscrições pull são assim:
{
"receivedMessages": [
{
"ackId": "dQNNHlAbEGEIBERNK0EPKVgUWQYyODM2LwgRHFEZDDsLRk1SK...",
"message": {
"attributes": {
"buildId": "abcd-efgh-...",
"status": "SUCCESS"
},
"data": "SGVsbG8gQ2xvdWQgUHViL1N1YiEgSGVyZSBpcyBteSBtZXNzYWdlIQ==",
"messageId": "19917247034"
}
}
]
}
Como faço para me inscrever com o objetivo de criar notificações de atualização?
Você tem várias opções para assinar e criar notificações de atualização. 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 atualizações de build, leia o Guia de assinantes do Pub/Sub. Aprenda também sobre as bibliotecas de cliente do Pub/Sub, que facilitam o desenvolvimento de aplicativos de assinantes.
Para aprender a usar o Pub/Sub para enviar atualizações de build a serviços como o Slack ou por e-mail, consulte Notificadores do Cloud Build.