O Cloud Build publica mensagens num tópico do Google Pub/Sub quando o estado da sua compilação muda, como quando a compilação é criada, quando a compilação passa para um estado de funcionamento e quando a compilação é concluída. Cada
message contém uma representação de string JSON
base64 do seu
recurso de compilação no atributo
message.data. Pode encontrar o ID exclusivo da compilação e o estado da compilação no campo message.attributes.
Por predefinição, as mensagens são publicadas no tópico cloud-builds. Também pode especificar um nome de tópico personalizado no campo options.pubsubTopic do ficheiro de configuração de compilação. Para mais informações sobre a configuração dos nomes dos tópicos no ficheiro de configuração de compilação, consulte o artigo Tópicos do Pub/Sub para notificações de compilação.
Pode usar um modelo de envio ou obtenção para as suas subscrições do Pub/Sub.
Receba notificações de compilação
Para receber notificações de compilação:
Ative a API Cloud Build:
Quando ativa a API Cloud Build, a conta de serviço agente do serviço Cloud Build é adicionada automaticamente ao seu projeto. A conta de serviço permite-lhe receber notificações de compilação do Pub/Sub.
A conta de serviço tem o seguinte formato, em que project-number é o número do seu projeto:
service-project-number@gcp-sa-cloudbuild.iam.gserviceaccount.comSe não vir a conta de serviço do agente do serviço do Cloud Build na página IAM ou não conseguir receber notificações do Pub/Sub, siga estes passos para adicionar a conta de serviço do agente do serviço do Cloud Build ao seu projeto:
Abra a página IAM na Google Cloud consola:
Clique em Conceder acesso.
Adicione o seguinte principal, onde project-number é o número do seu projeto:
service-project-number@gcp-sa-cloudbuild.iam.gserviceaccount.comSelecione Agentes de serviço > Agente de serviço do Cloud Build como a sua função.
Clique em Guardar.
Ative a API Pub/Sub:
Crie o tópico
cloud-builds:gcloud pubsub topics create cloud-buildsTambém pode definir um nome de tópico personalizado no ficheiro de configuração de compilação para que as mensagens sejam enviadas para o tópico personalizado. Neste caso, criaria um tópico com o mesmo nome de tópico personalizado:
gcloud pubsub topics create topic-namePara mais informações, consulte o artigo Tópicos do Pub/Sub para notificações de compilação.
Para saber mais sobre a gestão de tópicos do Pub/Sub, consulte o artigo Gerir tópicos e subscrições.
Subscrições de emissão
As subscrições push entregam mensagens a um ponto final HTTP que define. As mensagens são entregues assim que são publicadas no tópico.
As mensagens enviadas a partir de subscrições push têm o seguinte aspeto:
{
"message": {
"attributes": {
"buildId": "abcd-efgh...",
"status": "SUCCESS"
},
"data": "SGVsbG8gQ2xvdWQgUHViL1N1YiEgSGVyZSBpcyBteSBtZXNzYWdlIQ==",
"messageId": "136969346945"
},
"subscription": "projects/myproject/subscriptions/mysubscription"
}
Subscrições de obtenção
As subscrições de obtenção enviam mensagens quando são consultadas pela aplicação subscrita. As mensagens são entregues quando a subscrição é consultada.
As mensagens enviadas a partir de subscrições de obtenção têm o seguinte aspeto:
{
"receivedMessages": [
{
"ackId": "dQNNHlAbEGEIBERNK0EPKVgUWQYyODM2LwgRHFEZDDsLRk1SK...",
"message": {
"attributes": {
"buildId": "abcd-efgh-...",
"status": "SUCCESS"
},
"data": "SGVsbG8gQ2xvdWQgUHViL1N1YiEgSGVyZSBpcyBteSBtZXNzYWdlIQ==",
"messageId": "19917247034"
}
}
]
}
Subscreva notificações de atualizações de compilações
Tem várias opções para subscrever notificações de atualizações de compilaçõ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 atualizações de compilação, leia o guia do subscritor 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.
Para saber como usar o Pub/Sub para enviar atualizações de compilação por email ou para serviços como o Slack, consulte os notificadores do Cloud Build.