Como usar as notificações do Google Cloud Deploy

Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

Nesta página, descrevemos como usar as notificações de serviço do Google Cloud Deploy, incluindo como se inscrever nelas.

O Google Cloud Deploy usa o Pub/Sub para publicar notificações para dois fins:

  • Permitir a integração do Google Cloud Deploy com ferramentas de terceiros e outras ferramentas do Google, como ferramentas para tíquetes de fluxo de trabalho ou infraestrutura de teste.

  • Para estender o Google Cloud Deploy com uma lógica de negócios complementar.

Tópicos disponíveis

O Google Cloud Deploy publica mensagens no seguinte conjunto de tópicos do Google Pub/Sub:

  • clouddeploy-resources

    Quando há uma operação (criar, atualizar ou excluir) em qualquer recurso principal do Google Cloud Deploy (pipeline de entrega, lançamento, lançamento, destino).

  • clouddeploy-operations

    Quando o Google Cloud Deploy renderiza a configuração do Skaffold ou implanta em um destino (Start, Succeed, Failure).

  • clouddeploy-approvals

    • Quando o Google Cloud Deploy precisa de uma aprovação (ou rejeição) de um lançamento.
    • Quando um lançamento é aprovado ou rejeitado.

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

Receber notificações de serviço do Google Cloud Deploy

Para receber notificações do serviço do Google Cloud Deploy, siga estas etapas:

  1. Ative a API Google Cloud Deploy:

    Ative a API Google Cloud Deploy

    A conta de serviço do Agente de serviço do Cloud Deploy é adicionada automaticamente ao seu projeto quando você chama a API Google Cloud Deploy pela primeira vez. Essa conta de serviço permite que você receba notificações de serviço do Google Cloud Deploy usando o Pub/Sub.

    O nome da conta de serviço tem o seguinte formato, em que project-number é o número do projeto:

     service-project-number@gcp-sa-clouddeploy.iam.gserviceaccount.com
    

    Se você ainda não vir a conta de serviço do agente de serviço do Cloud Deploy na sua página do IAM ou se não for possível receber notificações do Pub/Sub, adicione esta conta de serviço ao seu projeto:

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

      Abrir a página do IAM

    2. Clique em Adicionar.

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

      service-project-number@gcp-sa-clouddeploy.iam.gserviceaccount.com
      
    4. Selecione Gerenciamento de Serviço > Agente de serviço do Cloud Deploy como seu papel.

    5. Clique em Save.

  2. Habilitar a API Pub/Sub:

    Habilitar a API Pub/Sub

  3. Crie o tópico ou tópicos do Pub/Sub, com base nos tipos de notificação que você quer receber:

    gcloud pubsub topics create clouddeploy-resources
    gcloud pubsub topics create clouddeploy-operations
    gcloud pubsub topics create clouddeploy-approvals
    

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

Inscrever-se nas notificações de serviço do Google Cloud Deploy

Você tem várias opções para se inscrever para receber notificações. 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 notificações de serviço do Google Cloud Deploy, leia o Guia de assinantes do Pub/Sub. Você também pode aprender sobre Bibliotecas cliente do Pub/Sub, que facilitam o desenvolvimento de aplicativos assinantes.

Valores de campo

Esta seção lista os valores possíveis para campos nas mensagens do Google Cloud Deploy Pub/Sub.

Para Action

Nessas notificações, os valores possíveis para Action são os seguintes.

  • Para recursos

    • Create
    • Update
    • Delete
  • Para operações:

    • Start
    • Succeed
    • Failure
  • Para aprovações:

    • Required
    • Approved
    • Rejected

Para ResourceType

E os valores possíveis para ResourceType são os seguintes:

  • DeliveryPipeline
  • Target
  • Release
  • Rollout
  • JobRun

Mensagens de amostra

Os exemplos a seguir mostram vários tipos de mensagens do Pub/Sub dos tópicos do Google Cloud Deploy.

Criação do pipeline de entrega

Veja a seguir um exemplo de uma mensagem do Pub/Sub publicada em clouddeploy-resources em resposta à criação de uma nova deliveryPipeline:

{
  "ackId":   "RFAGFixdRkhRNxkIaFEOT14jPzUgKEUQBQgUBXx9cEFMdVhddmhRDRlyfWByY11AAgVMVnldURsHaE5tdR_Wg6LHS0NVaF4TBgpGVX5fXx0IYVtedi_m7r_2wPXOXkAvOYXL6Mtpe735h9xvZiM9XxJLLD5-IzRFQV5AEkwoAURJUytDCypYEU4EISE-MD5FUw",
  "message": {
    "attributes": {
      "Action": "Create",
      "Resource": "projects/120123456789/locations/us-central1/deliveryPipelines/etest",
      "ResourceType": "DeliveryPipeline",
      "Location": "us-central1",
      "DeliveryPipelineId": "etest",
      "ProjectNumber": "120123456789",

    },
    "messageId": "2407836004659723",
    "publishTime": "2021-05-17T21:24:48.204Z"
  }
}

Início da renderização

Veja a seguir um exemplo de uma mensagem do Pub/Sub publicada em clouddeploy-operations para notificar que uma versão foi renderizada:

{
  "ackId": "U0RQBhYsXUZIUTcZCGhRDk9eIz81IChFFwYIFAV8fXBBTHVeXHRoUQ0Zcn1gcmNfR1MLFlN5WFEaB2hObXUfioKix0tDVWheEwYKRVZ3W1kdBGFVXH0v_qD5rMP1zl5AKDnZyujLaXudkqxfZiM9XxJLLD5-PTNFQV5AEkw2BkRJUytDCypYEU4EISE-MD5F",
  "message": {
    "attributes": {
      "Action": "Start",
      "Resource": "projects/120123456789/locations/us-central1/deliveryPipelines/etest/releases/f2",
      "ResourceType": "Release"
      "Location": "us-central1",
      "DeliveryPipelineId": "etest",
      "ProjectNumber": "120123456789",
      "ReleaseId": "f2",
    },
    "messageId": "2407805942699908",
    "publishTime": "2021-05-17T21:28:04.201Z"
  }
}

Aprovação necessária

Veja a seguir um exemplo de uma mensagem do Pub/Sub publicada em clouddeploy-approvals para notificar que um lançamento requer aprovação:

{
   "ackId": "RVNEUAYWLF1GSFE3GQhoUQ5PXiM_NSAoRRILUxNRXHQBWhBpWF8aB1ENGXJ8ZnxtCRBVU0FWf1VbEQ16bVxti6C2rERfQXduWhQJBkBXd11aHQhoXF9dotnkpeTv2kFwYSuN8_7mSH_Mo6AYZiA9XBJLLD5-IzZFQV5AEkwoA0RJUytDCypYEU4EISE-MD4",
   "message": {
     "attributes": {
       "Action": "Required",
       "Rollout": "projects/120123456789/locations/us-central1/deliveryPipelines/etest/releases/f2/rollouts/rollout-123"
       "ReleaseId": "f2",
       "RolloutId": "rollout-123",
       "TargetId": "prod",
       "Location": "us-central1",
       "ProjectNumber": "120123456789",
     },
     "messageId": "2407845492165003",
     "publishTime": "2021-05-17T21:31:25.143Z"
   }
 }

A seguir