Usar as notificações do Cloud Deploy

Esta página descreve como usar as notificações de serviço do Cloud Deploy, incluindo como subscrever as mesmas.

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

  • Para lhe permitir integrar o Cloud Deploy com ferramentas de terceiros e outras ferramentas Google, como ferramentas para registo de pedidos de fluxo de trabalho ou infraestrutura de testes.

  • Para estender a implementação na nuvem com lógica empresarial suplementar.

Tópicos disponíveis

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

  • clouddeploy-resources

    Quando existe uma operação (criar, atualizar, eliminar) contra qualquer recurso principal do Cloud Deploy (automatização, tipo de destino personalizado, pipeline de entrega, execução de tarefas, lançamento, implementação, destino).

  • clouddeploy-operations

    • Quando o Cloud Deploy renderiza a configuração do Skaffold.
    • Quando o Cloud Deploy é implementado num destino (Start, Succeed, Failure, Terminated [execução de tarefas], Cancelled [implementação]).
  • clouddeploy-approvals

    • Quando o Cloud Deploy precisa de uma aprovação (ou uma rejeição) de uma implementação.
    • Quando uma implementação foi aprovada ou rejeitada.
  • clouddeploy-advances

    • Quando uma implementação do Cloud Deploy é avançada de uma fase para a seguinte.
    • Quando uma implementação está pronta para ser avançada.

Pode usar um modelo de envio ou obtenção para as suas subscrições do Pub/Sub.

Receba notificações do serviço Cloud Deploy

Para receber notificações do serviço Cloud Deploy:

  1. Ative a API Cloud Deploy para o seu projeto:

    Ative a API Cloud Deploy

  2. Ative a API Pub/Sub:

    Ative a API Pub/Sub

  3. Crie o tópico ou os tópicos do Pub/Sub com base nos tipos de notificações que quer receber:

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

    Para saber mais sobre a gestão de tópicos do Pub/Sub, consulte o artigo Gerir tópicos e subscrições.

Subscreva notificações de serviço do Cloud Deploy

Tem várias opções para subscrever notificações. Por exemplo, pode enviar mensagens para um ponto final ou escrever uma app Python para sondar a sua subscrição.

Para saber como configurar subscrições do Pub/Sub para notificações de serviços do Cloud Deploy, leia o guia de subscrição do Pub/Sub. Também pode saber mais sobre as bibliotecas de cliente do Pub/Sub, que facilitam o desenvolvimento de aplicações de subscrição.

Valores dos campos

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

Para Action

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

  • Para recursos

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

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

    • Required
    • Approved
    • Rejected
  • Para adiantamentos:

    • Required
    • Advanced

Para ResourceType

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

  • DeliveryPipeline
  • Target
  • Release
  • Rollout
  • JobRun

Mensagens de exemplo

Os exemplos seguintes mostram vários tipos de mensagens do Pub/Sub de tópicos do Cloud Deploy.

Criação de pipeline de entrega

Segue-se um exemplo de uma mensagem do Pub/Sub publicada em clouddeploy-resources em resposta à criação de um novo 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

Segue-se um exemplo de uma mensagem do Pub/Sub publicada em clouddeploy-operations para notificar que um lançamento foi renderizado:

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

Segue-se um exemplo de uma mensagem do Pub/Sub publicada em clouddeploy-approvals para notificar que uma implementação 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"
   }
 }

Implementação avançada

Segue-se um exemplo de uma mensagem do Pub/Sub publicada em clouddeploy-advances para notificar que uma implementação foi avançada de uma fase para a seguinte:

{
  "ackId": "RFAGFixdRkhRNxkIaFEOT14jPzUgKEUSAwVPAihdeTFXKkFZdWhRDRlyfWB9bV4UUFZMV38OURoHaE5tdR_z4ILjS0NVbVkQBApEUHldXhkEa1RcfC-a0fmv1OzMV0AvOaCoyO9pe77r3NluZiM9XhJLLD5-Jz1FQV5AEkwsCERJUytDCypYEU4EISE-MD5FUw",
  "message": {
    "attributes": {
      "Action": "Advanced",
      "Location": "us-central1",
      "PhaseId": "stable",
      "ProjectNumber": "120123456789",
      "ReleaseId": "rollout-123",
      "Rollout": "projects/120123456789/locations/us-central1/deliveryPipelines/etest/releases/f2/rollouts/rollout-123",
      "RolloutId": "rollout-123",
      "TargetId": "prod"
    },
    "messageId": "7335813725293809",
    "publishTime": "2023-04-03T15:16:30.425Z"
  }
}

Nesta mensagem, PhaseId identifica a fase para a qual a implementação foi avançada.

O que se segue?