3.2. kn-event プラグインを使用したイベントの送信
kn event send コマンドを使用して、イベントを送信できます。イベントは、公開されているアドレス、または Kubernetes サービスや Knative サービス、ブローカー、チャネル等のクラスター内のアドレス指定可能なリソースのいずれかに送信できます。このコマンドは、kn event build コマンドと同じビルダーのようなインターフェイスを使用します。
前提条件
-
Knative (
kn) CLI がインストールされている。
手順
イベントの送信:
$ kn event send \ --field <field_name>=<value> \ --type <type_name> \ --id <id> \ --to <url_or_cluster_resource> \ --namespace <namespace>ここでは、以下のようになります。
-
--fieldフラグは、データをフィールド/値のペアとしてイベントに追加します。これは複数回使用できます。 -
--typeフラグを使用すると、イベントのタイプを指定する文字列を指定できます。 -
--idフラグは、イベントの ID を指定します。 -
--toフラグはイベントの宛先を指定します。 --namespaceフラグは namespace を指定します。省略すると、namespace は現在のコンテキストから取得されます。宛先の指定を除き、これらのフラグはすべてオプションです。
-
--to フラグには次の宛先形式を使用できます。
-
--to broker:<broker>: ブローカーを指定する -
--to channel:<channel>: チャネルを指定する -
--to ksvc:<service>または--to <service>: 現在の namespace 内の Knative サービスを指定する -
--to ksvc:<service>:<namespace>: 別の namespace の Knative サービスを指定する -
--to svc:<service>:<namespace>: 別の namespace の Kubernetes サービスを指定する -
--to special.eventing.dev/v1alpha1/channels:<channel>:v1alpha1チャネルのGroupVersionResourceを指定する -
--to https://example.receiver.uri: HTTP URL を指定する
接頭辞を指定しない場合、宛先はデフォルトで現在の namespace 内の Knative サービスに設定されます。
イベントを URL に送信する
$ kn event send \
--field player.id=6354aa60-ddb1-452e-8c13-24893667de20 \
--field player.game=2345 \
--field points=456 \
--type org.example.gaming.foo \
--to http://ce-api.foo.example.com/
クラスター内リソースへのイベントの送信
$ kn event send \
--type org.example.kn.ping \
--id $(uuidgen) \
--field event.type=test \
--field event.data=98765 \
--to ksvc:event-display