日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

在Knative中使用EventBridge事件驅動

Knative Eventing提供了一個完整的事件模型,方便接入各個外部系統的事件。您可以通過在ACS集群中部署Knative Eventing組件并創建觸發器,以啟用事件驅動能力。事件接入后將通過CloudEvent標準在系統內部流轉。本文介紹如何使用事件總線EventBridge為Knative提供生產級別的事件驅動能力。

前提條件

  • 已安裝ossutil并創建存儲空間(Bucket),請參見安裝ossutil創建存儲空間

  • 開通事件總線EventBridge并授權

    事件總線EventBridge是阿里云提供的一款無服務器事件總線服務,支持阿里云服務、自定義應用、SaaS應用以標準化、中心化的方式接入,并能夠以標準化的CloudEvents 1.0協議在這些應用之間路由事件,幫助您輕松構建松耦合、分布式的事件驅動架構。

功能介紹

當前EventBridge支持多種數據源接入,通過配置事件總線、事件規則、事件目標,經過事件過濾、轉換,可以觸發EventBridge事件驅動Knative服務消費事件,實現資源的按需使用。技術架構圖如下所示。

說明

對象存儲OSS支持作為事件源接入到EventBridge。關于對象存儲OSS作為事件源發布到事件總線EventBridge的事件類型,請參見對象存儲OSS事件

image

步驟一:部署Eventing和EventBridge組件

Knative提供EventBridge事件驅動能力,支持接入阿里云官方事件源以及事件轉發。

  1. 登錄容器計算服務控制臺,在左側導航欄選擇集群

  2. 集群頁面,單擊目標集群ID,然后在左側導航欄,選擇應用 > Knative

  3. 組件管理頁簽下,部署Eventing和EventBridge組件。

    1. 組件管理頁簽下,單擊Eventing組件操作列的部署

    2. Eventing部署成功后,再單擊EventBridge組件操作列的部署,在彈出的對話框,輸入AccessKey和SecretKey后單擊確定

      關于如何獲取AccessKey和SecretKey,請參見創建AccessKey

      說明

      為保證RAM用戶的賬號安全,控制臺登錄或在控制臺進行敏感操作時除使用用戶名和密碼驗證外,您還可以綁定MFA設備,用于二次身份驗證。具體操作,請參見為RAM用戶綁定MFA設備

    組件狀態顯示為已部署時,表明部署成功。

步驟二:創建Knative服務

本文以event-display作為Knative服務,該服務會直接記錄接收到的事件內容。以下介紹控制臺和kubectl兩種操作方式。

控制臺

  1. 登錄容器計算服務控制臺,在左側導航欄選擇集群

  2. 集群頁面,單擊目標集群ID,然后在左側導航欄,選擇應用 > Knative

  3. 單擊服務管理頁簽,然后單擊使用模板創建,創建一個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

  1. 參見下方示例保存event-display.yaml并部署到集群中,創建一個Knative Service。

    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. 執行以下命令,查看Knative Service是否創建成功。

    kubectl get ksvc

    預期輸出:

    NAME            URL                                        LATESTCREATED         LATESTREADY           READY   REASON
    event-display   http://event-display.default.example.com   event-display-00001   event-display-00001   True    

步驟三:創建觸發器

控制臺

  1. Knative頁面的服務管理頁簽下,單擊目標服務名稱,然后單擊觸發器頁簽。

  2. 單擊創建觸發器,在配置頁面設置如下配置項,按照頁面提示完成觸發器的創建。

    配置項

    說明

    示例值

    名稱

    自定義。

    my-service-trigger

    Broker

    支持選擇EventBridge其他

    EventBridge

    事件源

    支持多種事件源。

    OSS

    事件類型

    支持多種事件類型。

    oss:ActionTrail:ConsoleOperation

    創建完成之后,可在觸發器頁簽下查看。

    image

kubectl

  1. 參見下方示例創建my-service-trigger.yaml并部署到集群中,創建一個觸發器。

    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:名稱為eventbridge-default-broker,對應EventBridge中默認的事件總線(default)。

    • source:EventBridge支持的事件源。

    • type:事件源對應的事件類型,多個事件類型以英文半角逗號,分割。

    • subscriber:對應所訂閱的服務。

    kubectl apply -f my-service-trigger.yaml
  2. 執行以下命令,查看觸發器是否創建成功。

     kubectl get triggers

    預期輸出:

    NAME                         BROKER                       SUBSCRIBER_URI                                   AGE   READY   REASON
    my-service-trigger           eventbridge-default-broker   http://helloworld-go.default.svc.cluster.local   42h   True   

步驟四:驗證通過EventBridge觸發Knative服務消費事件是否成功

在執行以下操作前,請確認您已安裝ossutil。

  1. 執行以下命令,上傳文件到OSS。

    說明

    OSS Bucket需要與Eventbridge處于同一個地域。

    ossutil cp <文件名稱> oss://<Bucket名稱>

    上傳文件到OSS后,EventBridge將觸發Knative服務消費事件。

  2. 查看事件軌跡。

    1. 登錄事件總線EventBridge控制臺,在左側導航欄,單擊事件總線
    2. 在右側頁面單擊default事件操作列下的事件追蹤,然后在按時間范圍查詢頁簽,設置時間范圍,單擊查詢

    3. 選擇事件源對象存儲OSS事件類型上傳文件的事件,單擊該事件操作列的事件軌跡

      image.png

      事件軌跡頁面,可以查看事件投遞是否成功。

  3. 驗證Knative服務是否消費事件成功。

    1. 執行以下命令,查看Knative服務是否成功消費事件。

      kubectl get  pod

      預期輸出:

      NAME                                              READY   STATUS    RESTARTS         AGE
      event-display-00001-deployment-56cc79****-z2vhv   2/2     Running   0                7s
    2. 執行以下命令,查看Knative服務是否記錄事件。

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

      預期輸出:

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

    預期輸出表明,Knative服務消費事件成功,并且記錄了上傳文件到OSS的事件,即通過EventBridge觸發Knative服務消費事件成功。

相關文檔

關于如何結合其他事件源實現事件驅動,請參見在Knative中使用GitHub事件源