Os notificadores do Cloud Build são imagens Docker que podem ser executadas como contentores no Cloud Run. Quando consultados por uma aplicação subscritora, os notificadores do Cloud Build usam subscrições push para enviar mensagens para um serviço configurado, como o Slack ou um servidor SMTP.
Esta página apresenta uma vista geral dos notificadores do Cloud Build.
Notificadores do Cloud Build
O Cloud Build envia todas as atualizações de eventos de compilação, juntamente com os metadados de compilação, para o Pub/Sub no tópico cloud-builds
ou num tópico definido pelo utilizador. Os notificadores do Cloud Build podem ser configurados para ouvir esse tópico, filtrar as mensagens que recebem e enviar mensagens para o seu serviço através do Cloud Run.
Todos os notificadores usam uma especificação YAML comum para a configuração, armazenada no Cloud Storage. Se o serviço escolhido exigir autenticação, as respetivas credenciais são armazenadas no Secret Manager. O Cloud Run encaminha a sua mensagem e envia as suas notificações para o seu serviço.
O diagrama seguinte mostra como o Cloud Build interage com outros produtos, como o Pub/Sub e o Cloud Run, para enviar notificações: Google Cloud
Tópicos do Pub/Sub para notificações de compilação
Por predefinição, o Cloud Build envia notificações de compilação para um tópico do Pub/Sub denominado cloud-builds
, se existir. Também pode criar um tópico personalizado do Pub/Sub para
receber notificações de compilação. No ficheiro de configuração de compilação, o campo
options.pubsubTopic
define o nome do tópico para o qual o
Cloud Build envia notificações:
Se
options.pubsubTopic
for deixado em branco, o Cloud Build usa um valor predefinido decloud-builds
como o nome do tópico para compilações desse ficheiro. Como resultado, se criar um tópicocloud-builds
e deixaroptions.pubsubTopic
indefinido em todos os ficheiros de configuração de compilação, esse tópico recebe todas as notificações de compilação.Se especificar um nome de tópico personalizado em
options.pubsubTopic
, o Cloud Build envia notificações para esse ficheiro de configuração de compilação para esse tópico. Os nomes de tópicos personalizados são úteis quando não quer que todas as notificações de compilação sejam publicadas no mesmo tópico.Quando usa um nome de tópico personalizado num ficheiro de configuração de compilação, também tem de atribuir a função
roles/pubsub.publisher
a qualquer conta de serviço que não seja a conta de serviço predefinida do Cloud Build.
Publicar notificações de compilação em tópicos do Pub/Sub em vários projetos
Para publicar notificações de compilação num tópico do Pub/Sub num projeto diferente daquele em que a compilação foi executada, atribua a função roles/pubsub.publisher
à conta de serviço no projeto de destino.
Por exemplo, tem o projeto A e o projeto B. Executa uma compilação no projeto A com a conta de serviço A e quer publicar notificações de compilação num tópico do Pub/Sub no projeto B. Para tal, pode conceder à conta de serviço A a função roles/pubsub.publisher
no projeto B executando o seguinte comando:
gcloud projects add-iam-policy-binding ProjectB --member 'serviceAccount:ServiceAccountA' --role 'roles/pubsub.publisher'
Em seguida, pode usar uma configuração de compilação, como a seguinte, que lhe permite executar uma compilação no projeto A e publicar notificações de compilação no projeto B:
steps:
- name: ubuntu
args:
- pwd
serviceAccount: projects/ProjectA/serviceAccounts/ServiceAccountA
options:
pubsubTopic: projects/ProjectB/topics/CustomTopic
logging: desired-logging-option
Notificadores suportados fornecidos pelo Cloud Build
O Cloud Build fornece e mantém imagens de notificador implementáveis no repositório cloud-build-notifiers
. A tabela seguinte lista os notificadores disponíveis:
Notifier | Descrição |
---|---|
bigquery |
escreve dados de compilação numa tabela do BigQuery |
githubissues |
usa um webhook do GitHub para criar problemas num repositório do GitHub |
googlechat |
usa um webhook do Google Chat para publicar mensagens num espaço do Google Chat |
http |
envia um payload JSON para outro ponto final HTTP |
slack |
usa um webhook do Slack para publicar mensagens num canal do Slack |
smtp |
envia emails através de um servidor SMTP |
Para saber como configurar cada notificador, consulte a página correspondente para cada serviço:
- Configure as notificações do BigQuery
- Configurar notificações de problemas do GitHub
- Configure as notificações do Google Chat
- Configurar notificações HTTP
- Configure as notificações do Slack
- Configure as notificações SMTP
Automatize a configuração de notificações
O Cloud Build fornece um script de configuração que pode usar para automatizar a configuração de notificações para notificadores suportados pelo Cloud Build.
Para saber como configurar notificações para notificadores suportados pelo Cloud Build, consulte o artigo Automatizar a configuração de notificações.
Crie o seu próprio notificador
Além dos notificadores mantidos pelo Cloud Build, como o Slack ou o SMTP, pode usar a biblioteca fornecida no repositório cloud-build-notifiers
para criar o seu próprio notificador.
Para saber como criar o seu próprio notificador, consulte o artigo Criar o seu próprio notificador.
O que se segue?
- Saiba como configurar notificadores do BigQuery, GitHub Issue, Google Chat, HTTP, Slack ou SMTP.
- Saiba como automatizar a configuração das notificações.
- Saiba como criar o seu próprio notificador.