このページでは、Cloud Deploy サービス通知を使用する方法(サブスクライブする方法など)について説明します。
Cloud Deploy は、次の 2 つの目的で Pub/Sub を使用して通知を公開します。
Cloud Deploy をサードパーティ ツールや他の Google ツール(ワークフロー チケットングやテスト インフラストラクチャのツールなど)と統合できるようにします。
追加のビジネス ロジックを使用して Cloud Deploy を拡張します。
使用可能なトピック
Cloud Deploy では、次の一連の Google Pub/Sub トピックにメッセージを公開します。
clouddeploy-resourcesCloud Deploy のコアリソース(自動化、カスタム ターゲット タイプ、デリバリー パイプライン、ジョブ実行、リリース、ロールアウト、ターゲット)に対するオペレーション(作成、更新、削除)がある場合。
clouddeploy-operations- Cloud Deploy で Skaffold 構成がレンダリングされる場合。
 - Cloud Deploy がターゲット(
Start、Succeed、Failure、Terminated(ジョブ実行)、Cancelled(ロールアウト))にデプロイする場合。 
clouddeploy-approvals- Cloud Deploy でロールアウトの承認(または拒否)が必要な場合。
 - ロールアウトが承認されたか拒否された場合。
 
clouddeploy-advances- Cloud Deploy ロールアウトがフェーズから次のフェーズに進んだとき。
 - ロールアウトを進めることができる場合。
 
Pub/Sub サブスクリプションに push または pull モデルを使用できます。
Cloud Deploy サービスに関する通知を受け取る
Cloud Deploy サービス通知を受け取るには:
プロジェクトで Cloud Deploy API を有効にします。
Pub/Sub API を有効にします。
受信する通知の種類に応じて、Pub/Sub トピックを作成します。
gcloud pubsub topics create clouddeploy-resources gcloud pubsub topics create clouddeploy-operations gcloud pubsub topics create clouddeploy-approvals gcloud pubsub topics create clouddeploy-advancesPub/Sub トピックの管理の詳細については、トピックとサブスクリプションの管理をご覧ください。
Cloud Deploy サービス通知をサブスクライブする
通知に登録する方法はいくつかあります。たとえば、メッセージをエンドポイントに push できます。また、サブスクリプションをポーリングする Python アプリを作成することもできます。
Cloud Deploy サービス通知用の Pub/Sub サブスクリプションを設定する方法については、Pub/Sub サブスクライバー ガイドをご覧ください。また、Pub/Sub クライアント ライブラリを使用すると、サブスクライバー アプリケーションをより簡単に開発できます。
フィールド値
このセクションでは、Cloud Deploy Pub/Sub メッセージのフィールドに使用できる値について説明します。
Action の場合
これらの通知で、Action の値は次のとおりです。
リソースの場合
CreateUpdateDelete
オペレーションの場合:
StartSucceedFailureTerminatedCancelled
承認の場合:
RequiredApprovedRejected
前払いの場合:
RequiredAdvanced
ResourceType の場合
ResourceType に指定できる値は次のとおりです。
DeliveryPipelineTargetReleaseRolloutJobRun
サンプル メッセージ
次の例は、Cloud Deploy トピックからの Pub/Sub メッセージのいくつかのタイプを示しています。
デリバリー パイプラインの作成
新しい deliveryPipeline の作成に対応して clouddeploy-resources に公開された Pub/Sub メッセージの例を次に示します。
{
  "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"
  }
}
レンダリング開始
次の例は、リリースがレンダリングされたことを通知するために、clouddeploy-operations に公開された Pub/Sub メッセージを示しています。
{
  "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"
  }
}
承認が必要です
次の例は、ロールアウトに承認が必要であることを通知するために clouddeploy-approvals に公開された Pub/Sub メッセージを示しています。
{
   "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"
   }
 }
ロールアウトの進捗状況
次の例は、ロールアウトがフェーズから次のフェーズに進んだことを通知するために clouddeploy-advances に公開された Pub/Sub メッセージを示しています。
{
  "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"
  }
}
このメッセージで、PhaseId は、ロールアウトが進行したフェーズを識別します。