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 tujuan target.
Eventarc mengirimkan peristiwa ke penerima peristiwa dalam format CloudEvents melalui permintaan HTTP.
Petunjuk ini menunjukkan cara mengonfigurasi pemilihan rute peristiwa untuk semua jenis peristiwa ke endpoint HTTP internal di jaringan Virtual Private Cloud (VPC). Untuk mengonfigurasi pemicu, Anda juga harus memberikan ID lampiran jaringan.
Jenis peristiwa yang didukung adalah:
Peristiwa langsung—Dipicu oleh peristiwa yang tidak dimediasi seperti pembaruan pada objek di bucket Cloud Storage atau pesan yang dipublikasikan ke topik Pub/Sub.
Peristiwa Cloud Audit Logs—Dipicu saat log dihasilkan melalui Cloud Audit Logs.
Peristiwa pihak ketiga—Dipicu oleh peristiwa penyedia non-Google yang menawarkan sumber Eventarc.
Endpoint HTTP internal dapat berupa alamat IP internal atau nama DNS yang sepenuhnya memenuhi syarat (FQDN) untuk endpoint HTTP apa pun di jaringan Virtual Private Cloud. Berikut adalah dua contoh kemungkinan tujuan peristiwa:
- Instance virtual machine (VM) Compute Engine—Instance Compute Engine dapat menjalankan image publik untuk Linux dan Windows Server yang disediakan Google serta image kustom pribadi yang dapat Anda buat atau impor dari sistem yang ada. Untuk mengetahui informasi selengkapnya, lihat Instance virtual machine.
- Load balancer internal— Google Cloud Load Balancer Aplikasi internal adalah load balancer Lapisan 7 regional berbasis proxy yang memungkinkan Anda menjalankan dan menskalakan layanan di balik alamat IP internal. Load Balancer Aplikasi Internal mendistribusikan traffic HTTP dan HTTPS ke backend yang dihosting di Compute Engine, Google Kubernetes Engine (GKE), dan Cloud Run. Untuk mengetahui informasi selengkapnya, lihat Ringkasan Load Balancer Aplikasi Internal.
Jaringan VPC adalah versi virtual dari jaringan fisik yang diterapkan di dalam jaringan produksi Google. Jaringan VPC Bersama adalah jaringan VPC yang ditentukan dalam project host dan disediakan sebagai jaringan bersama terpusat untuk resource yang memenuhi syarat dalam project layanan yang terpasang.
Lampiran jaringan adalah resource regional yang memungkinkan Anda secara eksplisit memberikan otorisasi kepada produsen untuk terhubung ke jaringan VPC konsumen. Untuk memublikasikan peristiwa, Eventarc menggunakan lampiran jaringan untuk membuat koneksi ke endpoint HTTP internal yang dihosting di jaringan VPC.
Sebelum memulai
Sebelum membuat pemicu Eventarc untuk merutekan peristiwa ke endpoint HTTP internal di jaringan VPC, Anda harus membuat lampiran jaringan yang menerima koneksi di jaringan dan region yang sama yang berisi layanan tujuan HTTP.
Petunjuk ini mengasumsikan bahwa Anda telah membuat jaringan dan subjaringan VPC, serta telah men-deploy layanan tujuan HTTP.
Untuk mengetahui informasi selengkapnya, lihat artikel Menerima peristiwa Pub/Sub di endpoint HTTP internal dalam jaringan VPC yang menunjukkan cara men-deploy endpoint HTTP internal di jaringan VPC dan merutekan peristiwa Pub/Sub ke endpoint.
Batasan umum
Berikut adalah batasan umum saat merutekan peristiwa ke endpoint HTTP internal di jaringan VPC:
Anda tidak dapat membuat lebih dari satu pemicu Eventarc untuk nama DNS yang sama.
Ada batas 100 pemicu Eventarc untuk endpoint HTTP internal per project.
Hanya lokasi pemicu Eventarc berikut yang didukung:
asia-east1
europe-north1
europe-west1
us-central1
us-east1
Bersiap untuk membuat pemicu
Sebelum Anda membuat pemicu, selesaikan prasyarat ini:
Konsol
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat Google Cloud project.
Aktifkan Cloud Logging dan Eventarc API.
Jika berlaku, aktifkan API yang terkait dengan peristiwa langsung. Misalnya, untuk peristiwa fungsi Cloud Run, aktifkan
cloudfunctions.googleapis.com
.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.
Di konsol Google Cloud, buka halaman Create service account.
Pilih project Anda.
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
.Klik Buat dan lanjutkan.
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 mengetahui informasi selengkapnya, lihat Peran dan izin untuk endpoint HTTP internal di jaringan VPC.
Untuk peran tambahan, klik
Tambahkan peran lain, lalu tambahkan setiap peran tambahan.Klik Lanjutkan.
Untuk menyelesaikan pembuatan akun, klik Selesai.
Jika Anda membuat pemicu untuk peristiwa langsung dari Cloud Storage, berikan peran Pub/Sub Publisher (
roles/pubsub.publisher
) ke agen layanan Cloud Storage:Di konsol Google Cloud, buka halaman IAM.
Pilih kotak centang Sertakan pemberian peran yang disediakan Google.
Di kolom Principal, temukan Agen Layanan Cloud Storage dengan bentuk
service-PROJECT_NUMBER@gs-project-accounts.iam.gserviceaccount.com
, lalu klik Edit principal di baris yang sesuai.Klik
Add role atau Add another role.Di daftar Select a role, filter untuk Pub/Sub Publisher, lalu pilih peran.
Klik Simpan.
Jika URI endpoint HTTP internal di jaringan VPC menggunakan nama DNS internal layanan yang dapat di-resolve oleh Cloud DNS, berikan peran DNS Peer (
roles/dns.peer
) di project host VPC ke agen layanan Eventarc.Perhatikan bahwa bergantung pada cara Anda mengonfigurasi jaringan VPC, project host VPC mungkin juga merupakan project pemicu Eventarc Anda.
Di konsol Google Cloud, pada halaman pemilih project, pilih project host VPC.
Di konsol Google Cloud, buka halaman IAM.
Centang kotak Include Google-provided role grants.
Ubah atau tambahkan agen layanan Eventarc sebagai akun utama:
Jika agen layanan Eventarc sudah memiliki peran lain di project, temukan baris yang berisi akun utama dalam bentuk
service-PROJECT_NUMBER@gcp-sa-eventarc.iam.gserviceaccount.com
, klik Edit akun utama di baris tersebut, lalu klik Tambahkan peran lain.Jika agen layanan Eventarc tidak memiliki peran yang ada di project, klik
Berikan Akses, lalu masukkan alamat email dalam bentukservice-PROJECT_NUMBER@gcp-sa-eventarc.iam.gserviceaccount.com
.
Ganti
PROJECT_NUMBER
dengan nomor project Google Clouduntuk project pemicu Eventarc Anda. Anda dapat menemukan nomor project di halaman Welcome pada Konsol Google Cloud atau dengan menjalankan perintah berikut:gcloud projects describe PROJECT_ID --format='value(projectNumber)'
Di daftar Select a role, filter untuk DNS Peer, lalu pilih peran.
Klik Simpan.
gcloud
In the Google Cloud console, 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.
Aktifkan Cloud Logging, Eventarc, dan Eventarc Publishing API.
gcloud services enable logging.googleapis.com \ eventarc.googleapis.com \ eventarcpublishing.googleapis.com
Jika berlaku, aktifkan API yang terkait dengan peristiwa. Misalnya, untuk peristiwa fungsi Cloud Run, aktifkan
cloudfunctions.googleapis.com
.Jika belum memilikinya, buat akun layanan yang dikelola pengguna, lalu berikan peran dan izin yang diperlukan sehingga Eventarc dapat mengelola peristiwa untuk layanan target Anda.
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.Berikan peran atau izin Identity and Access Management (IAM) yang diperlukan. Untuk mengetahui informasi selengkapnya, lihat Peran dan izin untuk endpoint HTTP internal di jaringan VPC.
Jika URI endpoint HTTP internal di jaringan VPC menggunakan nama DNS internal layanan yang dapat di-resolve oleh Cloud DNS, berikan peran DNS Peer (
roles/dns.peer
) di project host VPC ke agen layanan Eventarc.Perhatikan bahwa bergantung pada cara Anda mengonfigurasi jaringan VPC, project host VPC mungkin juga merupakan project pemicu Eventarc Anda.
gcloud projects add-iam-policy-binding VPC_HOST_PROJECT_ID \ --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-eventarc.iam.gserviceaccount.com \ --role=roles/dns.peer
Ganti kode berikut:
VPC_HOST_PROJECT_ID
: Google Cloudproject ID untuk project host VPC.PROJECT_NUMBER
: nomor project Google Clouduntuk project pemicu Eventarc Anda. Anda dapat menemukan nomor project di halaman Welcome pada Konsol Google Cloud atau dengan menjalankan perintah berikut:
gcloud projects describe PROJECT_ID --format='value(projectNumber)'
Jika Anda membuat pemicu untuk peristiwa langsung dari Cloud Storage, berikan peran Pub/Sub Publisher (
roles/pubsub.publisher
) di project kepada agen layanan Cloud Storage:gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:service-PROJECT_NUMBER@gs-project-accounts.iam.gserviceaccount.com \ --role=roles/pubsub.publisher
Buat pemicu
Anda dapat membuat pemicu Eventarc menggunakan Google Cloud CLI atau melalui konsol Google Cloud.
Konsol
- Di konsol Google Cloud, buka halaman Pemicu Eventarc.
- Klik Create trigger.
- Ketik Nama pemicu.
Ini adalah ID pemicu dan harus diawali dengan huruf. Nama dapat berisi hingga 63 huruf kecil, angka, atau tanda hubung.
- Untuk Trigger type, pilih Google sources atau Third-party.
- Pilih Penyedia peristiwa.
Ini adalah layanan yang merupakan sumber peristiwa. Untuk sumber Google, hal ini dilakukan secara langsung atau melalui log auditnya.
- Bergantung pada jenis peristiwa yang Anda arahkan, lakukan salah satu hal berikut:
- Peristiwa langsung—Di daftar Jenis peristiwa, dari peristiwa Langsung, pilih jenis peristiwa.
- Untuk peristiwa Cloud Pub/Sub langsung, dalam daftar Select a Cloud Pub/Sub topic, pilih topik atau terima setelan default None sehingga topik baru dibuat untuk Anda.
- Untuk peristiwa Cloud Storage langsung, tentukan atau cari ID unik global dari Bucket Cloud Storage.
- Peristiwa log audit—Di daftar Jenis peristiwa, dari peristiwa melalui Log Audit Cloud, pilih jenis peristiwa, lalu pilih salah satu dari opsi berikut:
- Semua resource—Ini adalah setelan default dan mencakup resource yang dibuat secara dinamis yang memiliki ID yang dibuat pada waktu pembuatan.
- Resource tertentu—Anda harus memberikan nama resource lengkap.
- Pola jalur—Anda dapat
memfilter resource menggunakan
pola jalur.
Misalnya, ketik
projects/_/buckets/eventarc-bucket/objects/random.txt
atau ketikprojects/_/buckets/**/r*.txt
.
- Peristiwa pihak ketiga—Di daftar Channel, pilih channel, lalu di daftar Jenis peristiwa, pilih peristiwa.
Untuk informasi selengkapnya, lihat Membuat saluran dan mengambil detailnya.
- Peristiwa langsung—Di daftar Jenis peristiwa, dari peristiwa Langsung, pilih jenis peristiwa.
- Jika berlaku untuk jenis peristiwa, di daftar Jenis konten data peristiwa, pilih application/json atau application/protobuf untuk menentukan encoding payload peristiwa.
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.
- Jika berlaku untuk penyedia peristiwa, klik Tambahkan filter, lalu tentukan hal berikut:
- Di kolom Atribut 1, bergantung pada peristiwa langsung yang Anda pilih, pilih ID resource yang dapat berfungsi sebagai filter peristiwa.
- Pilih operator:
- Sama dengan
- Pola jalur
Untuk mengetahui informasi selengkapnya, lihat Memahami pola jalur.
- Di kolom Attribute value 1, bergantung pada operator yang Anda pilih, ketik nilai yang tepat atau terapkan pola jalur.
- Jika kolom Atribut 2 berlaku, tentukan nilai yang sesuai.
- Dalam daftar Region, pilih lokasi.
Untuk menghindari masalah performa dan residensi data, lokasi harus cocok dengan lokasi layanan Google Cloud yang menghasilkan peristiwa.
Perhatikan bahwa untuk tujuan peristiwa ini, hanya lokasi berikut yang didukung:
asia-east1
europe-north1
europe-west1
us-east1
Untuk informasi selengkapnya, lihat Lokasi Eventarc.
- Pilih Service account yang akan memanggil layanan Anda.
Atau, Anda dapat membuat akun layanan baru.
Ini menentukan email akun layanan IAM yang terkait dengan pemicu dan yang sebelumnya Anda berikan peran tertentu yang diperlukan oleh Eventarc.
- Dalam daftar Tujuan peristiwa, pilih
Endpoint HTTP (internal).
- Tentukan URI Tujuan. Ini adalah URI endpoint HTTP internal di jaringan VPC yang menerima peristiwa untuk pemicu. URI dapat berupa
alamat IP internal statis di
jaringan VPC yang dialamatkan oleh lampiran jaringan atau
nama DNS internal
layanan yang dapat di-resolve oleh Cloud DNS.
Jika endpoint HTTP menggunakan nama DNS internal, Eventarc akan otomatis membuat zona peering DNS dan meneruskan permintaan DNS ke zona DNS di jaringan VPC target. Peering DNS memungkinkan Anda mengirim permintaan untuk data yang berasal dari namespace satu zona ke jaringan VPC lain. Untuk mengetahui informasi selengkapnya, lihat Zona peering dan Membuat zona peering.
Perhatikan bahwa Anda tidak dapat membuat lebih dari satu pemicu untuk nama DNS yang sama.
- Dalam daftar Network attachment, pilih ID untuk resource lampiran jaringan. ID ini dibuat setelah
Anda membuat lampiran jaringan. Untuk mengetahui informasi selengkapnya, lihat
Membuat lampiran jaringan.
Lampiran jaringan memungkinkan jaringan VPC produsen layanan memulai koneksi ke jaringan VPC konsumen. Eventarc menggunakan lampiran jaringan untuk membuat koneksi ke endpoint HTTP internal yang dihosting di jaringan VPC konsumen dan memublikasikan peristiwa.
Saat membuat lampiran jaringan, Anda dapat secara eksplisit mengizinkan koneksi melalui daftar terima dan tolak produsen. Namun, Eventarc dapat memperbarui daftar terima lampiran jaringan dengan ID project yang sesuai dan tanpa intervensi dari Anda.
- Tentukan URI Tujuan. Ini adalah URI endpoint HTTP internal di jaringan VPC yang menerima peristiwa untuk pemicu. URI dapat berupa
alamat IP internal statis di
jaringan VPC yang dialamatkan oleh lampiran jaringan atau
nama DNS internal
layanan yang dapat di-resolve oleh Cloud DNS.
- Klik Buat.
Setelah pemicu dibuat, filter sumber peristiwa tidak dapat diubah. Sebagai gantinya, buat pemicu baru dan hapus pemicu sebelumnya. Untuk informasi selengkapnya, lihat Mengelola pemicu.
gcloud
Anda dapat membuat pemicu dengan menjalankan perintah gcloud eventarc triggers create
bersama dengan flag wajib dan opsional.
Peristiwa langsung
gcloud eventarc triggers create TRIGGER \ --location=LOCATION \ --destination-http-endpoint-uri=ENDPOINT_URI \ --network-attachment=NETWORK_ATTACHMENT_ID \ --event-filters="type=EVENT_FILTER_TYPE" \ --event-filters="COLLECTION_ID=RESOURCE_ID" \ --event-filters-path-pattern="COLLECTION_ID=PATH_PATTERN" \ --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 propertieventarc/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.
Perhatikan bahwa untuk tujuan peristiwa ini, hanya lokasi berikut yang didukung:
asia-east1
europe-north1
europe-west1
us-central1
us-east1
Untuk informasi selengkapnya, lihat Lokasi Eventarc.
ENDPOINT_URI
: URI endpoint HTTP internal di jaringan VPC yang menerima peristiwa untuk pemicu. URI dapat berupa alamat IP internal statis di jaringan VPC yang dialamatkan oleh lampiran jaringan atau nama DNS internal layanan yang dapat di-resolve oleh Cloud DNS.Jika endpoint HTTP menggunakan nama DNS internal, Eventarc akan otomatis membuat zona peering DNS dan meneruskan permintaan DNS ke zona DNS di jaringan VPC target. Peering DNS memungkinkan Anda mengirim permintaan untuk data yang berasal dari namespace satu zona ke jaringan VPC lain. Untuk mengetahui informasi selengkapnya, lihat Zona peering dan Membuat zona peering.
Perhatikan bahwa Anda tidak dapat membuat lebih dari satu pemicu untuk nama DNS yang sama.
NETWORK_ATTACHMENT_ID
: ID unik untuk resource lampiran jaringan. ID dibuat setelah Anda membuat lampiran jaringan. Untuk mengetahui informasi selengkapnya, lihat Membuat lampiran jaringan.Lampiran jaringan memungkinkan jaringan VPC produsen layanan memulai koneksi ke jaringan VPC konsumen. Eventarc menggunakan lampiran jaringan untuk membuat koneksi ke endpoint HTTP internal yang dihosting di jaringan VPC konsumen dan memublikasikan peristiwa.
Saat membuat lampiran jaringan, Anda dapat secara eksplisit mengizinkan koneksi melalui daftar terima dan tolak produsen. Namun, Eventarc dapat memperbarui daftar terima lampiran jaringan dengan ID project yang sesuai dan tanpa intervensi dari Anda.
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. Lihat daftar jenis peristiwa langsung yang didukung.COLLECTION_ID
(opsional): komponen resource yang dapat bertindak sebagai filter peristiwa; misalnya, untuk fungsi Cloud Run, ini adalahfunction
.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.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 pembuatan. Untuk mengubahEVENT_FILTER_TYPE
, buat pemicu baru dan hapus pemicu sebelumnya.- Setiap pemicu dapat memiliki beberapa filter peristiwa, yang dipisahkan koma dalam satu
tanda
--event-filters
=[ATTRIBUTE
=VALUE
,...] atau Anda dapat mengulangi tanda tersebut untuk menambahkan lebih banyak filter. Hanya peristiwa yang cocok dengan semua filter yang akan dikirim ke tujuan. Karakter pengganti dan ekspresi reguler tidak didukung; tetapi, saat menggunakan flag--event-filters-path-pattern
, Anda dapat menentukan pola jalur resource. - Flag
--service-account
digunakan untuk menentukan email akun layanan IAM yang terkait dengan pemicu.
Contoh:
gcloud eventarc triggers create helloworld-trigger \ --location=us-central1 \ --destination-http-endpoint-uri=http://my-vm.us-central1-a.c.my-project.internal \ --network-attachment="projects/my-project/regions/us-central1/networkAttachments/my-attachment-name" \ --event-filters="type=google.cloud.pubsub.topic.v1.messagePublished" \ --service-account=my-service-account@my-project.iam.gserviceaccount.com
Peristiwa log audit
gcloud eventarc triggers create TRIGGER \ --location=LOCATION \ --destination-http-endpoint-uri=ENDPOINT_URI \ --network-attachment=NETWORK_ATTACHMENT_ID \ --event-filters="type=google.cloud.audit.log.v1.written" \ --event-filters="serviceName=SERVICE_NAME" \ --event-filters="methodName=METHOD_NAME" \ --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 propertieventarc/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. Lokasi berikut didukung:
asia-east1
europe-north1
europe-west1
us-central1
us-east1
Untuk informasi selengkapnya, lihat Lokasi Eventarc.
ENDPOINT_URI
: URI endpoint HTTP internal di jaringan VPC yang menerima peristiwa untuk pemicu. URI dapat berupa alamat IP internal statis di jaringan VPC yang dialamatkan oleh lampiran jaringan atau nama DNS internal layanan yang dapat di-resolve oleh Cloud DNS.Jika endpoint HTTP menggunakan nama DNS internal, Eventarc akan otomatis membuat zona peering DNS dan meneruskan permintaan DNS ke zona DNS di jaringan VPC target. Peering DNS memungkinkan Anda mengirim permintaan untuk data yang berasal dari namespace satu zona ke jaringan VPC lain. Untuk mengetahui informasi selengkapnya, lihat Zona peering dan Membuat zona peering.
Perhatikan bahwa Anda tidak dapat membuat lebih dari satu pemicu untuk nama DNS yang sama.
NETWORK_ATTACHMENT_ID
: ID unik untuk resource lampiran jaringan. ID dibuat setelah Anda membuat lampiran jaringan. Untuk mengetahui informasi selengkapnya, lihat Membuat lampiran jaringan.Lampiran jaringan memungkinkan jaringan VPC produsen layanan memulai koneksi ke jaringan VPC konsumen. Eventarc menggunakan lampiran jaringan untuk membuat koneksi ke endpoint HTTP internal yang dihosting di jaringan VPC konsumen dan memublikasikan peristiwa.
Saat membuat lampiran jaringan, Anda dapat secara eksplisit mengizinkan koneksi melalui daftar terima dan tolak produsen. Namun, Eventarc dapat memperbarui daftar terima lampiran jaringan dengan ID project yang sesuai dan tanpa intervensi dari Anda.
SERVICE_NAME
: ID layananGoogle Cloud . Lihat daftar jenis peristiwa log audit yang didukung.METHOD_NAME
: ID operasi. Lihat daftar jenis peristiwa log audit yang didukung.SERVICE_ACCOUNT_NAME
: nama akun layanan yang dikelola pengguna.PROJECT_ID
: Google Cloud project ID Anda.
Catatan:
- Flag ini diperlukan:
--event-filters="type=google.cloud.audit.log.v1.written"
--event-filters="serviceName=VALUE"
--event-filters="methodName=VALUE"
- Atau, filter peristiwa untuk resource tertentu menggunakan
tanda
--event-filters="resourceName=VALUE"
dan tentukan jalur lengkap ke resource. Hapus tanda untuk resource yang dibuat secara dinamis yang memiliki ID yang dihasilkan pada waktu pembuatan. Atau, filter peristiwa untuk sekumpulan resource menggunakan flag--event-filters-path-pattern="resourceName=VALUE"
dan menentukan pola jalur resource. - Setiap pemicu dapat memiliki beberapa filter peristiwa, yang dipisahkan koma dalam satu
tanda
--event-filters
=[ATTRIBUTE
=VALUE
,...] atau Anda dapat mengulangi tanda tersebut untuk menambahkan lebih banyak filter. Hanya peristiwa yang cocok dengan semua filter yang akan dikirim ke tujuan. Karakter pengganti dan ekspresi reguler tidak didukung; tetapi, saat menggunakan flag--event-filters-path-pattern
, Anda dapat menentukan pola jalur resource. - Setelah pemicu dibuat, jenis filter peristiwa tidak dapat diubah. Untuk jenis peristiwa yang berbeda, Anda harus membuat pemicu baru.
- Flag
--service-account
digunakan untuk menentukan email akun layanan IAM yang terkait dengan pemicu.
Contoh:
gcloud eventarc triggers create helloworld-trigger \ --location=us-central1 \ --destination-http-endpoint-uri=http://10.10.10.2 \ --network-attachment="projects/my-project/regions/us-central1/networkAttachments/my-attachment" \ --event-filters="type=google.cloud.audit.log.v1.written" \ --event-filters="serviceName=eventarc.googleapis.com" \ --event-filters="methodName=google.cloud.eventarc.v1.Eventarc.GetTrigger" \ --event-filters="resourceName=projects/my-project/locations/us-central1/triggers/my-trigger" \ --service-account=my-service-account@my-project.iam.gserviceaccount.com
Peristiwa pihak ketiga
gcloud eventarc triggers create TRIGGER \ --location=LOCATION \ --destination-http-endpoint-uri=ENDPOINT_URI \ --network-attachment=NETWORK_ATTACHMENT_ID \ --event-filters="type=EVENT_FILTER_TYPE" \ --channel=CHANNEL_NAME \ --project=PROJECT_ID \ --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 propertieventarc/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.
Perhatikan bahwa untuk tujuan peristiwa ini, hanya lokasi berikut yang didukung:
asia-east1
europe-north1
europe-west1
us-central1
us-east1
Untuk informasi selengkapnya, lihat Lokasi Eventarc.
ENDPOINT_URI
: URI endpoint HTTP internal di jaringan VPC yang menerima peristiwa untuk pemicu. URI dapat berupa alamat IP internal statis di jaringan VPC yang dialamatkan oleh lampiran jaringan atau nama DNS internal layanan yang dapat di-resolve oleh Cloud DNS.Jika endpoint HTTP menggunakan nama DNS internal, Eventarc akan otomatis membuat zona peering DNS dan meneruskan permintaan DNS ke zona DNS di jaringan VPC target. Peering DNS memungkinkan Anda mengirim permintaan untuk data yang berasal dari namespace satu zona ke jaringan VPC lain. Untuk mengetahui informasi selengkapnya, lihat Zona peering dan Membuat zona peering.
Perhatikan bahwa Anda tidak dapat membuat lebih dari satu pemicu untuk nama DNS yang sama.
NETWORK_ATTACHMENT_ID
: ID unik untuk resource lampiran jaringan. ID dibuat setelah Anda membuat lampiran jaringan. Untuk mengetahui informasi selengkapnya, lihat Membuat lampiran jaringan.Lampiran jaringan memungkinkan jaringan VPC produsen layanan memulai koneksi ke jaringan VPC konsumen. Eventarc menggunakan lampiran jaringan untuk membuat koneksi ke endpoint HTTP internal yang dihosting di jaringan VPC konsumen dan memublikasikan peristiwa.
Saat membuat lampiran jaringan, Anda dapat secara eksplisit mengizinkan koneksi melalui daftar terima dan tolak produsen. Namun, Eventarc dapat memperbarui daftar terima lampiran jaringan dengan ID project yang sesuai dan tanpa intervensi dari Anda.
EVENT_FILTER_TYPE
: jenis peristiwa yang didukung oleh penyedia.CHANNEL_NAME
: nama untuk saluran. Untuk informasi selengkapnya, lihat Membuat saluran dan mengambil detailnya.PROJECT_ID
: Google Cloud project ID Anda.SERVICE_ACCOUNT_NAME
: nama akun layanan yang dikelola pengguna.
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 pembuatan. Untuk mengubahEVENT_FILTER_TYPE
, buat pemicu baru dan hapus pemicu sebelumnya.- Setiap pemicu dapat memiliki beberapa filter peristiwa, yang dipisahkan koma dalam satu
tanda
--event-filters
=[ATTRIBUTE
=VALUE
,...] atau Anda dapat mengulangi tanda tersebut untuk menambahkan lebih banyak filter. Hanya peristiwa yang cocok dengan semua filter yang dikirim ke tujuan. Karakter pengganti dan ekspresi reguler tidak didukung. - Flag
--service-account
digunakan untuk menentukan email akun layanan IAM yang terkait dengan pemicu.
Contoh:
gcloud eventarc triggers create helloworld-trigger \ --location=us-central1 \ --destination-http-endpoint-uri=http://my-vm.us-central1-a.c.my-project.internal \ --network-attachment="projects/my-project/regions/us-central1/networkAttachments/my-attachment-name" \ --event-filters="type=third-party-event-type" \ --channel=my-channel \ --project=my-project-ID \ --service-account=my-service-account@my-project.iam.gserviceaccount.com
Mencantumkan pemicu
Anda dapat mengonfirmasi pembuatan pemicu dengan mencantumkan pemicu Eventarc menggunakan Google Cloud CLI atau melalui konsol Google Cloud.
Konsol
Di konsol Google Cloud, buka halaman Pemicu Eventarc.
Halaman ini mencantumkan pemicu Anda di semua lokasi, dan menyertakan detail seperti nama, wilayah, penyedia peristiwa, tujuan, dan lainnya.
Untuk memfilter pemicu:
- Klik Filter atau kolom Filter triggers.
- Di daftar Properti, pilih opsi untuk memfilter pemicu.
Anda dapat memilih satu properti atau menggunakan operator logika
OR
untuk menambahkan properti lainnya.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
- Ringkasan Eventarc
- Mengelola pemicu
- Tutorial: Menerima peristiwa Pub/Sub di endpoint HTTP internal dalam jaringan VPC
- Tutorial: Menerima peristiwa Pub/Sub di endpoint HTTP pribadi dalam cluster GKE pribadi