Memublikasikan dan menerima peristiwa dengan membuat bus dan pendaftaran (konsol)

Panduan memulai ini menunjukkan cara memublikasikan dan menerima pesan peristiwa dengan membuat pendaftaran dan bus Eventarc Advanced di project Google Cloud Anda.

  • Bus memungkinkan Anda memusatkan alur pesan melalui sistem, dan bertindak sebagai router. Layanan ini menerima pesan peristiwa dari sumber pesan atau yang dipublikasikan oleh penyedia, dan mengevaluasinya sesuai dengan pendaftaran.

  • Pendaftaran mengidentifikasi langganan ke bus tertentu, dan menentukan kriteria pencocokan untuk pesan, sehingga pesan tersebut dirutekan dengan tepat ke satu atau beberapa tujuan.

Dalam panduan memulai ini, Anda akan:

  1. Buat repositori standar Artifact Registry.

  2. Men-deploy layanan penerima peristiwa ke Cloud Run.

  3. Buat bus Advanced Eventarc.

  4. Buat pendaftaran Lanjutan Eventarc.

  5. Memublikasikan pesan peristiwa ke bus.

  6. Lihat data peristiwa di log Cloud Run.

Anda dapat menyelesaikan sebagian besar langkah dalam panduan memulai ini menggunakan konsol Google Cloud . Untuk menyelesaikan semua langkah menggunakan Google Cloud CLI, lihat Memublikasikan dan menerima peristiwa dengan membuat bus dan pendaftaran (gcloud CLI).

Sebelum memulai

Batasan keamanan yang ditentukan oleh organisasi mungkin mencegah Anda menyelesaikan langkah-langkah berikut. Untuk mengetahui informasi pemecahan masalah, lihat Mengembangkan aplikasi di lingkungan yang terbatas Google Cloud .

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Artifact Registry, Cloud Build, Cloud Run, Compute Engine, and Eventarc APIs.

    Enable the APIs

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the Artifact Registry, Cloud Build, Cloud Run, Compute Engine, and Eventarc APIs.

    Enable the APIs

  8. Beberapa langkah dalam panduan memulai ini mengharuskan Anda menggunakan gcloud CLI:
    1. Siapkan gcloud CLI di salah satu lingkungan pengembangan berikut:

      Cloud Shell

      Untuk menggunakan terminal online dengan gcloud CLI yang sudah disiapkan, aktifkan Cloud Shell:

      Di bagian bawah halaman ini, sesi Cloud Shell akan dimulai dan menampilkan perintah command line. Diperlukan waktu beberapa detik untuk melakukan inisialisasi sesi.

      Shell lokal

      Untuk menggunakan lingkungan pengembangan lokal, ikuti langkah-langkah berikut:

      1. Menginstal gcloud CLI.
      2. Lakukan inisialisasi gcloud CLI.
    2. Pilih project Google Cloud Anda:
      gcloud config set project PROJECT_ID

      Ganti PROJECT_ID dengan nama Google Cloud project Anda.

    3. Perbarui komponen gcloud:
      gcloud components update
    4. Login menggunakan akun Anda:
      gcloud auth login
    5. Tetapkan variabel konfigurasi yang digunakan dalam panduan memulai ini:
      REGION=us-central1
  9. Jika Anda adalah project creator, Anda diberi peran Pemilik dasar (roles/owner). Secara default, peran Identity and Access Management (IAM) ini mencakup izin yang diperlukan untuk akses penuh ke sebagian besar resource Google Cloud dan Anda dapat melewati langkah ini.

    Jika Anda bukan project creator, izin yang diperlukan harus diberikan pada project kepada akun utama yang sesuai. Misalnya, akun utama dapat berupa Akun Google (untuk pengguna akhir) atau akun layanan (untuk aplikasi dan workload komputasi).

    Perhatikan bahwa secara default, izin Cloud Build mencakup izin untuk mengupload dan mendownload artefak Artifact Registry.

    Izin yang diperlukan

    Untuk mendapatkan izin yang Anda perlukan untuk menyelesaikan panduan memulai ini, minta administrator Anda untuk memberi Anda peran IAM berikut di project Anda:

    Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.

    Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran kustom atau peran yang telah ditentukan lainnya.

  10. Berikan peran di project ke akun layanan default Compute Engine. Peran ini diperlukan untuk mem-build dan men-deploy image penampung Anda.
    1. Di konsol Google Cloud , buka halaman IAM.

      Buka IAM

    2. Untuk mengubah peran akun layanan jika akun tersebut sudah memiliki peran di resource, temukan baris yang berisi akun utama.

      atau

      Untuk memberikan peran ke akun layanan saat akun tersebut tidak memiliki peran pada resource, klik Berikan Akses, lalu masukkan ID untuk akun layanan default Compute Engine dengan format berikut:

      PROJECT_NUMBER-compute@developer.

      Ganti PROJECT_NUMBER dengan Google Cloud nomor project Anda. Anda dapat menemukan nomor project di halaman Selamat Datang di konsol Google Cloud .

    3. Klik Edit akun utama di baris yang sesuai.
    4. Klik Tambahkan peran atau Tambahkan peran lain.
    5. Di daftar Select a role, filter dan pilih peran berikut:
    6. Klik Simpan.
  11. Secara default, hanya Project Owner, Project Editor, serta Admin dan Pemanggil Cloud Run yang dapat memanggil layanan Cloud Run. Untuk menyiapkan autentikasi, berikan peran Cloud Run Invoker di project Google Cloud Anda ke akun layanan. Untuk tujuan pengujian, Anda akan melampirkan akun layanan ini ke pipeline Eventarc Advanced untuk merepresentasikan identitas pipeline.
    1. Di konsol Google Cloud , buka halaman Service accounts.

      Buka halaman Service accounts

    2. Klik Buat akun layanan.
    3. Masukkan Service account name.
    4. Klik Buat dan lanjutkan.
    5. Di daftar Select a role, filter dan pilih peran Cloud Run Invoker.
    6. Klik Selesai.

    Perhatikan bahwa Anda dapat mengonfigurasi siapa saja yang dapat mengakses layanan Cloud Run Anda dengan salah satu cara berikut:

    • Berikan izin untuk memilih akun atau grup layanan yang akan mengizinkan akses ke layanan tersebut. Semua permintaan harus memiliki header Otorisasi HTTP yang berisi token OpenID Connect yang ditandatangani oleh Google untuk salah satu akun layanan yang diberi otorisasi. Dengan cara inilah akses dikonfigurasi dalam panduan memulai ini.
    • Berikan izin kepada allUsers untuk mengizinkan akses tanpa autentikasi.

    Untuk mengetahui informasi selengkapnya, lihat Kontrol akses untuk Cloud Run.

  12. Membuat repositori standar Artifact Registry

    Buat repositori standar Artifact Registry untuk menyimpan image container Anda.

    1. Di konsol Google Cloud , buka halaman Repositories.

      Buka Repositori

    2. Klik Buat repositori.

    3. Masukkan Nama—misalnya, my-repo.

      Untuk setiap lokasi repositori dalam project, nama repositori harus unik.

    4. Untuk Format repositori, pilih Docker.

    5. Di daftar Region, pilih us-central1 (Iowa).

    6. Setujui semua setelan default lainnya.

    7. Klik Buat.

    Men-deploy layanan penerima peristiwa ke Cloud Run

    Deploy layanan Cloud Run yang mencatat konten peristiwa ke dalam log. Tujuan peristiwa lainnya didukung seperti topik Pub/Sub, Workflows, atau endpoint HTTP. Untuk mengetahui informasi selengkapnya, lihat Penyedia dan tujuan peristiwa.

    1. Di terminal Anda, clone repositori GitHub:

      git clone https://github.com/GoogleCloudPlatform/eventarc-samples.git
    2. Ubah ke direktori yang memuat kode contoh Cloud Run:

      cd eventarc-samples/eventarc-advanced-quickstart/
    3. Bangun image container Docker dan kirim image ke repositori Anda:

      gcloud builds submit \
          --tag $REGION-docker.pkg.dev/PROJECT_ID/REPOSITORY/log-events:v1

      Ganti REPOSITORY dengan nama repositori Artifact Registry Anda.

    4. Men-deploy image container ke Cloud Run

      1. Di konsol Google Cloud , buka halaman Cloud Run.

        Buka Cloud Run

      2. Klik Deploy container > Service.

      3. Pilih Men-deploy satu revisi dari image container yang sudah ada.

      4. Untuk Container image URL, klik Select untuk menentukan image container Artifact Registry yang Anda buat sebelumnya.

      5. Jika ingin, Anda dapat mengubah Nama layanan—misalnya, menjadi my-service.

      6. Di daftar Region, pilih us-central1 (Iowa).

      7. Untuk Authentication, pilih Require authentication.

        Hal ini mengonfigurasi layanan agar hanya mengizinkan pemanggilan terautentikasi.

      8. Untuk Ingress, pilih Semua.

        Tindakan ini mengizinkan semua permintaan, termasuk permintaan langsung dari internet ke URL run.app. Untuk mengetahui informasi selengkapnya, lihat Membatasi traffic masuk jaringan untuk Cloud Run.

      9. Setujui semua setelan default lainnya.

      10. Klik Create dan tunggu hingga deployment selesai.

    Membuat bus Tingkat lanjut Eventarc

    Bus menerima pesan peristiwa dari sumber pesan atau yang dipublikasikan oleh penyedia dan bertindak sebagai router pesan.

    Untuk mengetahui informasi selengkapnya, lihat Membuat bus untuk merutekan pesan.

    1. Di konsol Google Cloud , buka halaman Eventarc > Bus.

      Buka Bus

    2. Klik Create bus.

    3. Di halaman Create a bus, lakukan hal berikut:

      1. Masukkan Nama bus—misalnya, my-bus.
      2. Di daftar Region, pilih us-central1 (Iowa).
    4. Setujui semua setelan default lainnya.

    5. Klik Buat.

    Membuat pendaftaran Lanjutan Eventarc

    Pendaftaran menentukan pesan mana yang dirutekan ke tujuan dan juga menentukan pipeline yang digunakan untuk mengonfigurasi tujuan bagi pesan peristiwa.

    Untuk mengetahui informasi selengkapnya, lihat Membuat pendaftaran untuk menerima peristiwa.

    Saat menggunakan konsol Google Cloud , Anda dapat membuat pendaftaran dan pipeline secara bersamaan.

    1. Untuk membuat pendaftaran, di konsol Google Cloud , buka halaman Eventarc > Pipelines.

      Buka Pipeline

    2. Klik Buat pipeline.

    3. Di panel Pipeline details, lakukan hal berikut:

      1. Masukkan Nama pipeline—misalnya, my-pipeline.
      2. Di daftar Region, pilih us-central1 (Iowa). Pipeline harus dibuat di region yang sama dengan bus.
      3. Setujui semua setelan default lainnya.
      4. Klik Lanjutkan.
    4. Di panel Enrollments, lakukan hal berikut:

      1. Klik Tambahkan pendaftaran.
      2. Masukkan Nama pendaftaran—misalnya, my-enrollment.
      3. Dalam daftar Eventarc Advanced Bus, pilih bus yang Anda buat sebelumnya.
      4. Di kolom ekspresi CEL, tulis ekspresi evaluasi menggunakan CEL. Contoh:

        message.type == "hello-world-type"
        
      5. Klik Selesai.

      6. Klik Lanjutkan.

      7. Di panel Mediasi peristiwa, klik Lanjutkan lagi.

    5. Di panel Tujuan, lakukan hal berikut:

      1. Di daftar Jenis tujuan, pilih Layanan Cloud Run (melalui HTTP), lalu pilih layanan Cloud Run yang Anda buat sebelumnya.

      2. Centang kotak Enable authentication.

        1. Dalam daftar Header auth, pilih Token OIDC.

        2. Dalam daftar Service account, pilih akun layanan yang sebelumnya Anda buat dan yang akan memanggil layanan tujuan Anda. Email akun layanan ini digunakan untuk membuat token OIDC.

    6. Klik Buat.

    Memublikasikan pesan peristiwa ke bus

    Untuk memublikasikan pesan secara langsung ke bus, Anda dapat menggunakan perintah gcloud eventarc message-buses publish atau mengirim permintaan ke Eventarc Publishing REST API. Untuk mengetahui informasi selengkapnya, lihat Memublikasikan peristiwa secara langsung.

    Pesan harus dalam format CloudEvents, yaitu spesifikasi untuk mendeskripsikan data peristiwa dengan cara yang umum. Elemen data adalah payload peristiwa Anda. JSON yang disusun dengan baik dapat dimasukkan ke dalam kolom ini. Untuk mengetahui informasi selengkapnya tentang atribut konteks CloudEvents, lihat Format peristiwa.

    Publikasikan peristiwa ke bus Eventarc Advanced menggunakan gcloud CLI dan --event-data serta flag atribut peristiwa lainnya:

    gcloud eventarc message-buses publish BUS_NAME \
        --event-data='{"key": "hello-world-data"}' \
        --event-id=hello-world-id-1234 \
        --event-source=hello-world-source \
        --event-type=hello-world-type \
        --event-attributes="datacontenttype=application/json" \
        --location=$REGION
    

    Atau, publikasikan peristiwa ke bus Eventarc Advanced sebagai pesan JSON menggunakan gcloud CLI dan flag --json-message:

    gcloud eventarc message-buses publish BUS_NAME \
        --location=$REGION \
        --json-message='{"id": "hello-world-id-1234", "type":
     "hello-world-type", "source":
     "hello-world-source", "specversion": "1.0", "data":
     {"key": "hello-world-data"}}'
    

    Setelah memublikasikan acara, Anda akan menerima pesan "Acara berhasil dipublikasikan".

    Melihat data peristiwa di log Cloud Run

    Setelah memublikasikan peristiwa ke bus Eventarc Advanced, Anda dapat memeriksa log layanan Cloud Run untuk memverifikasi bahwa peristiwa diterima seperti yang diharapkan.

    1. Di konsol Google Cloud , buka halaman Cloud Run.

      Buka Cloud Run

    2. Di halaman Layanan, klik nama layanan Anda.

    3. Klik tab Logs.

    4. Anda dapat memfilter entri log dan menampilkan output. Misalnya, Anda dapat menelusuri hello-world-data.

    5. Cari entri log yang mirip dengan berikut ini:

      2025-02-27 08:36:44.350 EST [2025-02-27 13:36:44,352] INFO in server: Body: b'{"key": "hello-world-data"}'
      

    Anda telah berhasil membuat dan mendaftar ke bus Eventarc Advanced, memublikasikan pesan peristiwa ke bus, dan memverifikasi hasil yang diharapkan dalam log layanan penerima peristiwa.

    Pembersihan

    Setelah menyelesaikan tugas yang dijelaskan dalam panduan memulai ini, Anda dapat menghindari penagihan berkelanjutan dengan menghapus resource yang Anda buat:

    1. Menghapus repositori Artifact Registry.

    2. Hapus layanan Cloud Run.

    3. Hapus resource Eventarc Advanced:

      1. Menghapus pendaftaran.

      2. Menghapus pipeline.

      3. Menghapus bus.

    Atau, Anda dapat menghapus Google Cloud project untuk menghindari tagihan. Menghapus project Google Cloud akan menghentikan penagihan untuk semua resource yang digunakan dalam project tersebut.

    1. In the Google Cloud console, go to the Manage resources page.

      Go to Manage resources

    2. In the project list, select the project that you want to delete, and then click Delete.
    3. In the dialog, type the project ID, and then click Shut down to delete the project.

    Langkah berikutnya