Como automatizar a configuração de notificações

É possível configurar o Cloud Build para enviar notificações de versão ao Slack, um servidor SMTP, um endpoint HTTP ou uma instância do BigQuery usando notificadores do Cloud Build. Nesta página, explicamos como automatizar o processo de configuração do notificador desejado.

Como automatizar a configuração de notificações

O Cloud Build oferece um script de configuração que pode ser usado para automatizar a configuração de notificação. Para configurar notificações usando o script de configuração:

Slack

Configuração

Nas seções a seguir, descrevemos as etapas que você precisa concluir antes de automatizar a configuração da notificação para o notificador.

Ativando APIs

Ative as APIs Cloud Build, Compute Engine, Cloud Run, Pub/Sub, and Secret Manager.

Ative as APIs

Como receber e armazenar credenciais

  1. Crie um aplicativo Slack para o espaço de trabalho do Slack ao qual você quer enviar notificações.

  2. Ative webhooks de entrada para postar mensagens no Slack pelo Cloud Build.

  3. Navegue até seu aplicativo do Slack para localizar o URL do webhook de entrada. O URL será semelhante ao seguinte:

    http://hooks.slack.com/services/...
    
  4. Armazene o URL do webhook de entrada no Gerenciador de secrets:

    1. Abra a página "Gerenciador de secrets" no Console do Google Cloud:

      Abrir a página "Gerenciador de secrets"

    2. Clique em Criar secret.

    3. Insira um nome para o secret.

    4. Em Valor do secret, adicione o URL de webhook de entrada do aplicativo Slack.

    5. Para salvar o secret, clique em Criar secret.

Como conceder permissões

O Cloud Run executa as imagens do notificador com a conta de serviço padrão do Compute Engine. Para que a conta de serviço consiga buscar seu secret a partir do Gerenciador de secrets, é preciso conceder o papel de Acessador de secrets do Gerenciador de secrets à conta de serviço:

Conceda à sua conta de serviço do Cloud Run acesso ao secret:

  1. Acesse a página IAM do Console do Google Cloud:

    Abrir a página do IAM

  2. Localize a conta de serviço padrão do Compute Engine associada ao seu projeto:

    Sua conta de serviço padrão do Compute Engine será semelhante à seguinte, em que project-number é o número do projeto:

    project-number-compute@developer.gserviceaccount.com
    

    Anote a conta de serviço padrão do Compute Engine.

  3. Abra a página "Gerenciador de secrets" no Console do Google Cloud:

    Abrir a página "Gerenciador de secrets"

  4. Clique no nome do seu secret que contém seu secret.

  5. Na guia Permissões, clique em Adicionar principal.

  6. Adicione a conta de serviço padrão do Compute Engine associada ao projeto.

  7. Selecione Acessador de secrets do Gerenciador de secrets como o papel.

  8. Clique em Save.

Como gravar um arquivo de configuração de notificação

Grave um arquivo de configuração do notificador para configurar seu notificador do Slack e filtrar eventos de build:

No exemplo de arquivo de configuração do notificador de exemplo, o campo filter usa Common Expression Language com a variável disponível, build, para filtrar os eventos de build com um status SUCCESS:

  apiVersion: cloud-build-notifiers/v1
  kind: SlackNotifier
  metadata:
    name: example-slack-notifier
  spec:
    notification:
      filter: build.status == Build.Status.SUCCESS
      delivery:
        webhookUrl:
          secretRef: webhook-url
    secrets:
    - name: webhook-url
       value: projects/project-id/secrets/secret-name/versions/latest

Onde:

  • webhook-url é a variável de configuração usada neste exemplo para fazer referência ao caminho do URL do webhook do Slack armazenado no gerenciador de secrets. O nome da variável especificada aqui precisa corresponder ao campo name em secrets.
  • project-id é o ID do projeto do Cloud.
  • secret-name é o nome do secret que contém o URL do webhook do Slack.

Para ver o exemplo, consulte o arquivo de configuração do notificador para o notificador do Slack.

Como executar o script de automação

Para automatizar a configuração de notificação seu notificador:

  1. Clone o repositório do cloud-build-notifiers.

  2. Execute o seguinte comando na raiz do repositório:

     ./setup.sh notifier config-path secret-name
    

    Em que:

    • notifier é o nome do notificador, como slack, smtp, bigquery ou http.
    • config-path é o caminho para o arquivo de configuração dos notificadores.
    • secret-name é o nome do secret armazenado no Gerenciador de secrets.

Depois de executar o script, você verá a seguinte mensagem:

** NOTIFIER SETUP COMPLETE **

O notificador já está configurado. Veja o script completo no repositório cloud-build-notifiers ou execute ./setup.sh --help para ver instruções de uso associadas ao script.

SMTP

Configuração

Nas seções a seguir, descrevemos as etapas que você precisa concluir antes de automatizar a configuração da notificação para o notificador.

Ativando APIs

Ative as APIs Cloud Build, Compute Engine, Cloud Run, Pub/Sub, and Secret Manager.

Ative as APIs

Armazene as credenciais

  1. Armazene a senha da conta de e-mail do remetente no Gerenciador de secrets:

  2. Abra a página "Gerenciador de secrets" no Console do Google Cloud:

    Abrir a página "Gerenciador de secrets"

  3. Clique em Criar secret.

  4. Insira um nome para o secret.

  5. Em Valor do secret, adicione a senha da conta de e-mail do remetente.

  6. Para salvar o secret, clique em Criar secret.

Como conceder permissões

O Cloud Run executa as imagens do notificador com a conta de serviço padrão do Compute Engine. Para que a conta de serviço consiga buscar seu secret a partir do Gerenciador de secrets, é preciso conceder o papel de Acessador de secrets do Gerenciador de secrets à conta de serviço:

Conceda à sua conta de serviço do Cloud Run acesso ao secret:

  1. Acesse a página IAM do Console do Google Cloud:

    Abrir a página do IAM

  2. Localize a conta de serviço padrão do Compute Engine associada ao seu projeto:

    Sua conta de serviço padrão do Compute Engine será semelhante à seguinte, em que project-number é o número do projeto:

    project-number-compute@developer.gserviceaccount.com
    

    Anote a conta de serviço padrão do Compute Engine.

  3. Abra a página "Gerenciador de secrets" no Console do Google Cloud:

    Abrir a página "Gerenciador de secrets"

  4. Clique no nome do seu secret que contém seu secret.

  5. Na guia Permissões, clique em Adicionar principal.

  6. Adicione a conta de serviço padrão do Compute Engine associada ao projeto.

  7. Selecione Acessador de secrets do Gerenciador de secrets como o papel.

  8. Clique em Save.

Como gravar um arquivo de configuração de notificação

Grave um arquivo de configuração do notificador para configurar o notificador SMTP e filtrar os eventos de build:

No exemplo de arquivo de configuração do notificador de exemplo, o campo filter usa Common Expression Language com a variável disponível, build, para filtrar os eventos de build com um status SUCCESS:

 apiVersion: cloud-build-notifiers/v1
 kind: SMTPNotifier
 metadata:
   name: example-smtp-notifier
 spec:
   notification:
     filter: build.status == Build.Status.SUCCESS
     delivery:
       server: server-host-name
       port: "port"
       sender: sender-email
       from: from-email
       recipients:
         - recipient-email
         # optional: more emails here
       password:
         secretRef: smtp-password
   secrets:
   - name: smtp-password
     value: projects/project-id/secrets/secret-name/versions/latest

Onde:

  • server-host-name é o endereço do seu servidor SMTP.
  • port é a porta que processará as solicitações de SMTP. Esse valor precisa ser especificado como uma string.
  • sender-email é o endereço de e-mail da conta do remetente que é vista pelo server-host-name especificado.
  • from-email é o endereço de e-mail visto pelos destinatários.
  • recipient-email é uma lista de um ou mais endereços de e-mail para receber mensagens do remetente.
  • smtp-password é a variável de configuração usada neste exemplo para fazer referência à senha da conta de e-mail do remetente armazenada no Gerenciador de secrets. O nome da variável especificado aqui precisa corresponder ao campo name em secrets.
  • project-id é o ID do projeto do Cloud.
  • secret-name é o nome do secret que contém a senha da conta de e-mail do remetente.

Para ver o exemplo, consulte o arquivo de configuração do notificador para o notificador SMTP.

Como executar o script de automação

Para automatizar a configuração de notificação seu notificador:

  1. Clone o repositório do cloud-build-notifiers.

  2. Execute o seguinte comando na raiz do repositório:

     ./setup.sh notifier config-path secret-name
    

    Em que:

    • notifier é o nome do notificador, como slack, smtp, bigquery ou http.
    • config-path é o caminho para o arquivo de configuração dos notificadores.
    • secret-name é o nome do secret armazenado no Gerenciador de secrets.

Depois de executar o script, você verá a seguinte mensagem:

** NOTIFIER SETUP COMPLETE **

O notificador já está configurado. Veja o script completo no repositório cloud-build-notifiers ou execute ./setup.sh --help para ver instruções de uso associadas ao script.

BigQuery

Configuração

Nas seções a seguir, descrevemos as etapas que você precisa concluir antes de automatizar a configuração da notificação para o notificador.

Ativando APIs

Ative as APIs Cloud Build, Cloud Run, Pub/Sub, and BigQuery.

Ative as APIs

Como conceder permissões

Conceda permissão à conta de serviço do Cloud Run para criar e gravar tabelas do BigQuery e receber dados do Artifact Registry relacionados à versão:

  1. Acesse a página IAM do Console do Google Cloud:

    Abrir a página do IAM

  2. Localize a conta de serviço padrão do Compute Engine associada ao seu projeto:

    Sua conta de serviço padrão do Compute Engine será semelhante à seguinte, em que project-number é o número do projeto:

        project-number-compute@developer.gserviceaccount.com
    
  3. Clique no ícone de lápis na linha que contém sua conta de serviço padrão do Compute Engine.

    Você verá a guia Editar permissões.

    1. Clique em Adicionar outro papel.

    2. Adicione os seguintes papéis:

      • Leitor do Artifact Registry
      • Editor de dados do BigQuery

        O papel Leitor do Artifact Registry permite buscar dados para as imagens. O Editor de dados do BigQuery dá acesso de leitura e gravação aos seus dados.

    3. Clique em Save.

Como gravar um arquivo de configuração de notificação

Grave um arquivo de configuração do notificador para configurar seu notificador do BigQuery e filtrar eventos de build:

No exemplo de arquivo de configuração de notificador a seguir, o campo filter usa Common Expression Language com a variável build para filtrar eventos de build com um ID de gatilho especificado:

 apiVersion: cloud-build-notifiers/v1
 kind: BigQueryNotifier
 metadata:
   name: example-bigquery-notifier
 spec:
   notification:
     filter: build.build_trigger_id == "123e4567-e89b-12d3-a456-426614174000"
     delivery:
       table: projects/project-id/datasets/dataset-name/tables/table-name

Em que:

  • project-id é o ID do projeto do Cloud.
  • dataset-name é o nome que você quer dar ao conjunto de dados.
  • table-name é o nome que você quer dar à tabela.

O table-name no arquivo de configuração do notificador pode se referir a:

  • uma tabela inexistente
  • uma tabela vazia sem um esquema
  • uma tabela atual com um esquema que corresponde às especificações de esquema no notificador do BigQuery;

Para ver o exemplo, consulte o arquivo de configuração do notificador do notificador do BigQuery.

Como executar o script de automação

Para automatizar a configuração de notificação seu notificador:

  1. Clone o repositório do cloud-build-notifiers.

  2. Execute o seguinte comando na raiz do repositório:

     ./setup.sh notifier config-path
    

    Em que:

    • notifier é o nome do notificador, como slack, smtp, bigquery ou http.
    • config-path é o caminho para o arquivo de configuração dos notificadores.

Depois de executar o script, você verá a seguinte mensagem:

** NOTIFIER SETUP COMPLETE **

O notificador já está configurado. Veja o script completo no repositório cloud-build-notifiers ou execute ./setup.sh --help para ver instruções de uso associadas ao script.

HTTP

Configuração

Nas seções a seguir, descrevemos as etapas que você precisa concluir antes de automatizar a configuração da notificação para o notificador.

Ativando APIs

Ative as APIs Cloud Build, Cloud Run, and Pub/Sub.

Ative as APIs

Como gravar um arquivo de configuração de notificação

Grave um arquivo de configuração para configurar seu notificador do HTTP e filtrar eventos de build:

No exemplo de arquivo de configuração do notificador de exemplo, o campo filter usa Common Expression Language com a variável disponível, build, para filtrar os eventos de build com um status SUCCESS:

    apiVersion: cloud-build-notifiers/v1
    kind: HTTPNotifier
    metadata:
      name: example-http-notifier
    spec:
      notification:
        filter: build.status == Build.Status.SUCCESS
        delivery:
          # The `http(s)://` protocol prefix is required.
          url: url

Onde:

  • url é a variável de configuração usada neste exemplo para especificar o URL da solicitação.
  • url é o URL que você quer especificar como seu servidor destinatário.

Para ver o exemplo, consulte o arquivo de configuração do notificador para o notificador do HTTP.

Como executar o script de automação

Para automatizar a configuração de notificação seu notificador:

  1. Clone o repositório do cloud-build-notifiers.

  2. Execute o seguinte comando na raiz do repositório:

     ./setup.sh notifier config-path
    

    Em que:

    • notifier é o nome do notificador, como slack, smtp, bigquery ou http.
    • config-path é o caminho para o arquivo de configuração dos notificadores.

Depois de executar o script, você verá a seguinte mensagem:

** NOTIFIER SETUP COMPLETE **

O notificador já está configurado. Veja o script completo no repositório cloud-build-notifiers ou execute ./setup.sh --help para ver instruções de uso associadas ao script.

A seguir