Mengonfigurasi notifikasi Pub/Sub

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

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

  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 Delivery Type ditetapkan ke Pull.

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