O Cloud Build publica mensagens em um tópico do Google Pub/Sub quando o estado do build muda, como quando ele é criado, quando ele passa para um estado de trabalho e quando ele é concluído. Cada
mensagem contém uma representação de string
JSON em base64 do
recurso de build no
atributo
message.data. O ID exclusivo e o status do build podem ser encontrados no campo message.attributes.
Por padrão, as mensagens são publicadas no tópico cloud-builds. Também é possível
especificar um nome de tópico personalizado no campo
options.pubsubTopic
do arquivo de configuração do build. Para mais informações sobre como configurar nomes de tópicos no arquivo de configuração do build, consulte Tópicos do Pub/Sub para notificações de build.
É 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
Na maioria dos casos, quando você ativa a API Cloud Build, a conta de serviço do Agente de serviço do Cloud Build é adicionada automaticamente ao seu projeto. A conta de serviço permite que você receba notificações de build do 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.Se você não encontrar a conta de serviço Agente de serviço do Cloud Build na página do IAM ou não conseguir receber notificações do Pub/Sub, siga estas etapas para adicionar a conta de serviço Agente de serviço 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.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-buildsTambém é possível definir um nome de tópico personalizado no arquivo de configuração do build para que as mensagens sejam enviadas para o tópico personalizado. Nesse caso, você criaria um tópico com o mesmo nome:
gcloud pubsub topics create topic-namePara mais informações, consulte Tópicos do Pub/Sub para notificações de build.
Para saber mais sobre como gerenciar tópicos do Pub/Sub, consulte Como gerenciar tópicos e assinaturas.
Assinaturas por push
As assinaturas por push entregam mensagens a um endpoint HTTP definido por você. As mensagens são entregues assim que são publicadas no tópico.
As mensagens enviadas de assinaturas por push são assim:
{
"message": {
"attributes": {
"buildId": "abcd-efgh...",
"status": "SUCCESS"
},
"data": "SGVsbG8gQ2xvdWQgUHViL1N1YiEgSGVyZSBpcyBteSBtZXNzYWdlIQ==",
"messageId": "136969346945"
},
"subscription": "projects/myproject/subscriptions/mysubscription"
}
Assinaturas por pull
As assinaturas por pull entregam mensagens quando são consultadas pelo aplicativo assinante. As mensagens são entregues quando a inscrição é pesquisada.
As mensagens enviadas de assinaturas por pull são assim:
{
"receivedMessages": [
{
"ackId": "dQNNHlAbEGEIBERNK0EPKVgUWQYyODM2LwgRHFEZDDsLRk1SK...",
"message": {
"attributes": {
"buildId": "abcd-efgh-...",
"status": "SUCCESS"
},
"data": "SGVsbG8gQ2xvdWQgUHViL1N1YiEgSGVyZSBpcyBteSBtZXNzYWdlIQ==",
"messageId": "19917247034"
}
}
]
}
Inscrever-se para receber notificações de atualização de build
Você tem várias opções para se inscrever para receber notificações de atualização de build. 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. Você também pode aprender sobre Bibliotecas cliente do Pub/Sub, que facilitam o desenvolvimento de aplicativos assinantes.
Para saber como usar o Pub/Sub para enviar atualizações de build para e-mails ou serviços como o Slack, consulte Notificadores do Cloud Build.