Halaman ini menjelaskan cara menggunakan notifikasi layanan Cloud Deploy, termasuk cara berlangganannya.
Cloud Deploy menggunakan Pub/Sub untuk memublikasikan notifikasi untuk dua tujuan:
Agar Anda dapat mengintegrasikan Cloud Deploy dengan alat pihak ketiga dan alat Google lainnya, seperti alat untuk pemrosesan tiket alur kerja atau infrastruktur pengujian.
Untuk memperluas Cloud Deploy dengan logika bisnis tambahan.
Topik yang tersedia
Cloud Deploy memublikasikan pesan ke kumpulan topik Google Pub/Sub berikut:
clouddeploy-resources
Saat ada operasi (buat, perbarui, hapus) terhadap resource inti Cloud Deploy (otomatisasi, jenis target kustom, pipeline pengiriman, tugas berjalan, rilis, peluncuran, target).
clouddeploy-operations
- Saat Cloud Deploy merender konfigurasi Skaffold.
- Saat Cloud Deploy men-deploy ke target (
Start
,Succeed
,Failure
,Terminated
(tugas berjalan),Cancelled
(peluncuran)).
clouddeploy-approvals
- Saat Cloud Deploy memerlukan persetujuan (atau penolakan) peluncuran.
- Saat peluncuran telah disetujui atau ditolak.
clouddeploy-advances
- Saat peluncuran Cloud Deploy telah maju dari satu fase ke fase berikutnya.
- Saat peluncuran siap ditingkatkan.
Anda dapat menggunakan model push atau pull untuk langganan Pub/Sub.
Menerima notifikasi layanan Cloud Deploy
Untuk menerima notifikasi layanan Cloud Deploy:
Aktifkan Cloud Deploy API:
Akun layanan Cloud Deploy Service Agent otomatis ditambahkan ke project Anda saat Anda pertama kali memanggil Cloud Deploy API. Akun layanan ini memungkinkan Anda 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 Cloud Deploy Service Agent di halaman IAM, atau Anda tidak dapat menerima notifikasi Pub/Sub, tambahkan akun layanan ini ke project Anda:
Buka halaman IAM di konsol Google Cloud:
Klik Tambahkan.
Tambahkan akun utama berikut, dengan project-number adalah nomor project Anda:
service-project-number@gcp-sa-clouddeploy.iam.gserviceaccount.com
Pilih Pengelolaan Layanan > Cloud Deploy Service Agent sebagai peran Anda.
Klik Simpan.
Aktifkan Pub/Sub API:
Buat topik Pub/Sub, 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 mendorong pesan ke endpoint, atau menulis aplikasi Python untuk melakukan polling 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 memudahkan pengembangan aplikasi subscriber.
Nilai kolom
Bagian ini mencantumkan kemungkinan nilai untuk kolom dalam pesan Pub/Sub Cloud Deploy.
Untuk Action
Dalam notifikasi ini, kemungkinan nilai untuk Action
adalah sebagai berikut.
Untuk referensi
Create
Update
Delete
Untuk operasi:
Start
Succeed
Failure
Terminated
Cancelled
Untuk persetujuan:
Required
Approved
Rejected
Untuk kemajuan:
Required
Advanced
Untuk ResourceType
Dan kemungkinan nilai 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"
}
}
Mulai 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"
}
}
Peluncuran lanjutan
Berikut adalah contoh pesan Pub/Sub yang dipublikasikan ke
clouddeploy-advances
untuk memberi tahu bahwa peluncuran telah maju 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 yang telah dicapai oleh peluncuran.