Mengonfigurasi notifikasi Pub/Sub

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

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

Sebelum memulai

Membuat topik Pub/Sub

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

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

projects/[PROJECT_ID]/topics/[TOPIC_NAME]

Dengan:

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

Untuk membuat topik, ikuti langkah-langkah berikut.

Konsol

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

    Buka halaman Topik

  2. Klik Create Topic.

  3. Masukkan nama topik dengan URI:

    projects/[PROJECT_ID]/topics/[TOPIC_NAME]
    

    Dengan:

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

    Halaman Topic details akan terbuka.

gcloud

Di jendela terminal, jalankan perintah berikut:

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

Dengan:

  • [PROJECT_ID] adalah Google Cloud project ID 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 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 Google Cloud konsol, buka halaman Topics Pub/Sub.

    Buka halaman Topik

  2. Klik nama topik project Anda.

  3. Klik Create Subscription.

    Halaman Add subscription to topic akan terbuka.

  4. Masukkan nama langganan:

    projects/[PROJECT_ID]/subscriptions/[SUBSCRIPTION_NAME]
    

    Dengan:

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

  6. Klik Create.

gcloud

Di jendela terminal, jalankan perintah berikut:

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

Dengan:

  • [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 Google Cloud project atau repositori 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:

  • [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:

  • [REPOSITORY_NAME] adalah nama repositori Anda. Google Cloud
  • [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 harus memiliki izin pubsub.topics.publish untuk memublikasikan pesan di topik yang ditentukan. Anda harus memiliki izin iam.serviceAccounts.actAs di akun layanan. Jika akun layanan tidak ditentukan, akun layanan default Compute Engine akan digunakan secara default.

Menghapus topik

Anda dapat menghapus kaitan 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 berikutnya