Mengonfigurasi notifikasi Pub/Sub

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

  1. Buka halaman topik Pub/Sub di Konsol Google Cloud.

    Buka halaman topik Pub/Sub

  2. Klik Buat Topik.

  3. Masukkan ID topik gcr.

  4. 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

  1. Buka halaman topik Pub/Sub di Konsol Google Cloud.

    Buka halaman topik Pub/Sub

  2. Klik topik project Anda.

  3. Klik Buat Langganan.

  4. Masukkan nama langganan:

    projects/[PROJECT-ID]/subscriptions/[SUBSCRIPTION-NAME]
    

    Biarkan Jenis Pengiriman ditetapkan ke Tarik.

  5. 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