Mengelola pemicu

Pemicu Eventarc memungkinkan Anda merutekan peristiwa dari penyedia peristiwa ke tujuan target. Melihat, memperbarui, dan menghapus pemicu membantu Anda mengontrol pengiriman peristiwa dan memelihara arsitektur berbasis peristiwa. Anda dapat melakukan tugas ini menggunakan konsol Google Cloud , Google Cloud CLI di terminal atau Cloud Shell, atau Eventarc API.

Mencantumkan pemicu

Anda dapat mencantumkan, memfilter, dan mengurutkan pemicu di semua lokasi.

Konsol

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

    Buka Pemicu

    Tindakan ini akan mencantumkan semua pemicu dalam project Anda untuk semua lokasi, dan menyertakan detail seperti nama pemicu, region, penyedia peristiwa, tujuan, dan jenis peristiwa.

  2. Untuk memfilter pemicu menurut properti tertentu:

    1. Klik kotak Filter.
    2. Dari daftar Properti, pilih opsi untuk memfilter pemicu—misalnya, Nama atau Saluran peristiwa.

    Anda dapat memilih satu properti atau menggunakan operator logika OR untuk menambahkan lebih banyak properti yang akan digunakan sebagai filter.

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

    Hanya beberapa kolom yang dapat diurutkan—misalnya, Name, Region, atau Event channel.

gcloud

gcloud eventarc triggers list --location=-

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

REST

Untuk mencantumkan pemicu dalam project dan lokasi tertentu, gunakan metode projects.locations.triggers.list.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: project ID Google Cloud Anda.
  • LOCATION: region tempat pemicu dibuat—misalnya, us-central1.

Untuk mengirim permintaan Anda, luaskan salah satu opsi berikut:

Jika berhasil, isi respons akan berisi instance Trigger dan responsnya akan mirip dengan berikut ini:

{
  "triggers": [
    {
      "name": "projects/PROJECT_ID/locations/LOCATION/triggers/TRIGGER_NAME",
      "uid": "d700773a-698b-47b2-a712-2ee10b690062",
      "createTime": "2022-12-06T22:44:04.744001514Z",
      "updateTime": "2022-12-06T22:44:09.116459550Z",
      "eventFilters": [
        {
          "attribute": "type",
          "value": "google.cloud.pubsub.topic.v1.messagePublished"
        }
      ],
      "serviceAccount": "SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com",
      "destination": {
        "workflow": "projects/PROJECT_ID/locations/LOCATION/workflows/WORKFLOW_NAME"
      },
      "transport": {
        "pubsub": {
          "topic": "projects/PROJECT_ID/topics/TOPIC_ID",
          "subscription": "projects/PROJECT_ID/subscriptions/SUBSCRIPTION_ID"
        }
      }
    },
    {
      object (Trigger)
    }
  ],
  "nextPageToken": string,
  "unreachable": [
    string
  ]
}

Menjelaskan pemicu

Anda dapat mendeskripsikan pemicu di lokasi tertentu.

Konsol

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

    Buka Pemicu

  2. Dari daftar pemicu, klik pemicu yang ingin Anda ketahui detailnya.

Halaman Detail pemicu menampilkan detail pemicu seperti nama, region, penyedia peristiwa, jenis peristiwa, jenis konten data peristiwa, dan tujuan.

Jika tujuan peristiwa adalah Cloud Run, apakah kebijakan percobaan ulang diaktifkan atau dinonaktifkan akan ditunjukkan.

gcloud

gcloud eventarc triggers describe TRIGGER \
    --location=LOCATION

Ganti kode berikut:

  • TRIGGER: ID pemicu atau ID yang sepenuhnya memenuhi syarat.
  • LOCATION: lokasi pemicu Eventarc.

Perintah ini menampilkan informasi tentang pemicu yang mirip dengan berikut ini:

  createTime: '2023-03-16T13:40:44.889670204Z'
  destination:
    cloudRun:
      path: /
      region: us-central1
      service: hello
  eventDataContentType: application/protobuf
  eventFilters:
  - attribute: serviceName
    value: cloudscheduler.googleapis.com
  - attribute: methodName
    value: google.cloud.scheduler.v1.CloudScheduler.DeleteJob
  - attribute: type
    value: google.cloud.audit.log.v1.written
  name: projects/project-name/locations/us-central1/triggers/name-of-trigger
  serviceAccount: project-number-compute@developer.gserviceaccount.com
  transport:
    pubsub:
      subscription: projects/project-name/subscriptions/eventarc-us-central1-name-of-trigger-sub-034
      topic: projects/project-name/topics/eventarc-us-central1-name-of-trigger-931

REST

Untuk mendeskripsikan pemicu dalam project dan lokasi tertentu, gunakan metode projects.locations.triggers.get.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • TRIGGER_NAME: nama pemicu yang ingin Anda deskripsikan.
  • PROJECT_ID: project ID Google Cloud Anda.
  • LOCATION: region tempat pemicu dibuat—misalnya, us-central1.

Untuk mengirim permintaan Anda, luaskan salah satu opsi berikut:

Jika berhasil, isi respons akan berisi instance Trigger yang mirip dengan berikut ini:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/triggers/TRIGGER_NAME",
  "uid": "d700773a-698b-47b2-a712-2ee10b690062",
  "createTime": "2022-12-06T22:44:04.744001514Z",
  "updateTime": "2022-12-06T22:44:09.116459550Z",
  "eventFilters": [
    {
      "attribute": "type",
      "value": "google.cloud.pubsub.topic.v1.messagePublished"
    }
  ],
  "serviceAccount": "SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com",
  "destination": {
    "workflow": "projects/PROJECT_ID/locations/LOCATION/workflows/WORKFLOW_NAME"
  },
  "transport": {
    "pubsub": {
      "topic": "projects/PROJECT_ID/topics/TOPIC_ID",
      "subscription": "projects/PROJECT_ID/subscriptions/SUBSCRIPTION_ID"
    }
  }
}

Jika kondisi pemicu menunjukkan masalah pada topik Pub/Sub, lihat Pemicu tidak mengirimkan peristiwa.

Memperbarui pemicu

Anda dapat mengupdate pemicu untuk tujuan Cloud Run, Google Kubernetes Engine (GKE), dan Workflows. Bergantung pada tujuan, kolom tertentu dapat diperbarui.

Konsol

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

    Buka Pemicu

  2. Dari daftar pemicu, klik pemicu yang ingin Anda ketahui detailnya.

  3. Di halaman Trigger details, klik Edit.

  4. Edit kolom sesuai kebutuhan, lalu klik Save.

    Perhatikan bahwa Anda tidak dapat memperbarui kolom yang tidak tersedia seperti Penyedia peristiwa dan Tujuan peristiwa. Untuk mengetahui informasi selengkapnya tentang kolom, lihat petunjuk Konsol untuk penyedia, jenis peristiwa, dan tujuan tertentu.

gcloud

Cloud Run

gcloud eventarc triggers update TRIGGER \
    --location=LOCATION \
    --event-filters=NEW_EVENT_FILTERS \
    --service-account=NEW_SERVICE_ACCOUNT \
    --destination-run-region=NEW_REGION \
    --destination-run-service=NEW_SERVICE \
    --destination-run-path=NEW_PATH \
    --event-data-content-type="NEW_EVENT_DATA_TYPE" \
    --max-retry-attempts=1

Ganti kode berikut:

  • TRIGGER: ID pemicu atau ID yang sepenuhnya memenuhi syarat.
  • LOCATION: lokasi pemicu Eventarc.

Anda dapat memperbarui salah satu hal berikut:

  • NEW_EVENT_FILTERS: filter yang digunakan untuk mengonfigurasi pemilihan rute peristiwa pemicu; misalnya, methodName=storage.objects.create dapat diperbarui menjadi methodName=storage.objects.delete. Perhatikan bahwa setelah pemicu dibuat, filter peristiwa type tidak dapat diubah. Untuk jenis peristiwa yang berbeda, Anda harus membuat pemicu baru.
  • NEW_SERVICE_ACCOUNT: email akun layanan Identity and Access Management (IAM) yang terkait dengan pemicu.
  • NEW_REGION: region tempat layanan Cloud Run tujuan dapat ditemukan.
  • NEW_SERVICE: nama layanan Cloud Run yang menerima peristiwa untuk pemicu.
  • NEW_PATH: jalur relatif di layanan Cloud Run tujuan tempat peristiwa untuk pemicu harus dikirim.
  • NEW_EVENT_DATA_TYPE: encoding payload peristiwa; bergantung pada penyedia peristiwa, ini dapat berupa application/json atau application/protobuf.
  • Secara opsional, Anda dapat menggunakan flag --max-retry-attempts untuk menentukan satu upaya pengiriman pesan peristiwa tanpa percobaan ulang. Satu-satunya nilai yang valid adalah 1. Flag ini hanya berlaku untuk tujuan Cloud Run (termasuk Cloud Run Functions). Untuk menghapus setelan, gunakan flag --clear-max-retry-attempts. Untuk mengetahui informasi selengkapnya, lihat Mencoba ulang peristiwa.

Misalnya, untuk memperbarui akun layanan pemicu:

gcloud eventarc triggers update my-cloud-run-trigger \
    --service-account=new-serviceaccount@${PROJECT_ID}.iam.gserviceaccount.com

Perintah ini memperbarui akun layanan pemicu bernama my-cloud-run-trigger menjadi new-serviceaccount@PROJECT_ID.iam.gserviceaccount.com.

GKE

Perhatikan bahwa bagian ini juga berlaku untuk endpoint publik dari layanan pribadi dan publik yang berjalan di cluster GKE.

gcloud eventarc triggers update TRIGGER \
    --location=LOCATION \
    --destination-gke-namespace=NEW_NAMESPACE \
    --destination-gke-service=NEW_SERVICE \
    --destination-gke-path=NEW_PATH \
    --event-data-content-type="NEW_EVENT_DATA_TYPE"

Ganti kode berikut:

  • TRIGGER: ID pemicu atau ID yang sepenuhnya memenuhi syarat.
  • LOCATION: lokasi pemicu Eventarc.

Anda dapat memperbarui salah satu hal berikut:

  • NEW_NAMESPACE: namespace tempat layanan GKE tujuan berjalan.
  • NEW_SERVICE: nama layanan GKE yang menerima peristiwa untuk pemicu.
  • NEW_PATH: jalur relatif pada layanan GKE tujuan tempat peristiwa untuk pemicu harus dikirim.
  • NEW_EVENT_DATA_TYPE: encoding payload peristiwa; bergantung pada penyedia peristiwa, ini dapat berupa application/json atau application/protobuf.

Misalnya, untuk memperbarui layanan penerima peristiwa untuk pemicu:

gcloud eventarc triggers update my-gke-trigger \
    --destination-gke-service=helloworld-events

Perintah ini mengupdate layanan penerima peristiwa untuk pemicu bernama my-gke-trigger ke layanan GKE bernama helloworld-events.

Workflows

gcloud eventarc triggers update TRIGGER \
    --location=LOCATION \
    --event-filters=NEW_EVENT_FILTERS \
    --service-account=NEW_SERVICE_ACCOUNT \
    --destination-workflow=NEW_DESTINATION_WORKFLOW \
    --destination-workflow-location=NEW_DESTINATION_WORKFLOW_LOCATION \
    --event-data-content-type="NEW_EVENT_DATA_TYPE"

Ganti kode berikut:

  • TRIGGER: ID pemicu atau ID yang sepenuhnya memenuhi syarat.
  • LOCATION: lokasi pemicu Eventarc.

Anda dapat memperbarui salah satu hal berikut:

  • NEW_EVENT_FILTERS: filter yang digunakan untuk mengonfigurasi perutean peristiwa pemicu; misalnya, methodName=storage.objects.create dapat diupdate menjadi methodName=storage.objects.delete. Perhatikan bahwa setelah pemicu dibuat, filter peristiwa type tidak dapat diubah. Untuk jenis peristiwa yang berbeda, Anda harus membuat pemicu baru.
  • NEW_SERVICE_ACCOUNT: email akun layanan Identity and Access Management (IAM) yang terkait dengan pemicu.
  • NEW_DESTINATION_WORKFLOW: ID alur kerja yang di-deploy yang menerima peristiwa dari pemicu.
  • NEW_DESTINATION_WORKFLOW_LOCATION: lokasi tempat alur kerja tujuan di-deploy.
  • NEW_EVENT_DATA_TYPE: encoding payload peristiwa; bergantung pada penyedia peristiwa, ini dapat berupa application/json atau application/protobuf.

Misalnya, untuk memperbarui akun layanan pemicu:

gcloud eventarc triggers update my-workflows-trigger \
    --service-account=new-serviceaccount@${PROJECT_ID}.iam.gserviceaccount.com

Perintah ini memperbarui akun layanan pemicu bernama my-workflows-trigger menjadi new-serviceaccount@PROJECT_ID.iam.gserviceaccount.com.

REST

Untuk memperbarui pemicu yang ada, gunakan metode projects.locations.triggers.patch dan secara opsional gunakan parameter kueri updateMask untuk menentukan daftar kolom yang akan diperbarui.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • TRIGGER_NAME: nama pemicu yang ingin Anda perbarui.
  • PROJECT_ID: project ID Google Cloud Anda.
  • LOCATION: region tempat pemicu dibuat—misalnya, us-central1.
  • SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com: optional. Email akun layanan Identity and Access Management (IAM) yang terkait dengan pemicu.
  • DESTINATION: optional. Menentukan target tempat peristiwa harus dikirim dan berisi instance Destination. Contoh:

    {"destination": {"workflow": "projects/my-project/locations/us-central1/workflows/my-first-workflow"}}

    atau

    {"destination": {"cloudRun": {"service": "hello-world", "region": "us-central1"}}}

  • EVENT_FILTER: optional. Atribut peristiwa yang akan difilter. Hanya pembaruan jenis metode untuk pemicu Cloud Audit Logs yang didukung. Contoh:

    {"eventFilters": [{"attribute": "methodName", "value": "storage.buckets.create"}, {"attribute": "type", "value": "google.cloud.audit.log.v1.written"}, {"attribute": "serviceName", "value": "storage.googleapis.com"}]}

    Perhatikan bahwa Anda tidak dapat memperbarui jenis metode untuk tujuan GKE.

  • CONTENT_TYPE: optional. Encoding payload peristiwa; bergantung pada penyedia peristiwa, encoding ini dapat berupa application/json atau application/protobuf.
  • RETRY_POLICY: optional. Jumlah maksimum upaya pengiriman peristiwa. Nilai yang valid adalah 1, yang menunjukkan satu upaya pengiriman tanpa percobaan ulang, dan hanya berlaku untuk tujuan Cloud Run (termasuk Cloud Run Functions). Contoh:

    {"retryPolicy": {"maxAttempts": 1}}

    Untuk mengetahui informasi selengkapnya, lihat Mencoba ulang peristiwa.
  • UPDATE_FIELDS: optional. Daftar kolom yang dipisahkan koma yang akan diperbarui. Jika tidak diberikan, semua kolom yang diberikan dalam permintaan akan diperbarui. Contoh: serviceAccount,destination

Meminta isi JSON:

{
  "serviceAccount": "SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com",
  "destination": DESTINATION,
  "eventFilters": EVENT_FILTER,
  "eventDataContentType": "CONTENT_TYPE",
  "retryPolicy": RETRY_POLICY
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Jika berhasil, isi respons akan memuat instance Operation yang baru dibuat:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.eventarc.v1.OperationMetadata",
    "createTime": "2024-01-25T17:17:45.782370139Z",
    "target": "projects/PROJECT_ID/locations/LOCATION/triggers/TRIGGER_NAME",
    "verb": "update",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

Jika nilai "done" adalah false, operasi masih berlangsung.

Menghapus pemicu

Anda dapat menghapus pemicu.

Konsol

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

    Buka Pemicu

  2. Pilih pemicu, lalu klik Hapus.

gcloud

gcloud eventarc triggers delete TRIGGER

Ganti TRIGGER dengan ID pemicu atau ID yang sepenuhnya memenuhi syarat.

REST

Untuk menghapus pemicu dengan nama yang ditentukan, gunakan metode projects.locations.triggers.delete.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: project ID Google Cloud Anda.
  • LOCATION: region tempat pemicu dibuat—misalnya, us-central1.
  • TRIGGER_NAME: nama pemicu yang ingin Anda hapus.

Untuk mengirim permintaan Anda, luaskan salah satu opsi berikut:

Jika berhasil, isi respons akan memuat instance Operation:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.eventarc.v1.OperationMetadata",
    "createTime": "2024-01-24T17:53:52.834876290Z",
    "target": "projects/PROJECT_ID/locations/LOCATION/triggers/TRIGGER_NAME",
    "verb": "delete",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

Jika nilai "done" adalah false, operasi masih berlangsung.

Langkah berikutnya