Saat perubahan dilakukan pada repositori Container Registry Anda, misalnya saat gambar dikirim, diberi tag, atau dihapus, Anda dapat menerima notifikasi menggunakan Pub/Sub.
Pub/Sub memublikasikan pesan tentang repositori Anda ke resource bernama yang disebut topics. Pesan ini diterima oleh aplikasi yang berlangganan topik Pub/Sub. Aplikasi pelanggan mengirim notifikasi saat status repositori Anda berubah.
Selain itu, Anda dapat mengonfigurasi peran dan izin untuk topik Pub/Sub untuk 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 informasi cara mengonfigurasi notifikasi Analisis Artefak untuk aktivitas seperti hasil pemindaian kerentanan baru, lihat Dokumentasi Analisis Artefak.
Membuat topik Pub/Sub
Saat Anda mengaktifkan Container Registry API di project Google Cloud, Container Registry secara otomatis membuat topik Pub/Sub dengan ID topik gcr
.
Jika topik gcr
tidak sengaja dihapus atau hilang, Anda dapat menambahkannya sendiri. Misalnya, topik mungkin tidak ada jika organisasi Google Cloud Anda memiliki batasan kebijakan organisasi yang memerlukan enkripsi dengan kunci enkripsi yang dikelola pelanggan (CMEK). Jika Pub/Sub API tercantum dalam daftar tolak batasan ini, layanan tidak dapat membuat topik secara otomatis 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 menghilangkan flag --project
, perintah tersebut
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 Jenis Pengiriman ditetapkan ke Tarik.
Klik Create.
gcloud
Dari sistem tempat image Docker didorong 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 repositori Anda tetap aman 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, privatenet.admin, testlab.editor, testlab.publisher. Kepala sekolah 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: owner, editor, end.admin, end.editor, bin.subscriber.
Contoh notifikasi
Notifikasi dikirim sebagai string berformat JSON. Berikut adalah contoh yang akan terjadi saat menerima notifikasi Container Registry dari Pub/Sub.
Ketika image dikirim ke Container Registry, payload notifikasi mungkin terlihat seperti ini:
{
"action":"INSERT",
"digest":"gcr.io/my-project/hello-world@sha256:6ec128e26cd5..."
}
Saat tag baru dikirim 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 peran kontrol akses Pub/Sub lebih lanjut.