Saat perubahan dilakukan pada repositori Container Registry, seperti saat image di-push, diberi tag, atau dihapus, Anda dapat menerima notifikasi menggunakan Pub/Sub.
Pub/Sub memublikasikan pesan tentang repositori Anda ke resource bernama yang disebut topik. Pesan ini diterima oleh aplikasi yang berlangganan topik Pub/Sub. Aplikasi subscriber mengirim notifikasi saat status repositori Anda berubah.
Selain itu, Anda dapat mengonfigurasi peran dan izin untuk topik Pub/Sub guna mengontrol cara pengguna berinteraksi dengan repositori Anda.
Untuk mendukung transisi dari Container Registry ke Artifact Registry, Artifact Registry memublikasikan pesan ke topik yang sama dengan Container Registry.
Untuk mengetahui informasi tentang cara mengonfigurasi notifikasi Artifact Analysis untuk aktivitas seperti hasil pemindaian kerentanan baru, lihat dokumentasi Artifact Analysis.
Membuat topik Pub/Sub
Saat Anda mengaktifkan Container Registry API di project Google Cloud,
Container Registry akan otomatis membuat topik Pub/Sub
dengan ID topik gcr
.
Jika topik gcr
tidak sengaja dihapus atau tidak ada, Anda dapat menambahkannya sendiri. Misalnya, topik mungkin tidak ada jika organisasi Google Cloud Anda memiliki batasan kebijakan organisasi yang mewajibkan enkripsi dengan kunci enkripsi yang dikelola pelanggan (CMEK). Jika
Pub/Sub API ada dalam daftar tolak batasan ini,
layanan tidak dapat otomatis membuat topik dengan kunci enkripsi yang dikelola Google.
Untuk membuat topik gcr
dengan kunci enkripsi yang dikelola Google:
Konsol
Buka halaman topik Pub/Sub di konsol Google Cloud.
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 project ID Google Cloud Anda. Jika Anda menghapus 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 untuk mengenkripsi topik Pub/Sub.
Setelah membuat topik gcr
atau memverifikasi bahwa topik tersebut ada, Anda dapat membuat langganan ke topik tersebut.
Membuat langganan Pub/Sub
Setiap topik Pub/Sub harus memiliki langganan.
Aplikasi pelanggan menerima pesan dari topik repositori Anda. Pelanggan memenuhi tugas seperti notifikasi peristiwa, logging sistem, dan komunikasi antar-aplikasi.
Langganan dapat dikonfigurasi untuk menggunakan model push atau model pull.
Untuk membuat langganan:
Konsol
Buka halaman topik Pub/Sub di konsol Google Cloud.
Klik topik project Anda.
Klik Buat Langganan.
Masukkan nama langganan:
projects/[PROJECT-ID]/subscriptions/[SUBSCRIPTION-NAME]
Biarkan Delivery Type ditetapkan ke Pull.
Klik Create.
gcloud
Dari sistem tempat image Docker dikirim atau diberi tag, jalankan perintah berikut:
gcloud pubsub subscriptions create [SUBSCRIPTION-NAME] --topic=gcr
Untuk mempelajari perintah gcloud pubsub subscriptions
lebih lanjut, lihat
dokumentasi subscriptions
.
Mengonfigurasi izin Pub/Sub
Gunakan kontrol akses Pub/Sub untuk mengonfigurasi izin untuk project dan resource Anda. Kontrol akses menjaga keamanan repositori dan memungkinkan Anda mengelola izin pengguna menggunakan akses berbasis peran.
Anda dapat mengonfigurasi kontrol akses Pub/Sub di halaman IAM konsol Google Cloud atau melalui IAM API.
Untuk mengonfigurasi izin publikasi, gunakan salah satu peran berikut: pemilik, editor, pubsub.admin, pubsub.editor, pubsub.publisher. Akun utama yang mengirim image atau menghapus image dari registry harus memiliki izin
pubsub.topics.publish
untuk memublikasikan pesan ke Pub/Sub.Untuk mengonfigurasi izin berlangganan, gunakan salah satu peran berikut: pemilik, editor, pubsub.admin, pubsub.editor, pubsub.subscriber.
Contoh notifikasi
Notifikasi dikirim sebagai string berformat JSON. Berikut adalah contoh hal yang akan terjadi saat menerima notifikasi Container Registry dari Pub/Sub.
Saat image dikirim ke Container Registry, payload pemberitahuan mungkin terlihat seperti ini:
{
"action":"INSERT",
"digest":"gcr.io/my-project/hello-world@sha256:6ec128e26cd5..."
}
Saat tag baru di-push ke Container Registry, payload notifikasi mungkin terlihat seperti ini:
{
"action":"INSERT",
"digest":"gcr.io/my-project/hello-world@sha256:6ec128e26cd5...",
"tag":"gcr.io/my-project/hello-world:1.1"
}
Pesan mengidentifikasi gambar yang relevan menggunakan kunci digest
atau tag
.
Saat tag dihapus dari Container Registry, payload notifikasi mungkin terlihat seperti ini:
{
"action":"DELETE",
"tag":"gcr.io/my-project/hello-world:1.1"
}
Pesan mungkin berisi DELETE
atau INSERT
sebagai nilai untuk kunci action
.
Langkah selanjutnya
- 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.