Anda dapat menerima notifikasi dari Pub/Sub untuk perubahan pada repositori Docker. Notifikasi berlaku untuk image container apa pun yang disimpan di repositori, termasuk diagram Helm 3 yang dikemas dalam format OCI.
Pub/Sub memublikasikan pesan tentang repositori Anda ke resource bernama yang disebut topik. Aplikasi yang berlangganan ke topik Pub/Sub menerima pesan ini dan menerima notifikasi saat status repositori berubah.
Artifact Registry memublikasikan pesan untuk perubahan berikut:
- Upload image
- Tag baru ditambahkan ke image
- Penghapusan image
Selain itu, Anda dapat mengonfigurasi peran dan izin untuk memublikasikan atau berlangganan ke notifikasi.
Untuk mengetahui informasi tentang cara mengonfigurasi notifikasi Artifact Analysis untuk aktivitas seperti hasil pemindaian kerentanan baru, lihat dokumentasi Artifact Analysis.Ringkasan
Artifact Registry memublikasikan pesan tentang perubahan pada repositori dalam topik bernama gcr.
Untuk menerima notifikasi, Anda harus:
- Membuat topik bernama
gcrdi project dengan Artifact Registry. - Membuat langganan ke topik.
- Menyiapkan aplikasi pelanggan untuk menerima pesan tentang perubahan repositori.
- Jika sesuai, mengonfigurasi izin untuk mengontrol akses ke topik dan langganan Anda.
Membuat topik Artifact Registry
Untuk membuat topik gcr dengan Google Cloud :
Konsol
Buka halaman topik Pub/Sub di Google Cloud konsol.
Klik Buat Topik.
Masukkan ID topik
gcr.Klik Buat Topik.
gcloud
Jalankan perintah berikut:
gcloud pubsub topics create gcr --project=PROJECT-ID
Ganti PROJECT-ID dengan ID project Anda. Google CloudJika Anda menghilangkan flag --project, perintah akan menggunakan project saat ini.
Untuk mempelajari perintah gcloud pubsub topics lebih lanjut, lihat dokumentasi
topics.
Untuk membuat topik gcr dengan enkripsi CMEK, lihat petunjuk Pub/Sub
untuk mengenkripsi topik.
Setelah membuat topik gcr atau memverifikasi bahwa topik tersebut ada, Anda dapat
membuat langganan ke topik tersebut.
Membuat langganan
Setelah Anda membuat topik untuk perubahan repositori, Anda dapat mengonfigurasi langganan ke topik tersebut yang menggunakan pengiriman push atau pengiriman pull. Sebaiknya gunakan pengiriman pull karena sistem CI/CD dapat menghasilkan banyak perubahan pada artefak yang disimpan, dan pengiriman pull lebih efektif untuk volume pesan yang besar.
Untuk membuat langganan dengan pengiriman pull:
Konsol
Buka halaman topik Pub/Sub di Google Cloud konsol.
Klik topik project Anda.
Klik Buat Langganan.
Masukkan nama langganan:
projects/PROJECT/subscriptions/[SUBSCRIPTION-NAME]Biarkan Jenis Pengiriman ditetapkan ke Pull.
Klik Buat.
gcloud
Jalankan perintah berikut:
gcloud pubsub subscriptions create SUBSCRIPTION-NAME --topic=gcr
Ganti SUBSCRIPTION-NAME dengan nama untuk langganan
Untuk mempelajari perintah gcloud pubsub subscriptions lebih lanjut, lihat dokumentasi
subscriptions.
Anda kini memiliki langganan ke topik gcr. Langkah berikutnya adalah
mengonfigurasi izin untuk identitas yang memicu perubahan
di repositori.
Mengonfigurasi aplikasi pelanggan
Setelah Anda membuat topik dan langganan ke topik tersebut, Anda dapat menyiapkan aplikasi pelanggan, yaitu aplikasi yang menerima pesan tentang perubahan pada repositori. Aplikasi pelanggan memenuhi tugas seperti notifikasi peristiwa, logging sistem, dan komunikasi antar-aplikasi.
Saat pengguna repositori mengirim atau menghapus image, langkah-langkah berikut akan terjadi:
Akun layanan Artifact Registry memublikasikan perubahan ke topik
gcrAnda. Akun layanan adalah service-PROJECT-NUMBER@gcp-sa-artifactregistry.iam.gserviceaccount.com, dengan PROJECT-NUMBER adalah nomor Google Cloud project Anda. Akun layanan Artifact Registry memiliki izinpubsub.topics.publishsecara default sehingga dapat memublikasikan perubahan ke topik Anda.Jika administrator telah mencabut izin
pubsub.topics.publishuntuk akun layanan Artifact Registry, Artifact Registry akan mencoba memublikasikan pesan sebagai pengguna repositori. Dalam situasi ini, akun pengguna repositori harus memiliki izinpubsub.topics.publishagar berhasil memublikasikan pesan.Pub/Sub meneruskan pesan dari topik ke langganan Anda.
Saat aplikasi pelanggan membuat permintaan pesan, aplikasi tersebut akan mengambil pesan baru dari langganan.
Identitas yang mengambil pesan atas nama pelanggan harus memiliki izin untuk mengakses langganan. Anda dapat menggunakan peran Pelanggan Pub/Sub untuk memberikan izin ini.
Untuk mempelajari cara menyiapkan pelanggan agar menerima pesan dari langganan dengan pengiriman pull, lihat Menerima pesan menggunakan Pull.
Mengonfigurasi izin
Anda dapat menggunakan izin Pub/Sub untuk mengontrol akses ke topik dan langganan.
Untuk mengetahui informasi selengkapnya tentang izin Pub/Sub dan pemberian akses ke topik dan langganan, lihat dokumentasi kontrol akses Pub/Sub .
Contoh notifikasi
Pub/Sub mengirimkan notifikasi sebagai string berformat JSON. Tinjau contoh berikut untuk mempelajari hal yang dapat Anda harapkan saat menerima notifikasi Artifact Registry dari Pub/Sub.
Saat image dikirim ke Artifact Registry, payload notifikasi mungkin terlihat seperti ini:
{
"action":"INSERT",
"digest":"us-west1-docker.pkg.dev/my-project/my-repo/hello-world@sha256:6ec128e26cd5..."
}
Saat tag image baru dikirim ke Artifact Registry, payload notifikasi akan terlihat seperti ini:
{
"action":"INSERT",
"digest":"us-west1-docker.pkg.dev/my-project/my-repo/hello-world@sha256:6ec128e26cd5...",
"tag":"us-west1-docker.pkg.dev/my-project/my-repo/hello-world:1.1"
}
Pesan mengidentifikasi image yang relevan menggunakan kunci digest atau tag.
Saat tag image dihapus dari Artifact Registry, payload notifikasi mungkin terlihat seperti ini:
{
"action":"DELETE",
"tag":"us-west1-docker.pkg.dev/my-project/my-repo/hello-world:1.1"
}
Pesan mungkin berisi DELETE atau INSERT sebagai nilai untuk kunci action.
Langkah berikutnya
- Baca dokumentasi Pub/Sub.
- Untuk penjelasan mendalam tentang Pub/Sub, lihat Apa yang dimaksud dengan Pub/Sub?
- Pelajari lebih lanjut peran kontrol akses Pub/Sub.