全部产品
Search
文档中心

Container Service for Kubernetes:Gunakan EventBridge untuk arsitektur berbasis peristiwa di Knative

更新时间:Jul 06, 2025

Knative Eventing menyediakan model peristiwa yang menyederhanakan proses penerimaan peristiwa dari sistem eksternal. Anda dapat menerapkan komponen Knative Eventing dalam kluster Container Service for Kubernetes (ACK) dan membuat pemicu untuk mengaktifkan kemampuan berbasis peristiwa. Topik ini menjelaskan cara menggunakan EventBridge untuk menyediakan kemampuan berbasis peristiwa dalam lingkungan produksi untuk Knative.

Prasyarat

Pengenalan fitur

EventBridge mendukung berbagai macam sumber peristiwa. Anda dapat mengonfigurasi bus peristiwa, aturan, dan target untuk menyaring, mentransformasi, dan mengirimkan peristiwa. Dengan menggunakan EventBridge untuk memicu Layanan Knative mengonsumsi peristiwa, Anda dapat menggunakan sumber daya sesuai kebutuhan. Gambar berikut menunjukkan arsitektur tersebut.

Catatan

Anda dapat menghubungkan Object Storage Service (OSS) ke EventBridge sebagai sumber peristiwa. Untuk informasi lebih lanjut tentang cara menghubungkan OSS ke EventBridge sebagai sumber peristiwa, lihat Peristiwa OSS.

Langkah 1: Terapkan komponen Eventing dan EventBridge

Knative menyediakan kemampuan berbasis peristiwa dari EventBridge dan mendukung sumber peristiwa layanan Alibaba Cloud serta pengalihan peristiwa.

  1. Masuk ke konsol ACK. Di panel navigasi kiri, klik Clusters.

  2. Di halaman Clusters, temukan kluster yang diinginkan dan klik namanya. Di panel navigasi kiri, pilih Applications > Knative.

  3. Di tab Components, terapkan komponen Eventing dan EventBridge.

    1. Di tab Components, temukan Eventing dan klik Deploy di kolom Actions.

    2. Setelah Eventing diterapkan, temukan EventBridge, dan klik Deploy di kolom Actions. Di kotak dialog yang muncul, masukkan ID AccessKey dan Rahasia AccessKey, lalu klik OK.

      Untuk informasi lebih lanjut tentang cara mendapatkan pasangan AccessKey, lihat Buat Pasangan AccessKey.

      Catatan

      Untuk memastikan keamanan akun pengguna RAM, kami sarankan Anda mengikat perangkat otentikasi multi-faktor (MFA) ke pengguna RAM untuk otentikasi sekunder selama masuk konsol atau operasi sensitif di konsol. MFA adalah peningkatan keamanan yang menambahkan lapisan perlindungan tambahan selain nama pengguna dan kata sandi. Untuk informasi lebih lanjut, lihat Ikat Perangkat MFA ke Pengguna RAM.

    Jika Deployed ditampilkan di kolom Status komponen, komponen tersebut telah diterapkan.

Langkah 2: Buat Layanan Knative

Bagian ini menggunakan Layanan Knative bernama event-display sebagai contoh. Layanan ini secara otomatis mencatat semua peristiwa yang diterima. Berikut ini menjelaskan cara membuat Layanan Knative di konsol ACK dan kubectl.

Gunakan konsol ACK

  1. Masuk ke konsol ACK. Di panel navigasi kiri, klik Clusters.

  2. Di halaman Clusters, temukan kluster yang diinginkan dan klik namanya. Di panel navigasi kiri, pilih Applications > Knative.

  3. Klik tab Services lalu klik Create from Template untuk membuat Layanan Knative.

    Berikut ini adalah contoh kode sampel:

    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_3874dbd

    Di tab Services, jika Created ditampilkan di kolom Status Layanan Knative, Layanan Knative telah dibuat.

Gunakan kubectl

  1. Buat file bernama event-display.yaml dan salin konten berikut ke file tersebut. File ini digunakan untuk membuat Layanan Knative.

    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_3874dbd
    kubectl apply -f event-display.yaml
  2. Jalankan perintah berikut untuk memeriksa apakah Layanan Knative telah dibuat:

    kubectl get ksvc

    Output 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 pemicu

Gunakan konsol ACK

  1. Di halaman Knative, klik tab Services, lalu klik nama Layanan Knative. Di halaman yang muncul, klik tab Trigger.

  2. Klik Create Trigger. Di halaman Configure, konfigurasikan parameter berdasarkan petunjuk. Tabel berikut menjelaskan parameter tersebut.

    Parameter

    Deskripsi

    Contoh

    Name

    Masukkan nama untuk pemicu.

    my-service-trigger

    Broker

    Anda dapat memilih EventBridge atau Other.

    EventBridge

    Event Source

    Beberapa sumber peristiwa didukung.

    OSS

    Event Type

    Beberapa jenis peristiwa didukung.

    oss:ActionTrail:ConsoleOperation

    Setelah pemicu dibuat, Anda dapat melihat pemicu di tab Triggers.

    image

Gunakan kubectl

  1. Buat file bernama my-service-trigger.yaml, salin konten berikut ke file tersebut, lalu terapkan file ke kluster. File ini digunakan untuk membuat pemicu.

    apiVersion: eventing.knative.dev/v1
    kind: Trigger
    metadata:
      name: my-service-trigger
    spec:
      broker: eventbridge-default-broker
      filter:
        attributes:
          source: acs.oss
          type: 'oss:ActionTrail:ConsoleOperation'
      subscriber:
        ref:
          apiVersion: serving.knative.dev/v1
          kind: Service
          name: helloworld-go
          namespace: default
    • broker: Atur nama menjadi eventbridge-default-broker, yang sesuai dengan bus peristiwa default.

    • source: Tentukan sumber peristiwa yang didukung oleh EventBridge.

    • type: Tentukan jenis peristiwa dari sumber peristiwa. Pisahkan beberapa jenis peristiwa dengan koma (,).

    • subscriber: Tentukan layanan yang berlangganan.

    kubectl apply -f my-service-trigger.yaml
  2. Jalankan perintah berikut untuk memeriksa apakah pemicu telah dibuat:

     kubectl get triggers

    Output 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: Periksa apakah EventBridge dapat memicu Layanan Knative untuk mengonsumsi peristiwa

  1. Jalankan perintah berikut untuk mengunggah file ke OSS.

    Catatan

    Pastikan bahwa Bucket OSS dan EventBridge diterapkan di wilayah yang sama.

    ossutil cp <Nama file> oss://<Nama bucket>

    Setelah file diunggah, EventBridge memicu Layanan Knative untuk mengonsumsi peristiwa.

  2. Lihat jejak peristiwa.

    1. Masuk ke konsol EventBridge. Di panel navigasi kiri, klik Event Buses.

    2. Di halaman Bus Peristiwa, pilih peristiwa default dan klik Event Tracking di kolom Actions. Di tab Query By Time Range, konfigurasikan parameter Time Range. Klik Query.

    3. Atur Event Source menjadi OSS dan Event Type menjadi Put Object, dan klik Event Trace di kolom Operations peristiwa yang sesuai.

      image.png

      Di halaman Event Trace, Anda dapat memeriksa apakah peristiwa dikirimkan.

  3. Periksa apakah Layanan Knative mengonsumsi peristiwa.

    1. Jalankan perintah berikut untuk memeriksa apakah Layanan Knative mengonsumsi peristiwa:

      kubectl get pod

      Output yang diharapkan:

      NAME                                              READY   STATUS    RESTARTS         AGE
      event-display-00001-deployment-56cc79****-z2vhv   2/2     Running   0                7s
    2. Jalankan perintah berikut untuk melihat catatan Layanan Knative dari peristiwa:

      kubectl logs event-display-00001-deployment-56cc79****-z2vhv user-container

      Output 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"}}}}

    Output tersebut menunjukkan bahwa Layanan Knative mengonsumsi dan mencatat peristiwa unggah OSS. Ini berarti EventBridge berhasil memicu Layanan Knative untuk mengonsumsi peristiwa.

Referensi

Untuk informasi lebih lanjut tentang cara menggunakan sumber peristiwa lain untuk mengaktifkan kemampuan berbasis peristiwa, lihat Gunakan Peristiwa GitHub di Knative.