Merutekan peristiwa hub Apigee API ke Cloud Run

Pemicu Eventarc mendeklarasikan minat Anda pada peristiwa atau rangkaian peristiwa tertentu. Anda dapat mengonfigurasi pemilihan rute peristiwa dengan menentukan filter untuk pemicu, termasuk sumber peristiwa, dan layanan Cloud Run target.

Eventarc mengirimkan peristiwa ke penerima peristiwa dalam format CloudEvents melalui permintaan HTTP.

Petunjuk ini menunjukkan cara mengonfigurasi pemilihan rute peristiwa ke layanan Cloud Run Anda yang dipicu oleh peristiwaAPI hub langsung. Untuk mengetahui detail selengkapnya, lihat daftar peristiwa langsung yang didukung.

Bersiap untuk membuat pemicu

Sebelum Anda membuat pemicu, selesaikan prasyarat ini:

Konsol

  1. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat Google Cloud project.

    Buka pemilih project

  2. Aktifkan Cloud Logging, Eventarc, dan Eventarc Publishing API.

    Mengaktifkan API

  3. Jika berlaku, aktifkan API yang terkait dengan peristiwa langsung. Misalnya, untuk peristiwa API hub , aktifkan APIAPI hub .

  4. Jika Anda belum memilikinya, buat akun layanan yang dikelola pengguna, lalu berikan peran dan izin yang diperlukan agar Eventarc dapat mengelola peristiwa untuk layanan target Anda.

    1. Di konsol Google Cloud, buka halaman Create service account.

      Buka Buat akun layanan

    2. Pilih project Anda.

    3. Di kolom Nama akun layanan, masukkan nama. Konsol Google Cloud akan mengisi kolom ID akun layanan berdasarkan nama ini.

      Di kolom Deskripsi akun layanan, masukkan sebuah deskripsi. Contoh, Service account for event trigger.

    4. Klik Buat dan lanjutkan.

    5. Untuk memberikan akses yang sesuai, di daftar Select a role, pilih peran Identity and Access Management (IAM) yang diperlukan untuk diberikan ke akun layanan Anda untuk pemanggilan yang diautentikasi atau tidak diautentikasi. Untuk mengetahui informasi selengkapnya, lihat Peran dan izin untuk target Cloud Run.

      Untuk peran tambahan, klik Tambahkan peran lain, lalu tambahkan setiap peran tambahan.

    6. Klik Lanjutkan.

    7. Untuk menyelesaikan pembuatan akun, klik Selesai.

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. Aktifkan Cloud Logging, Eventarc, dan Eventarc Publishing API.

    gcloud services enable logging.googleapis.com \
      eventarc.googleapis.com \
      eventarcpublishing.googleapis.com

  3. Jika berlaku, aktifkan API yang terkait dengan peristiwa langsung. Misalnya, untuk peristiwa API hub , aktifkan apihub.googleapis.com.

  4. Jika Anda belum memilikinya, buat akun layanan yang dikelola pengguna, lalu berikan peran dan izin yang diperlukan agar Eventarc dapat mengelola peristiwa untuk layanan target Anda.

    1. Buat akun layanan:

      gcloud iam service-accounts create SERVICE_ACCOUNT_NAME

      Ganti SERVICE_ACCOUNT_NAME dengan nama akun layanan. Panjangnya harus antara 6 hingga 30 karakter, dan dapat berisi karakter alfanumerik huruf kecil dan tanda pisah. Setelah membuat akun layanan, Anda tidak dapat mengubah namanya.

    2. Berikan peran atau izin Identity and Access Management (IAM) yang diperlukan untuk pemanggilan yang diautentikasi atau tidak diautentikasi. Untuk mengetahui informasi selengkapnya, lihat Peran dan izin untuk target Cloud Run.

Buat pemicu

Anda dapat membuat pemicu Eventarc menggunakan Google Cloud CLI atau melalui konsol Google Cloud.

Konsol

  1. Di konsol Google Cloud, buka halaman Pemicu Eventarc.

    Buka Pemicu

  2. Klik Create trigger.
  3. Ketik Nama pemicu.

    Ini adalah ID pemicu dan harus diawali dengan huruf. Nama dapat berisi maksimal 63 huruf kecil, angka, atau tanda hubung.

  4. Untuk Jenis pemicu, pilih Sumber Google.
  5. Dalam daftar Penyedia peristiwa, pilih API hub.

    Perhatikan bahwa nama penyedia peristiwa yang digunakan dalam dokumentasiGoogle Cloud terkait mungkin tidak memiliki awalan Cloud atau Google Cloud. Misalnya, di konsol, Memorystore for Redis disebut sebagai Google Cloud Memorystore for Redis.

  6. Di daftar Jenis peristiwa, dari peristiwa Langsung, pilih jenis peristiwa.
  7. Untuk menentukan encoding payload peristiwa, di daftar Jenis konten data peristiwa, pilih application/json atau application/protobuf.

    Perhatikan bahwa payload peristiwa yang diformat dalam JSON lebih besar daripada payload yang diformat dalam Protobuf. Hal ini dapat memengaruhi keandalan, bergantung pada tujuan peristiwa dan batas ukuran peristiwa. Untuk mengetahui informasi selengkapnya, baca Masalah umum.

  8. Dalam daftar Region, pilih region yang sama dengan layananGoogle Cloud yang menghasilkan peristiwa.

    Untuk informasi selengkapnya, lihat Lokasi Eventarc.

  9. Jika berlaku untuk penyedia peristiwa, klik Tambahkan filter, lalu tentukan hal berikut:
    1. Di kolom Atribut 1, bergantung pada peristiwa langsung yang Anda pilih, pilih ID resource yang dapat berfungsi sebagai filter peristiwa.
    2. Pilih operator:
    3. Di kolom Attribute value 1, bergantung pada operator yang Anda pilih, ketik nilai yang tepat atau terapkan pola jalur.
    4. Jika ada filter atribut lainnya yang berlaku, klik Tambahkan filter dan tentukan nilai yang sesuai.
  10. Pilih Service account yang akan memanggil layanan atau alur kerja Anda.

    Atau, Anda dapat membuat akun layanan baru.

    Ini menentukan email akun layanan Identity and Access Management (IAM) yang terkait dengan pemicu dan yang sebelumnya Anda berikan peran tertentu yang diperlukan oleh Eventarc.

  11. Dalam daftar Tujuan peristiwa, pilih Cloud Run.
  12. Pilih layanan.

    Ini adalah nama layanan yang menerima peristiwa untuk pemicu. Layanan harus berada dalam project yang sama dengan pemicu dan akan menerima peristiwa sebagai permintaan POST HTTP yang dikirim ke jalur URL root-nya (/), setiap kali peristiwa dibuat.

  13. Secara opsional, Anda dapat menentukan Jalur URL Layanan untuk mengirim permintaan masuk.

    Ini adalah jalur relatif di layanan tujuan tempat peristiwa untuk pemicu harus dikirim. Misalnya: /, /route, route, route/subroute.

  14. Secara opsional, untuk menambahkan label, Anda dapat mengklik Tambahkan label. Label adalah pasangan nilai kunci yang membantu Anda mengatur resourceGoogle Cloud . Untuk informasi selengkapnya, lihat Apa yang dimaksud dengan label?
  15. Klik Buat.
  16. Setelah pemicu dibuat, filter sumber peristiwa tidak dapat diubah. Sebagai gantinya, buat pemicu baru dan hapus pemicu lama. Untuk informasi selengkapnya, lihat Mengelola pemicu.

gcloud

Anda dapat membuat pemicu dengan menjalankan perintah gcloud eventarc triggers create beserta flag yang diperlukan dan opsional.

  gcloud eventarc triggers create TRIGGER \
      --location=LOCATION \
      --destination-run-service=DESTINATION_RUN_SERVICE \
      --destination-run-region=DESTINATION_RUN_REGION \
      --event-filters="type=EVENT_FILTER_TYPE" \
      --event-filters="COLLECTION_ID=RESOURCE_ID" \
      --event-filters-path-pattern="COLLECTION_ID=PATH_PATTERN" \
      --event-data-content-type="EVENT_DATA_CONTENT_TYPE" \
      --service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com"

Ganti kode berikut:

  • TRIGGER: ID pemicu atau ID yang memenuhi syarat sepenuhnya.
  • LOCATION: lokasi pemicu Eventarc. Atau, Anda dapat menetapkan properti eventarc/location; misalnya, gcloud config set eventarc/location us-central1.

    Untuk menghindari masalah performa dan residensi data, lokasi harus cocok dengan lokasi layanan Google Cloud yang menghasilkan peristiwa. Untuk mengetahui informasi selengkapnya, lihat Lokasi Eventarc.

  • DESTINATION_RUN_SERVICE: nama layanan Cloud Run yang menerima peristiwa untuk pemicu. Layanan dapat berada di salah satu lokasi yang didukung Cloud Run dan tidak perlu berada di lokasi yang sama dengan pemicu. Namun, layanan harus berada dalam project yang sama dengan pemicu dan akan menerima peristiwa sebagai permintaan POST HTTP yang dikirim ke jalur URL root-nya (/), setiap kali peristiwa dibuat.
  • DESTINATION_RUN_REGION: (opsional) region tempat layanan Cloud Run tujuan dapat ditemukan. Jika tidak ditentukan, layanan akan dianggap berada di region yang sama dengan pemicu.
  • EVENT_FILTER_TYPE: ID peristiwa. Peristiwa dibuat saat panggilan API untuk metode berhasil. Untuk operasi yang berjalan lama, peristiwa hanya dibuat di akhir operasi, dan hanya jika tindakan berhasil dilakukan. Untuk mengetahui daftar jenis peristiwa yang didukung, lihat Jenis peristiwa Google yang didukung oleh Eventarc.
  • COLLECTION_ID (opsional): komponen resource yang dapat berfungsi sebagai filter peristiwa, dan merupakan salah satu dari hal berikut:
    • api
    • apihubinstance
    • attribute
    • dependency
    • deployment
    • externalapi
    • hostprojectregistration
    • runtimeprojectattachment
    • spec
    • version
  • RESOURCE_ID: ID resource yang digunakan sebagai nilai pemfilteran untuk koleksi terkait. Untuk informasi selengkapnya, lihat ID Resource.
  • PATH_PATTERN: Pola jalur yang akan diterapkan saat memfilter resource.
  • EVENT_DATA_CONTENT_TYPE: (opsional) encoding payload peristiwa. Nilai ini dapat berupa application/json atau application/protobuf. Encoding default-nya adalah application/json.

    Perhatikan bahwa payload peristiwa yang diformat dalam JSON lebih besar daripada yang diformat dalam Protobuf. Hal ini dapat memengaruhi keandalan, bergantung pada tujuan peristiwa dan batas ukuran peristiwa. Untuk mengetahui informasi selengkapnya, lihat Masalah umum.

  • SERVICE_ACCOUNT_NAME: nama akun layanan yang dikelola pengguna.
  • PROJECT_ID: Google Cloud Project ID Anda.

Catatan:

  • Flag --event-filters="type=EVENT_FILTER_TYPE" wajib diisi. Jika tidak ada filter peristiwa lain yang ditetapkan, peristiwa untuk semua resource akan dicocokkan.
  • EVENT_FILTER_TYPE tidak dapat diubah setelah dibuat. Untuk mengubah EVENT_FILTER_TYPE, buat pemicu baru dan hapus pemicu lama.
  • Setiap pemicu dapat memiliki beberapa filter peristiwa, yang dipisahkan koma dalam satu flag --event-filters=[ATTRIBUTE=VALUE,...], atau Anda dapat mengulangi flag untuk menambahkan lebih banyak filter. Hanya peristiwa yang cocok dengan semua filter yang dikirim ke tujuan. Karakter pengganti dan ekspresi reguler tidak didukung. Namun, saat menggunakan flag --event-filters-path-pattern, Anda dapat menentukan pola jalur resource.
  • Flag --service-account digunakan untuk menentukan email akun layanan Identity and Access Management (IAM) yang terkait dengan pemicu.
  • Secara opsional, tentukan jalur relatif di layanan Cloud Run tujuan yang akan menerima peristiwa untuk pemicu menggunakan flag --destination-run-path.

Contoh:

  gcloud eventarc triggers create helloworld-trigger \
      --location=us-central1 \
      --destination-run-service=helloworld-events \
      --destination-run-region=us-central1 \
      --event-filters="type=google.cloud.apihub.deployment.v1.updated" \
      --event-filters-path-pattern="deployment=my-deployment-*" \
      --service-account=${SERVICE_ACCOUNT_NAME}@${PROJECT_ID}.iam.gserviceaccount.com

Perintah ini membuat pemicu yang disebut helloworld-trigger untuk peristiwa yang diidentifikasi sebagai google.cloud.apihub.deployment.v1.updated dan mencocokkan peristiwa untuk ID deployment yang dimulai dengan my-deployment-.

Terraform

Anda dapat membuat pemicu untuk tujuan Cloud Run menggunakan Terraform. Untuk mengetahui detailnya, lihat Membuat pemicu menggunakan Terraform.

Mencantumkan pemicu

Anda dapat mengonfirmasi pembuatan pemicu dengan mencantumkan pemicu Eventarc menggunakan Google Cloud CLI atau melalui konsol Google Cloud.

Konsol

  1. Di konsol Google Cloud, buka halaman Pemicu Eventarc.

    Buka Pemicu

    Halaman ini mencantumkan pemicu Anda di semua lokasi, dan menyertakan detail seperti nama, wilayah, penyedia peristiwa, tujuan, dan lainnya.

  2. Untuk memfilter pemicu:

    1. Klik Filter atau kolom Filter triggers.
    2. Di daftar Properti, pilih opsi untuk memfilter pemicu.

    Anda dapat memilih satu properti atau menggunakan operator logika OR untuk menambahkan properti lainnya.

  3. Untuk mengurutkan pemicu, di samping judul kolom yang didukung, klik Urutkan.

gcloud

Jalankan perintah berikut untuk membuat daftar pemicu:

gcloud eventarc triggers list --location=-

Perintah ini mencantumkan pemicu Anda di semua lokasi, dan menyertakan detail seperti nama, jenis, tujuan, dan status.

Langkah berikutnya