Menggunakan notifikasi Cloud Deploy

Halaman ini menjelaskan cara menggunakan notifikasi layanan Cloud Deploy, termasuk cara berlangganan.

Cloud Deploy menggunakan Pub/Sub untuk memublikasikan notifikasi untuk dua tujuan:

  • Untuk memungkinkan Anda mengintegrasikan Cloud Deploy dengan alat pihak ketiga dan alat Google lainnya, seperti alat untuk penjualan tiket alur kerja atau infrastruktur pengujian.

  • Untuk memperluas Cloud Deploy dengan logika bisnis tambahan.

Topik yang tersedia

Cloud Deploy memublikasikan pesan ke sekumpulan topik Google Pub/Sub berikut:

  • clouddeploy-resources

    Saat ada operasi (buat, update, hapus) terhadap resource inti Cloud Deploy (otomatisasi, jenis target kustom, pipeline pengiriman, operasi tugas, rilis, peluncuran, target).

  • clouddeploy-operations

    • Saat Cloud Deploy merender konfigurasi Skaffold.
    • Saat Cloud Deploy di-deploy ke target (Start, Succeed, Failure, Terminated (tugas berjalan), Cancelled (peluncuran)).
  • clouddeploy-approvals

    • Saat Cloud Deploy memerlukan persetujuan (atau penolakan) peluncuran.
    • Saat peluncuran disetujui atau ditolak.
  • clouddeploy-advances

    • Saat peluncuran Cloud Deploy dilanjutkan dari satu fase ke fase berikutnya.
    • Saat peluncuran siap dilanjutkan.

Anda dapat menggunakan model push atau pull untuk langganan Pub/Sub.

Menerima notifikasi layanan Cloud Deploy

Untuk menerima notifikasi layanan Cloud Deploy:

  1. Aktifkan Cloud Deploy API:

    Mengaktifkan Cloud Deploy API

    Akun layanan Agen Layanan Cloud Deploy secara otomatis ditambahkan ke project Anda saat Anda pertama kali memanggil Cloud Deploy API. Dengan akun layanan ini, Anda dapat menerima notifikasi layanan Cloud Deploy menggunakan Pub/Sub.

    Nama akun layanan memiliki format berikut, dengan project-number adalah nomor project Anda:

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

    Jika Anda masih tidak melihat akun layanan Agen Layanan Cloud Deploy di halaman IAM, atau Anda tidak dapat menerima notifikasi Pub/Sub, tambahkan akun layanan ini ke project Anda:

    1. Buka halaman IAM di Konsol Google Cloud:

      Buka halaman IAM

    2. Klik Tambahkan.

    3. Tambahkan akun utama berikut, dengan project-number sebagai nomor project Anda:

      service-project-number@gcp-sa-clouddeploy.iam.gserviceaccount.com
      
    4. Pilih Service Management > Cloud Deploy Service Agent sebagai peran Anda.

    5. Klik Simpan.

  2. Aktifkan Pub/Sub API:

    Mengaktifkan Pub/Sub API

  3. Buat topik Pub/Sub atau topik, berdasarkan jenis notifikasi yang ingin Anda terima:

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

    Untuk mempelajari lebih lanjut cara mengelola topik Pub/Sub, lihat Mengelola topik dan langganan.

Berlangganan notifikasi layanan Cloud Deploy

Anda memiliki beberapa opsi untuk berlangganan notifikasi. Misalnya, Anda dapat mengirim pesan ke endpoint, atau menulis aplikasi Python untuk melakukan polling pada langganan Anda.

Untuk mempelajari cara menyiapkan langganan Pub/Sub untuk notifikasi layanan Cloud Deploy, baca Panduan Pelanggan Pub/Sub. Anda juga dapat mempelajari Library Klien Pub/Sub, yang mempermudah pengembangan aplikasi pelanggan.

Nilai kolom

Bagian ini mencantumkan kemungkinan nilai untuk kolom di pesan Cloud Deploy Pub/Sub.

Untuk Action

Dalam notifikasi ini, nilai yang memungkinkan untuk Action adalah sebagai berikut.

  • Untuk resource

    • Create
    • Update
    • Delete
  • Untuk operasi:

    • Start
    • Succeed
    • Failure
    • Terminated
    • Cancelled
  • Untuk mendapatkan persetujuan:

    • Required
    • Approved
    • Rejected
  • Untuk lanjutan:

    • Required
    • Advanced

Untuk ResourceType

Dan nilai yang memungkinkan untuk ResourceType adalah sebagai berikut:

  • DeliveryPipeline
  • Target
  • Release
  • Rollout
  • JobRun

Contoh pesan

Contoh berikut menunjukkan beberapa jenis pesan Pub/Sub dari topik Cloud Deploy.

Pembuatan pipeline pengiriman

Berikut adalah contoh pesan Pub/Sub yang dipublikasikan ke clouddeploy-resources sebagai respons terhadap pembuatan deliveryPipeline baru:

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

Awal render

Berikut adalah contoh pesan Pub/Sub yang dipublikasikan ke clouddeploy-operations untuk memberi tahu bahwa rilis telah dirender:

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

Diperlukan persetujuan

Berikut adalah contoh pesan Pub/Sub yang dipublikasikan ke clouddeploy-approvals untuk memberi tahu bahwa peluncuran memerlukan persetujuan:

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

Luncurkan lanjutan

Berikut adalah contoh pesan Pub/Sub yang dipublikasikan ke clouddeploy-advances untuk memberi tahu bahwa peluncuran telah dilanjutkan dari satu fase ke fase berikutnya:

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

Dalam pesan ini, PhaseId mengidentifikasi fase lanjutan peluncuran.

Langkah selanjutnya