すべてのプロダクト
Search
ドキュメントセンター

Container Service for Kubernetes:EventBridge を使用した Knative サービスのトリガー

最終更新日:Jun 23, 2026

Knative Eventing は、外部イベントシステムの統合を簡素化する包括的なイベントモデルを提供します。ACK クラスターに Knative Eventing コンポーネントをデプロイし、トリガーを作成することで、イベント駆動の機能を有効にできます。このトピックでは、EventBridge を使用して、本番環境レベルのイベント駆動機能を Knative に追加する方法について説明します。

前提条件

仕組み

EventBridge は、さまざまなイベントソースをサポートしています。イベントバス、イベントルール、イベントターゲットを設定することで、イベントをフィルタリングおよび変換できます。これらのイベントは、Knative サービスをトリガーして消費させることができ、オンデマンドでのリソース使用量を実現します。以下の図にアーキテクチャを示します。

説明

OSS をイベントソースとして EventBridge に接続できます。OSS が EventBridge のイベントバスに発行できるイベントタイプの詳細については、「OSS イベント」をご参照ください。

ステップ 1:Eventing および EventBridge コンポーネントのデプロイ

Knative は EventBridge を使用してイベント駆動機能を提供し、Alibaba Cloud の公式イベントソースとイベント転送の両方をサポートします。

  1. ACK コンソールにログインします。左側のナビゲーションウィンドウで、クラスターリスト をクリックします。

  2. クラスターリスト ページで、対象クラスターの名前をクリックします。左側のナビゲーションウィンドウで、アプリケーション > Knative をクリックします。

  3. アドオン管理 タブで、Eventing および EventBridge コンポーネントをデプロイします。

    1. アドオン管理 タブで Eventing コンポーネントを見つけ、アクション 列の デプロイメント をクリックします。

    2. Eventing がデプロイされた後、EventBridge コンポーネントを見つけ、操作 列の デプロイメント をクリックします。ダイアログボックスで、AccessKey ID と AccessKey Secret を入力し、[OK] をクリックします。

      AccessKey ペアの取得方法については、「AccessKey ペアの作成」をご参照ください。

      説明

      RAM ユーザーのセキュリティを強化するために、コンソールへのサインイン時や機密性の高い操作を実行する際に、MFA デバイスをバインドして二次認証を行うことができます。これにより、ユーザー名とパスワードに加えて、さらなる保護レイヤーが提供されます。 詳細については、RAM ユーザーへの MFA デバイスのバインド」をご参照ください。

    コンポーネントの ステータスデプロイ済 になれば、デプロイは成功です。

ステップ 2:Knative サービスの作成

このセクションでは、受信したイベントのコンテンツをログに記録する `event-display` という名前の Knative サービスを作成します。サービスは ACK コンソールまたは kubectl を使用して作成できます。

コンソール

  1. ACK コンソールにログインします。左側のナビゲーションウィンドウで、クラスターリスト をクリックします。

  2. クラスターリスト ページで、対象クラスターの名前をクリックします。左側のナビゲーションウィンドウで、アプリケーション > 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` として保存し、`kubectl apply` コマンドを実行して 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. 次のコマンドを実行して、Knative サービスの状態を確認します。

    kubectl get ksvc

    実行結果の例:

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

ステップ 3:トリガーの作成

コンソール

  1. Knative ページで、サービス管理 タブをクリックします。対象のサービス名をクリックし、トリガー タブをクリックします。

  2. トリガーの作成 をクリックします。設定 ページで、以下のパラメーターを設定し、画面の指示に従ってトリガーを作成します。

    パラメーター

    説明

    名前

    トリガーのカスタム名。

    my-service-trigger

    Broker

    EventBridge または その他 を選択できます。

    EventBridge

    イベントソース

    複数のイベントソースがサポートされています。

    OSS

    イベントタイプ

    複数のイベントタイプがサポートされています。

    oss:ActionTrail:ConsoleOperation

    トリガーが作成されると、トリガー タブで確認できます。

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: event-display
          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://event-display.default.svc.cluster.local   42h   True    

ステップ 4:イベント消費の検証

  1. 次のコマンドを実行して、ファイルを OSS バケットにアップロードします。

    説明

    OSS バケットと EventBridge が同じリージョンにあることを確認してください。

    ossutil cp <file_name> oss://<bucket_name>

    ファイルが OSS にアップロードされると、EventBridge は Knative サービスをトリガーしてイベントを消費します。

  2. イベントトレースを表示します。

    1. EventBridge コンソールにログインします。左側のナビゲーションウィンドウで、[イベントバス] をクリックします。

    2. 表示されたページで、default イベントバスを見つけ、操作 列の イベントトレース をクリックします。時間範囲で照会 タブで 期間 を設定し、クエリ をクリックします。

    3. イベントソースObject Storage Service で、イベントタイプアップロード であるイベントを見つけます。そのイベントの アクション 列にある イベントトレース をクリックします。

      配信ステータスが Succeeded で、応答が [200] の場合、EventBridge はイベントを対象のサービスに正常に配信しています。

      イベントトレース ページで、イベントの配信ステータスを確認できます。

  3. Knative サービスがイベントを消費したことを確認します。

    1. 次のコマンドを実行して、イベントを消費するために作成された新しい Pod を確認します。

      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 にアップロードされたファイルの詳細をログに記録したことを示しています。