Como se inscrever para receber notificações do build

O Cloud Build publica mensagens em um tópico do Google Pub/Sub quando o estado do build é alterado. Por exemplo, quando o build é criado quando ele começa a funcionar e quando ele é concluído.

O tópico do Pub/Sub em que o Cloud Build publica essas mensagens de atualização do build é chamado de cloud-builds. Cada mensagem contém uma representação de string JSON em base64 do recurso da build no atributo message.data. O código exclusivo e o status da build estão no campo message.attributes.

É possível usar um modelo push ou pull nas assinaturas do Pub/Sub.

Receber notificações de build

Para receber notificações da build:

  1. Ativar a API Cloud 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 versão via 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 vir 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 por meio do Pub/Sub, siga estas etapas para adicionar a conta de serviço do Agente de serviços do Cloud Build ao seu projeto:

    1. Abra a página IAM no console do Google Cloud:

      Abrir a página do IAM

    2. Clique em Conceder acesso.

    3. Adicione a seguinte conta principal, em que project-number é o número do projeto:

      service-project-number@gcp-sa-cloudbuild.iam.gserviceaccount.com
      
    4. Selecione Agentes de serviço > Agente de serviço do Cloud Build como seu papel.

    5. Clique em Save.

  2. Habilitar a API Pub/Sub:

    Habilitar a API Pub/Sub

  3. Crie o tópico cloud-builds:

    gcloud pubsub topics create cloud-builds
    

    Para saber mais sobre como gerenciar tópicos do Pub/Sub, consulte Como gerenciar tópicos e assinaturas.

Push

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"
}

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"
      }
    }
  ]
}

Como faço para me inscrever com o objetivo de criar notificações de atualização?

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. Aprenda também sobre as bibliotecas de cliente do Pub/Sub, que facilitam o desenvolvimento de aplicativos de assinantes.

Para aprender a usar o Pub/Sub para enviar atualizações de build a serviços como o Slack ou por e-mail, consulte Notificadores do Cloud Build.