EventBridge terintegrasi dengan Knative Eventing di kluster Container Service for Kubernetes (ACK) untuk memberikan kemampuan berbasis event tingkat produksi pada layanan Anda. Event dari layanan Alibaba Cloud, aplikasi kustom, dan aplikasi software as a service (SaaS) mengalir ke Broker, difilter oleh Trigger, lalu dikirimkan ke Layanan Knative Anda dalam format standar CloudEvents 1.0.
Tutorial ini memandu Anda melalui penerapan komponen yang diperlukan, pembuatan Layanan Knative, konfigurasi Trigger, serta verifikasi bahwa event unggah OSS mencapai layanan Anda.
Dalam tutorial ini:
Cara kerja
EventBridge bertindak sebagai event bus (Broker) untuk kluster ACK Anda. Ketika sebuah event terpicu—misalnya unggahan file ke Object Storage Service (OSS)—EventBridge mengarahkannya ke Broker. Setiap Trigger berlangganan ke Broker dan memfilter event berdasarkan sumber dan jenisnya, lalu meneruskan event yang sesuai ke Layanan Knative target. Layanan tersebut melakukan scaling dari nol saat event tiba dan memprosesnya secara otomatis.
Anda dapat menghubungkan OSS ke EventBridge sebagai sumber event. Untuk informasi lebih lanjut, lihat Event OSS.
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
Knative Serving versi 1.12.7 atau lebih baru yang telah diinstal di kluster ACK Anda
ossutil yang telah diinstal dan bucket yang telah dibuat — lihat Instal ossutil dan Buat bucket
EventBridge yang telah diaktifkan dengan izin Pengguna Resource Access Management (RAM) yang diperlukan — lihat Aktifkan EventBridge dan berikan izin kepada Pengguna RAM
Langkah 1: Terapkan komponen Eventing dan EventBridge
Terapkan Eventing terlebih dahulu, lalu EventBridge. EventBridge menyediakan implementasi Knative Broker yang didukung oleh layanan EventBridge, sehingga cocok untuk beban kerja produksi.
Masuk ke Konsol ACK. Di panel navigasi sebelah kiri, klik Konsol ACKKonsol ACK Clusters.
Pada halaman Clusters, klik nama kluster target. Di panel navigasi sebelah kiri, pilih Applications > Knative.
Pada tab Components, terapkan komponen secara berurutan:
Temukan Eventing dan klik Deploy di kolom Actions.
Setelah status Deployed muncul di kolom Status, temukan EventBridge dan klik Deploy di kolom Actions.
Pada kotak dialog, masukkan AccessKey ID dan AccessKey secret Anda, lalu klik OK. Untuk mendapatkan Pasangan Kunci Akses, lihat Buat Pasangan Kunci Akses.Important: Untuk menjamin keamanan akun Anda, segera lakukan langkah-langkah berikut:– Ikuti petunjuk di layar untuk mengubah kata sandi administrator akun. Secara default, Anda perlu mengubah kata sandi Pengguna RAM saat login pertama kali.– Ikat perangkat multi-factor authentication (MFA) ke account administrator untuk otentikasi sekunder guna menambahkan lapisan perlindungan kedua selain username dan password. Lihat Ikat perangkat MFA ke Pengguna RAM.
Kedua komponen akan menampilkan status Deployed di kolom Status saat siap digunakan.
Langkah 2: Buat Layanan Knative
Tutorial ini menggunakan Layanan bernama event-display yang mencatat setiap event yang diterimanya. Buat layanan ini menggunakan Konsol ACK atau kubectl.
Gunakan Konsol ACK
Masuk ke Konsol ACK dan buka halaman Applications > Knative kluster Anda.
Pada tab Services, klik Create from Template dan terapkan manifes berikut:
apiVersion: serving.knative.dev/v1 kind: Service metadata: name: event-display namespace: default spec: template: spec: containers: - image: registry.cn-hangzhou.aliyuncs.com/knative-sample/event-display:20230207194118_3874dbdLayanan siap digunakan ketika status Created muncul di kolom Status.
Gunakan kubectl
Buat file bernama
event-display.yamldengan konten berikut:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: event-display namespace: default spec: template: spec: containers: - image: registry.cn-hangzhou.aliyuncs.com/knative-sample/event-display:20230207194118_3874dbdTerapkan manifes tersebut:
kubectl apply -f event-display.yamlVerifikasi bahwa Layanan sudah siap:
kubectl get ksvcOutput yang diharapkan:
NAME URL LATESTCREATED LATESTREADY READY REASON event-display http://event-display.default.example.com event-display-00001 event-display-00001 True
Langkah 3: Buat Trigger
Trigger berlangganan ke Broker EventBridge dan meneruskan event yang sesuai ke Layanan Knative Anda. Buat Trigger menggunakan Konsol ACK atau kubectl.
Gunakan Konsol ACK
Pada halaman Knative, buka tab Services dan klik nama Layanan
event-display.Pada tab Trigger, klik Create Trigger.
Pada halaman Configure, atur parameter berikut: Setelah dibuat, Trigger akan muncul di tab Triggers.
Parameter Deskripsi Contoh Name Nama untuk Trigger my-service-triggerBroker Pilih EventBridge atau Other EventBridgeEvent source Sumber event yang akan dilanggani OSSEvent type Jenis event yang akan difilter oss:ActionTrail:ConsoleOperation
Gunakan kubectl
Buat file bernama
my-service-trigger.yamldengan konten berikut:apiVersion: eventing.knative.dev/v1 kind: Trigger metadata: name: my-service-trigger spec: broker: eventbridge-default-broker # Event bus EventBridge default filter: attributes: source: acs.oss # Identifier sumber event type: 'oss:ActionTrail:ConsoleOperation' # Jenis event; pisahkan beberapa jenis dengan koma subscriber: ref: apiVersion: serving.knative.dev/v1 kind: Service name: helloworld-go # Layanan Knative target namespace: defaultTerapkan manifes tersebut:
kubectl apply -f my-service-trigger.yamlVerifikasi bahwa Trigger sudah siap:
kubectl get triggersOutput yang diharapkan:
NAME BROKER SUBSCRIBER_URI AGE READY REASON my-service-trigger eventbridge-default-broker http://helloworld-go.default.svc.cluster.local 42h True
Langkah 4: Verifikasi pengiriman event
Unggah file ke OSS untuk memicu event, lalu konfirmasi bahwa EventBridge telah mengarahkannya dan Layanan Knative telah mengonsumsinya.
Bucket OSS dan EventBridge harus berada di wilayah yang sama. Sebelum melakukan langkah-langkah berikut, Anda harus menginstal ossutil.
Unggah file ke OSS
ossutil cp <file-name> oss://<bucket-name>Setelah unggahan selesai, EventBridge mendeteksi event tersebut dan mengarahkannya melalui Trigger ke event-display.
Periksa jejak event di EventBridge
Masuk ke Konsol EventBridge. Di panel navigasi sebelah kiri, klik Event Buses.
Pada halaman Event Buses, temukan event bus default dan klik Event Tracking di kolom Actions.
Pada tab Query By Time Range, atur Time Range lalu klik Query.
Filter berdasarkan Event Source: OSS dan Event Type: Put Object, lalu klik Event Trace di kolom Operations. Halaman Event Trace menunjukkan apakah event berhasil dikirimkan.

Konfirmasi bahwa Layanan Knative telah mengonsumsi event
Periksa apakah Pod
event-displaysedang berjalan:kubectl get podOutput yang diharapkan:
NAME READY STATUS RESTARTS AGE event-display-00001-deployment-56cc79****-z2vhv 2/2 Running 0 7sLihat event yang dicatat oleh Layanan:
kubectl logs event-display-00001-deployment-56cc79****-z2vhv user-containerOutput yang diharapkan:
{"data":{"eventVersion":"1.0","responseElements":{"requestId":"63E21F5FEE852133319101AD"},"eventSource":"acs:oss","eventTime":"2023-02-07T09:52:31.000Z","requestParameters":{"sourceIPAddress":"XX.XXX.XX.XXX"},"eventName":"ObjectCreated:PutObject","userIdentity":{"principalId":"1118324452360952"},"region":"cn-hangzhou","oss":{"bucket":{"name":"knative","arn":"acs:oss:cn-hangzhou:1581204543170042:knative","virtualBucket":"","ownerIdentity":"1581204543170042"},"ossSchemaVersion":"1.0","object":{"size":225496,"objectMeta":{"mimeType":"application/octet-stream"},"deltaSize":0,"eTag":"B350C082843DAC7E9E634193437EBA30","key":"demo.data"}}}}Log tersebut mengonfirmasi bahwa
event-displaytelah menerima dan mencatat event unggah OSS. EventBridge berhasil memicu Layanan Knative.
Langkah selanjutnya
Gunakan event GitHub di Knative — hubungkan sumber event lain untuk memicu Layanan Knative