Mengonfigurasi notifikasi Pub/Sub

Anda dapat menerima notifikasi perubahan pada repositori Google Cloud menggunakan Pub/Sub. Notifikasi ini memberi tahu Anda saat pengguna membuat repositori baru, menghapus repositori, atau mendorong perubahan ke repositori yang ada. Anda dapat memilih untuk mengonfigurasi notifikasi untuk repositori tertentu atau di seluruh project Google Cloud.

Untuk mempelajari Pub/Sub lebih lanjut, lihat artikel Apa yang dimaksud dengan Pub/Sub?

Sebelum memulai

  • Jika Anda belum melakukannya, buat repositori.
  • Pastikan Anda memiliki izin yang sesuai untuk membuat topik dan langganan. Untuk informasi selengkapnya, lihat Kontrol akses.
  • Pastikan Anda memiliki akun layanan yang dapat memublikasikan ke topik Anda. Secara default, Cloud Source Repositories menggunakan akun layanan default Compute Engine untuk memublikasikan pesan. Untuk mengetahui informasi selengkapnya, lihat Notifikasi Pub/Sub untuk Cloud Source Repositories.

Membuat topik Pub/Sub

Untuk setiap project atau repositori Cloud Source Repositories yang ingin Anda terima notifikasinya, Anda harus membuat topik Pub/Sub. Anda dapat membuat topik menggunakan Konsol Google Cloud atau alat command line gcloud.

Saat membuat topik, Anda harus menggunakan URI yang memenuhi syarat untuk repositori. URI yang memenuhi syarat adalah:

projects/[PROJECT_ID]/topics/[TOPIC_NAME]

Dengan keterangan:

  • [PROJECT_ID] adalah ID project Google Cloud Anda.
  • [TOPIC_NAME] adalah nama topik.

Untuk membuat topik, ikuti langkah-langkah berikut.

Konsol

  1. Di konsol Google Cloud, buka halaman Topics Pub/Sub.

    Buka halaman Topics

  2. Klik Buat Topik.

  3. Masukkan nama topik dengan URI:

    projects/[PROJECT_ID]/topics/[TOPIC_NAME]
    

    Dengan keterangan:

    • [PROJECT_ID] adalah ID project Google Cloud Anda.
    • [TOPIC_NAME] adalah nama topik.
  4. Klik Create.

    Halaman Detail topik akan terbuka.

gcloud

Di jendela terminal, jalankan perintah berikut:

gcloud pubsub topics create projects/[PROJECT_ID]/topics/[TOPIC_NAME]

Dengan keterangan:

  • [PROJECT_ID] adalah ID project Google Cloud Anda.
  • [TOPIC_NAME] adalah nama topik.

Untuk mempelajari perintah gcloud pubsub topics lebih lanjut, lihat dokumentasi topics.

Membuat langganan Pub/Sub

Untuk menerima peristiwa yang dipublikasikan ke suatu topik, Anda harus membuat langganan Pub/Sub.

Aplikasi pelanggan menerima pesan dari topik repositori Anda. Pelanggan dapat merespons peristiwa repositori Anda dengan mengirim notifikasi atau memicu build.

Untuk membuat langganan, ikuti langkah-langkah berikut.

Konsol

  1. Di konsol Google Cloud, buka halaman Topics Pub/Sub.

    Buka halaman Topics

  2. Klik nama topik project Anda.

  3. Klik Buat Langganan.

    Halaman Add subscription to topic akan terbuka.

  4. Masukkan nama langganan:

    projects/[PROJECT_ID]/subscriptions/[SUBSCRIPTION_NAME]
    

    Dengan keterangan:

    • [PROJECT_ID] adalah ID project Google Cloud Anda.
    • [SUBSCRIPTION_NAME] adalah nama langganan Pub/Sub.
  5. Biarkan Jenis pengiriman ditetapkan ke Pull.

  6. Klik Create.

gcloud

Di jendela terminal, jalankan perintah berikut:

gcloud pubsub subscriptions create [SUBSCRIPTION_NAME] --topic=[TOPIC_NAME]

Dengan keterangan:

  • [SUBSCRIPTION_NAME] adalah nama langganan Pub/Sub.
  • [TOPIC_NAME] adalah nama topik.

Untuk mempelajari perintah gcloud pubsub subscriptions lebih lanjut, lihat dokumentasi subscriptions.

Menambahkan topik

Anda dapat mengaitkan topik Pub/Sub dengan project atau repositori Google Cloud menggunakan Google Cloud CLI.

Untuk mengaitkan topik dengan seluruh project, masukkan perintah berikut:

gcloud source project-configs update --add-topic=[TOPIC_NAME] --service-account=[SERVICE_ACCOUNT_NAME]

Dengan keterangan:

  • [TOPIC_NAME] adalah nama topik Pub/Sub.
  • [SERVICE_ACCOUNT_NAME] adalah nama akun layanan Cloud Build Anda.

Untuk mengaitkan topik dengan repositori tertentu, masukkan perintah berikut:

gcloud source repos update [REPOSITORY_NAME] --add-topic=[TOPIC_NAME] --service-account=[SERVICE_ACCOUNT_NAME]

Dengan keterangan:

  • [REPOSITORY_NAME] adalah nama repositori Google Cloud Anda.
  • [TOPIC_NAME] adalah nama topik Pub/Sub.
  • [SERVICE_ACCOUNT_NAME] adalah nama akun layanan Cloud Build Anda.

Akun layanan harus berada dalam project yang sama dengan repositori, dan akun layanan tersebut harus memiliki izin pubsub.topics.publish untuk memublikasikan pesan di topik yang ditentukan. Anda harus memiliki izin iam.serviceAccounts.actAs di akun layanan. Jika tidak ditentukan, akun layanan akan ditetapkan secara default ke akun layanan default Compute Engine.

Menghapus topik

Anda dapat menghapus pengaitan antara project atau repositori dan topik Pub/Sub menggunakan Google Cloud CLI.

Untuk menghapus topik dari seluruh project, masukkan perintah berikut:

gcloud source project-configs update --remove-topic=[TOPIC_NAME]

Untuk menghapus topik dari repositori tertentu, masukkan perintah berikut:

gcloud source repos update [REPOSITORY_NAME] --remove-topic=[TOPIC_NAME]

Menetapkan format topik

Notifikasi untuk Cloud Source Repositories dapat menggunakan format JSON atau Protocol Buffers. Untuk menetapkan format topik, Anda dapat menggunakan parameter --message-format saat menambahkan topik:

gcloud source project-configs update --add-topic=[TOPIC_NAME] --message-format=[json|protobuf]

Anda juga dapat menggunakan perintah set-format:

gcloud source project-configs update --update-topic=[TOPIC_NAME] --message-format=[json|protobuf]

Langkah selanjutnya