Anda dapat mengaktifkan pengumpulan dan publikasi peristiwa dari sumber Google untuk bus Eventarc Advanced tertentu dengan membuat resource GoogleApiSource
.
Peristiwa dari sumber Google dipicu langsung oleh peristiwa yang tidak dimediasi seperti pembuatan fungsi Cloud Run atau perubahan status pada tugas Dataflow. Untuk mengetahui informasi selengkapnya, lihat Jenis peristiwa Google yang didukung oleh Eventarc.
Perhatikan hal berikut:
- Secara default, peristiwa dikumpulkan dari project Google Cloud tempat resource
GoogleApiSource
berada. Anda juga dapat menggunakan gcloud CLI untuk mengumpulkan peristiwa dari beberapa project yang berada dalam organisasi yang sama dengan resourceGoogleApiSource
. Untuk mengetahui informasi selengkapnya, dalam dokumen ini, lihat Memublikasikan peristiwa dari beberapa project. - Anda dapat memublikasikan peristiwa ke bus yang berada di Google Cloud project
yang berbeda dengan project tempat resource
GoogleApiSource
berada. Anda dapat mengonfigurasi ini menggunakan gcloud CLI atau dengan mengirim permintaan ke Eventarc API (tetapi tidak melalui konsol Google Cloud ). - Ada batas satu
GoogleApiSource
resource per Google Cloud project per region.
Sebelum memulai
Sebelum memulai, pastikan Anda telah menyelesaikan langkah-langkah berikut:
Jika Anda menggunakan Google Cloud CLI untuk menjalankan perintah di halaman ini, instal, lalu lakukan inisialisasi gcloud CLI. Jika sebelumnya Anda telah menginstal gcloud CLI, dapatkan versi terbaru dengan menjalankan
gcloud components update
.Aktifkan Eventarc API dan Eventarc Publishing API:
Konsol
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles.gcloud
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles.gcloud services enable eventarc.googleapis.com
eventarcpublishing.googleapis.com
Mengaktifkan peristiwa dari sumber Google
Untuk memublikasikan peristiwa dari sumber Google, Anda harus membuat resource
GoogleApiSource
. Resource ini merepresentasikan langganan ke peristiwa Google API di
project Google Cloud tertentu untuk bus Eventarc Advanced tertentu.
Anda dapat mengaktifkan publikasi acara dari sumber Google dengan cara berikut:
- Di Google Cloud console
- Dengan menggunakan Google Cloud CLI di terminal atau Cloud Shell
Dengan mengirim permintaan ke Eventarc API
Konsol
Di konsol Google Cloud , buka halaman Eventarc > Bus.
Anda dapat membuat bus atau, jika Anda memperbarui bus, klik Edit.
Di halaman Edit bus, untuk menambahkan sumber pesan, klik
Tambahkan sumber.- Di panel Tambahkan sumber pesan, untuk penyedia pesan Google API, terima default
google-api-source
atau masukkan nama sumber pesan yang berbeda. - Klik Buat.
- Di panel Tambahkan sumber pesan, untuk penyedia pesan Google API, terima default
Klik Simpan.
gcloud
Buka terminal.
Anda dapat mengaktifkan peristiwa dari sumber Google menggunakan perintah
gcloud eventarc google-api-sources create
:gcloud eventarc google-api-sources create GOOGLE_API_SOURCE_NAME \ --destination-message-bus=BUS_NAME \ --destination-message-bus-project=BUS_PROJECT_ID
Ganti kode berikut:
GOOGLE_API_SOURCE_NAME
: ID atau ID yang sepenuhnya memenuhi syarat dari resourceGoogleApiSource
yang mewakili langganan ke peristiwa Google API untuk bus tertentuBUS_NAME
: ID atau ID yang sepenuhnya memenuhi syarat dari bus yang ingin Anda gunakan untuk berlangganan peristiwa Google APIBUS_PROJECT_ID
: Google Cloud project ID untuk bus
Opsional: Anda juga dapat menggunakan flag berikut:
--async
untuk segera kembali dari perintah, tanpa menunggu operasi yang sedang berlangsung selesai.--crypto-key
untuk menentukan nama yang sepenuhnya memenuhi syarat dari kunci enkripsi yang dikelola pelanggan; jika tidak ditentukan, Google-owned and managed keys akan digunakan.--logging-config
untuk mengonfigurasi tingkat logging yang harus berupa salah satu dari berikut ini:NONE
,DEBUG
,INFO
,NOTICE
,WARNING
,ERROR
,CRITICAL
,ALERT
,EMERGENCY
. Untuk mengetahui informasi selengkapnya, lihatLogSeverity
.
REST API
Untuk mengaktifkan peristiwa dari sumber Google, gunakan metode
projects.locations.googleApiSources.create
.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
GOOGLE_API_SOURCE_NAME
: nama tampilan resourceGoogleApiSource
yang merepresentasikan langganan ke peristiwa Google API untuk bus tertentu—misalnya,my_google_source
.LABEL_KEY
danLABEL_VALUE
: opsional. Peta pasangan nilai dan kunci label yang membantu Anda mengatur resource. Google Cloud Untuk mengetahui informasi selengkapnya, lihat Apa yang dimaksud dengan label?ANNOTATION_KEY
danANNOTATION_VALUE
: opsional. Peta pasangan nilai kunci anotasi teks bentuk bebas. Anda dapat menggunakannya untuk melampirkan informasi arbitrer yang terkait dengan resource. Untuk mengetahui informasi selengkapnya, lihat Anotasi.DESTINATION
: ID yang sepenuhnya memenuhi syarat dari bus Eventarc Advanced tempat peristiwa sumber Google harus dipublikasikan dalam formatprojects/PROJECT_NAME/locations/LOCATION/messageBuses/BUS_NAME
. Untuk mengetahui informasi selengkapnya, lihat Membuat bus untuk merutekan pesan.ENCRYPT_KEY
: optional. Kunci Cloud KMS yang harus digunakan resourceGoogleApiSource
untuk enkripsi data dalam formatprojects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME
. Untuk informasi selengkapnya, lihat Menggunakan kunci enkripsi yang dikelola pelanggan.PROJECT_ID
: ID Google Cloud project tempat membuat resourceGoogleApiSource
.LOCATION
: region yang didukung untuk membuat resourceGoogleApiSource
—misalnya,us-central1
.LOG_SEVERITY
: optional. Tingkat keparahan minimum peristiwa yang dijelaskan dalam entri log. Salah satu dari:NONE
,DEBUG
,INFO
,NOTICE
,WARNING
,ERROR
,CRITICAL
,ALERT
,EMERGENCY
. Defaultnya adalahNONE
. Untuk mengetahui informasi selengkapnya, lihatLogSeverity
.
Meminta isi JSON:
{ "displayName": "GOOGLE_API_SOURCE_NAME", "labels": {"LABEL_KEY":"LABEL_VALUE"}, "annotations": {"ANNOTATION_KEY":"ANNOTATION_VALUE"}, "destination": "DESTINATION", "cryptoKeyName": "ENCRYPT_KEY", "loggingConfig": {"logSeverity":"LOG_SEVERITY"} }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Jika berhasil, isi respons berisi 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/googleApiSources/GOOGLE_API_SOURCE_NAME", "verb": "create", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
Peristiwa dari sumber Google dalam Google Cloud project yang sama dengan resource
GoogleApiSource
kini dikumpulkan dan dipublikasikan ke bus.
Menonaktifkan peristiwa dari sumber Google
Untuk menonaktifkan publikasi peristiwa dari sumber Google di projectGoogle Cloud tertentu ke bus Eventarc Advanced, Anda harus menghapus resource GoogleApiSource
.
Anda dapat menonaktifkan publikasi acara dari sumber Google dengan cara berikut:
- Di Google Cloud console
- Dengan menggunakan gcloud CLI di terminal atau Cloud Shell
Dengan mengirim permintaan ke Eventarc API
Konsol
Di konsol Google Cloud , buka halaman Eventarc > Bus details.
Klik
Edit.Di halaman Edit bus, untuk menghapus penyedia pesan Google API, klik
Hapus resource untuk sumber pesan google-api-source (atau nama yang telah Anda berikan).Saat diminta untuk Hapus resource, klik Konfirmasi.
Klik Simpan.
gcloud
Buka terminal.
Anda dapat menonaktifkan peristiwa dari sumber Google menggunakan perintah
gcloud eventarc google-api-sources delete
:gcloud eventarc google-api-sources delete GOOGLE_API_SOURCE_NAME \ --location=REGION
Ganti kode berikut:
GOOGLE_API_SOURCE_NAME
: ID atau ID yang memenuhi syarat sepenuhnya dari resourceGoogleApiSource
REGION
: lokasi resourceGoogleApiSource
REST API
Untuk menonaktifkan peristiwa dari sumber Google, gunakan metode
projects.locations.googleApiSources.delete
.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
PROJECT_ID
: ID Google Cloud project tempat resourceGoogleApiSource
dibuat.LOCATION
: region tempat resourceGoogleApiSource
dibuat—misalnya,us-central1
.GOOGLE_API_SOURCE_NAME
: nama resourceGoogleApiSource
yang ingin Anda hapus.
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Jika berhasil, isi respons berisi 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/googleApiSources/GOOGLE_API_SOURCE_NAME", "verb": "delete", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
Peristiwa dari sumber Google di project yang sama dengan resource Google Cloud yang dihapus GoogleApiSource
tidak lagi dikumpulkan dan dipublikasikan.
Memublikasikan peristiwa dari beberapa project
Untuk mengumpulkan dan memublikasikan peristiwa sumber Google dari beberapa project Google Cloud , Anda harus membuat resource
GoogleApiSource
, dan project harus berada dalam organisasi yang sama dengan resource
GoogleApiSource
. Untuk mengetahui informasi selengkapnya tentang organisasi, lihat
Hierarki resource.
Perhatikan hal berikut:
- Penerbitan peristiwa dari beberapa project harus dikonfigurasi menggunakan gcloud CLI dan tidak ditampilkan di konsol Google Cloud .
- Jika project yang berisi resource
GoogleApiSource
dipindahkan ke organisasi lain, memublikasikan peristiwa dari beberapa project tidak akan berfungsi seperti yang diharapkan. Anda harus memperbarui atau membuat ulang resourceGoogleApiSource
.
1. Memberikan peran IAM yang sesuai kepada agen layanan Eventarc
Untuk mengumpulkan peristiwa di tingkat organisasi, gunakan perintah
gcloud organizations add-iam-policy-binding
untuk memberikan peran Identity and Access Management (IAM) yang sesuai kepada agen layanan Eventarc:
gcloud organizations add-iam-policy-binding ORGANIZATION_ID \ --member="SERVICE_AGENT_EMAIL" \ --role="roles/eventarc.multiProjectEventCollector"
Ganti kode berikut:
ORGANIZATION_ID
: ID resource organisasi Anda.SERVICE_AGENT_EMAIL
: alamat email untuk agen layanan utama Eventarc di project tempat Anda membuat resourceGoogleApiSource
. Alamat email dalam format berikut:service-PROJECT_NUMBER@gcp-sa-eventarc.
Ganti
PROJECT_NUMBER
dengan Google Cloud nomor project Anda. Anda dapat menemukan nomor project di halaman Selamat Datang di konsol Google Cloud atau dengan menjalankan perintah berikut:gcloud projects describe PROJECT_ID --format='value(projectNumber)'
2. Memublikasikan dari semua project atau daftar project
Untuk memublikasikan peristiwa dari sumber Google di beberapa project, gunakan perintah
gcloud eventarc google-api-sources create
dengan salah satu cara berikut:
Publikasikan dari semua Google Cloud project dalam organisasi yang sama dengan resource
GoogleApiSource
:gcloud eventarc google-api-sources create GOOGLE_API_SOURCE_NAME \ --location=REGION \ --destination-message-bus=BUS_NAME \ --destination-message-bus-project=BUS_PROJECT_ID \ --organization-subscription
Memublikasikan dari daftar Google Cloud project dalam organisasi yang sama dengan resource
GoogleApiSource
:gcloud eventarc google-api-sources create GOOGLE_API_SOURCE_NAME \ --location=REGION \ --destination-message-bus=BUS_NAME \ --destination-message-bus-project=BUS_PROJECT_ID \ --project-subscriptions=LIST_OF_PROJECTS
Ganti kode berikut:
GOOGLE_API_SOURCE_NAME
: ID atau ID yang memenuhi syarat sepenuhnya dari resourceGoogleApiSource
REGION
: lokasi resourceGoogleApiSource
BUS_NAME
: ID atau ID yang sepenuhnya memenuhi syarat dari bus yang ingin Anda gunakan untuk berlangganan peristiwa Google APIBUS_PROJECT_ID
: Google Cloud project ID untuk busLIST_OF_PROJECTS
: daftar yang dibatasi koma dari Google Cloud project ID atau nomor project. Anda dapat menggabungkan ID dan angka dalam daftar yang sama. Untuk memublikasikan peristiwa dari projectGoogle Cloud yang berisi resourceGoogleApiSource
, Anda harus menyertakan ID atau nomor project secara eksplisit dalam daftar.
Langkah berikutnya
- Panduan memulai: Memublikasikan peristiwa dari sumber Google
- Memublikasikan acara secara langsung
- Memformat peristiwa yang diterima
- Mentransformasi peristiwa yang diterima