コンテンツへスキップ

検出性を向上させるためのEventTypeの自動作成

フラグ名: eventtype-auto-create

ステージ: アルファ、デフォルトで無効

追跡issue: #7044

ペルソナ: 開発者

概要

eventtype-auto-creation機能により、Knative BrokerおよびChannelの実装によって受信およびイングレスされるEventTypeを自動作成できます。

このオプトイン機能を利用するには、config-featureseventtype-auto-createフラグをenabledに設定して有効にする必要があります。

apiVersion: v1
kind: ConfigMap
metadata:
  name: config-features
  namespace: knative-eventing
data:
  eventtype-auto-create: "enabled"
...

この機能を有効にすると、BrokerまたはChannel APIとやり取りするアプリケーションコードに沿ってYAMLマニフェストとして手動で作成する代わりに、ブローカー/チャネルイングレスでEventTypeを無料で取得できます。

Brokerの作成

機能が動作しているかを確認するには、単純なブローカーを作成します

kn broker create my-broker
  1. 次の例を使用してYAMLファイルを作成します

    apiVersion: eventing.knative.dev/v1
    kind: Broker
    metadata:
      namespace: default
      name: my-broker
    
  2. コマンドを実行してYAMLファイルを適用します

    kubectl apply -f <filename>.yaml
    
    ここで、<filename>は前の手順で作成したファイルの名前です。

Brokerへのイベントの生成

自動作成機能は、処理されたイベントによってトリガーされます。したがって、機能を検証するには、目的のタイプでサンプルイベントを送信する必要があります。これはいくつかの方法で実現できます。以下に、クラスター内のkn-plugin-eventおよびcURLコンテナを使用した2つの例を示します。

以下は、開発者の生産性を向上させるために、kn CLIでイベントを送信する例です。kn-plugin-eventプラグインは、Homebrewでインストールするか、GitHubリリースから直接ダウンロードできます。詳細については、プラグインのインストール手順を参照してください。

  1. kn eventプラグインのセットアップ

    brew install knative-extensions/kn-plugins/event
    

  2. イベントの送信

    kn event send \
      --to Broker:eventing.knative.dev/v1:my-broker\
      --type com.corp.integration.warning \
      -f message="There might be a problem"
    

クラスター内のcurlを介してイベントを送信できます。

kubectl run curl  --image=docker.io/curlimages/curl --rm=true --restart=Never -ti \
  -- -X POST -v \
  -H "content-type: application/json" \
  -H "ce-specversion: 1.0" \
  -H "ce-source: my/curl/command" \
  -H "ce-type: my.demo.event" \
  -H "ce-id: 6cf17c7b-30b1-45a6-80b0-4cf58c92b947" \
  -d '{"name":"Knative Demo"}' \
  http://broker-ingress.knative-eventing.svc.cluster.local/default/my-broker
これは、curl HTTP POSTリクエストの一部としてイベントを作成する必要があるため、より複雑です。

イベントの検出

2つのイベントを生成した後、eventtype-auto-creation機能に基づいて、システム内で検出可能なイベントが存在するはずです。

k get eventtypes.eventing.knative.dev -A 
NAMESPACE   NAME     TYPE                           SOURCE            SCHEMA   BROKER      DESCRIPTION   READY   REASON
default     <...>    com.corp.integration.warning   kn-event/v1.9.0            my-broker                 True    
default     <...>    my.demo.event                  my/curl/command            my-broker                 True    

結論と推奨事項

この機能がないと、システム内に2つのEventTypeインスタンスが表示されないため、消費のためにイベントの検出性が向上しました。ただし、このオプトイン機能は自動イベント作成に便利ですが、この自動作成機能に依存するのではなく、アプリケーションデプロイメントが生成するすべてのイベントについて、実際のEventTypeマニフェストをGitOpsパイプラインの一部として作成することを強く推奨します。

私たちは、サイトのトラフィックを理解するために、分析とクッキーを使用します。サイトの利用に関する情報は、その目的のためにGoogleと共有されます。詳細はこちら。