Notificadores do Cloud Build

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

Diagrama dos notificadores do Cloud Build

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 de cloud-builds como o nome do tópico para compilações desse ficheiro. Como resultado, se criar um tópico cloud-builds e deixar options.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:

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?