O Cloud Build publica mensagens em um tópico do Google Pub/Sub quando o estado do build muda, como quando o build é criado, quando ele começa a funcionar e quando ele é concluído. Cada mensagem contém uma representação de string JSON em base64
do recurso do build no
atributo message.data
. O ID exclusivo e o
status da build estão 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
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 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.iam.gserviceaccount.com
Se você não encontrar 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 do Pub/Sub, siga estas etapas para adicionar a conta de serviço do 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.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
Também é possível definir um nome de tópico personalizado no arquivo de configuração do build para que as mensagens sejam enviadas ao tópico personalizado. Nesse caso, você cria um tópico com o mesmo nome de tópico personalizado:
gcloud pubsub topics create topic-name
Para 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.
Enviar inscrições
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"
}
Assinaturas de 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"
}
}
]
}
Inscrever-se para receber notificações de atualização do build
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. Você também pode aprender sobre as Bibliotecas de cliente do Pub/Sub, que facilitam o desenvolvimento de aplicativos de assinantes.
Para saber como usar o Pub/Sub para enviar atualizações de build por e-mail ou a serviços como o Slack, consulte Notificadores do Cloud Build.