This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.5.2. イベントソース
5.2.1. イベントソース リンクのコピーリンクがクリップボードにコピーされました!
Knative イベントソース には、クラウドイベントの生成またはインポート、これらのイベントの別のエンドポイントへのリレー (sink とも呼ばれる) を行う Kubernetes オブジェクトを指定できます。イベントに対応する分散システムを開発するには、イベントのソースが重要になります。
					OpenShift Container Platform Web コンソールの Developer パースペクティブ、Knative (kn) CLI を使用するか、YAML ファイルを適用することで、Knative イベントソースを作成および管理できます。
				
現時点で、OpenShift Serverless は以下のイベントソースタイプをサポートします。
- API サーバーソース
 - Kubernetes API サーバーイベントを Knative に送ります。API サーバーソースは、Kubernetes リソースが作成、更新、または削除されるたびに新規イベントを送信します。
 - Ping ソース
 - 指定された cron スケジュールに、固定ペイロードを使用してイベントを生成します。
 - Kafka イベントソース
 - Kafka クラスターをイベントソースとしてシンクに接続します。
 
カスタムイベントソース を作成することもできます。
5.2.2. Administrator パースペクティブのイベントソース リンクのコピーリンクがクリップボードにコピーされました!
イベントに対応する分散システムを開発するには、イベントのソースが重要になります。
5.2.2.1. Administrator パースペクティブを使用したイベントソースの作成 リンクのコピーリンクがクリップボードにコピーされました!
Knative イベントソース には、クラウドイベントの生成またはインポート、これらのイベントの別のエンドポイントへのリレー (sink とも呼ばれる) を行う Kubernetes オブジェクトを指定できます。
前提条件
- OpenShift Serverless Operator および Knative Eventing が OpenShift Container Platform クラスターにインストールされている。
 - Web コンソールにログインしており、Administrator パースペクティブを使用している。
 - OpenShift Container Platform のクラスター管理者パーミッションがある。
 
手順
- 
								OpenShift Container Platform Web コンソールの Administrator パースペクティブで、 Serverless 
Eventing に移動します。  - Create 一覧で、Event Source を選択します。Event Sources ページに移動します。
 - 作成するイベントソースタイプを選択します。
 
5.2.3. API サーバーソースの作成 リンクのコピーリンクがクリップボードにコピーされました!
API サーバーソースは、Knative サービスなどのイベントシンクを Kubernetes API サーバーに接続するために使用できるイベントソースです。API サーバーソースは Kubernetes イベントを監視し、それらを Knative Eventing ブローカーに転送します。
5.2.3.1. Web コンソールを使用した API サーバーソースの作成 リンクのコピーリンクがクリップボードにコピーされました!
Knative Eventing がクラスターにインストールされると、Web コンソールを使用して API サーバーソースを作成できます。OpenShift Container Platform Web コンソールを使用すると、イベントソースを作成するための合理的で直感的なユーザーインターフェイスが提供されます。
前提条件
- OpenShift Container Platform Web コンソールにログインしている。
 - OpenShift Serverless Operator および Knative Eventing がクラスターにインストールされている。
 - OpenShift Container Platform でアプリケーションおよび他のワークロードを作成するために、プロジェクトを作成しているか、適切なロールおよびパーミッションを持つプロジェクトにアクセスできる。
 - 
								OpenShift CLI (
oc) がインストールされている。 
							既存のサービスアカウントを再利用する必要がある場合には、既存の ServiceAccount リソースを変更して、新規リソースを作成せずに、必要なパーミッションを含めることができます。
						
イベントソースのサービスアカウント、ロールおよびロールバインディングを YAML ファイルとして作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow YAML ファイルを適用します。
oc apply -f <filename>
$ oc apply -f <filename>Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 
								Developer パースペクティブで、+Add 
Event Source に移動します。Event Sources ページが表示されます。  - オプション: イベントソースに複数のプロバイダーがある場合は、Providers 一覧から必要なプロバイダーを選択し、プロバイダーから利用可能なイベントソースをフィルターします。
 - ApiServerSource を選択してから Create Event Source をクリックします。Create Event Source ページが表示されます。
 Form view または YAML view を使用して、ApiServerSource 設定を設定します。
注記Form view と YAML view 間で切り換えることができます。ビューの切り替え時に、データは永続化されます。
- 
										APIVERSION に 
v1を、KIND にEventを入力します。 - 作成したサービスアカウントの Service Account Name を選択します。
 - イベントソースの Sink を選択します。Sink は、チャネル、ブローカー、またはサービスなどの Resource、または URI のいずれかになります。
 
- 
										APIVERSION に 
 - Create をクリックします。
 
検証
API サーバーソースの作成後、これが Topology ビューでシンクされるサービスに接続されていることを確認できます。
							URI シンクが使用される場合、URI sink 
API サーバーソースの削除
- Topology ビューに移動します。
 API サーバーソースを右クリックし、Delete ApiServerSource を選択します。
5.2.3.2. Knative CLI を使用した API サーバーソースの作成 リンクのコピーリンクがクリップボードにコピーされました!
						kn source apiserver create コマンドを使用し、kn CLI を使用して API サーバーソースを作成できます。API サーバーソースを作成するために kn CLI を使用すると、YAML ファイルを直接修正するよりも合理的で直感的なユーザーインターフェイスが得られます。
					
前提条件
- OpenShift Serverless Operator および Knative Eventing がクラスターにインストールされている。
 - OpenShift Container Platform でアプリケーションおよび他のワークロードを作成するために、プロジェクトを作成しているか、適切なロールおよびパーミッションを持つプロジェクトにアクセスできる。
 - 
								OpenShift CLI (
oc) がインストールされている。 - 
								Knative (
kn) CLI をインストールしている。 
							既存のサービスアカウントを再利用する必要がある場合には、既存の ServiceAccount リソースを変更して、新規リソースを作成せずに、必要なパーミッションを含めることができます。
						
イベントソースのサービスアカウント、ロールおよびロールバインディングを YAML ファイルとして作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow YAML ファイルを適用します。
oc apply -f <filename>
$ oc apply -f <filename>Copy to Clipboard Copied! Toggle word wrap Toggle overflow イベントシンクを持つ API サーバーソースを作成します。次の例では、シンクはブローカーです。
kn source apiserver create <event_source_name> --sink broker:<broker_name> --resource "event:v1" --service-account <service_account_name> --mode Resource
$ kn source apiserver create <event_source_name> --sink broker:<broker_name> --resource "event:v1" --service-account <service_account_name> --mode ResourceCopy to Clipboard Copied! Toggle word wrap Toggle overflow API サーバーソースが正しく設定されていることを確認するには、受信メッセージをログにダンプする Knative サービスを作成します。
kn service create <service_name> --image quay.io/openshift-knative/knative-eventing-sources-event-display:latest
$ kn service create <service_name> --image quay.io/openshift-knative/knative-eventing-sources-event-display:latestCopy to Clipboard Copied! Toggle word wrap Toggle overflow ブローカーをイベントシンクとして使用した場合は、トリガーを作成して、
defaultのブローカーからサービスへのイベントをフィルターリングします。kn trigger create <trigger_name> --sink ksvc:<service_name>
$ kn trigger create <trigger_name> --sink ksvc:<service_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow デフォルト namespace で Pod を起動してイベントを作成します。
oc create deployment hello-node --image quay.io/openshift-knative/knative-eventing-sources-event-display:latest
$ oc create deployment hello-node --image quay.io/openshift-knative/knative-eventing-sources-event-display:latestCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを入力し、生成される出力を検査して、コントローラーが正しくマップされていることを確認します。
kn source apiserver describe <source_name>
$ kn source apiserver describe <source_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 
検証
メッセージダンパー機能ログを確認して、Kubernetes イベントが Knative に送信されていることを確認できます。
Pod を取得します。
oc get pods
$ oc get podsCopy to Clipboard Copied! Toggle word wrap Toggle overflow Pod のメッセージダンパー機能ログを表示します。
oc logs $(oc get pod -o name | grep event-display) -c user-container
$ oc logs $(oc get pod -o name | grep event-display) -c user-containerCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 
API サーバーソースの削除
トリガーを削除します。
kn trigger delete <trigger_name>
$ kn trigger delete <trigger_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow イベントソースを削除します。
kn source apiserver delete <source_name>
$ kn source apiserver delete <source_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow サービスアカウント、クラスターロール、およびクラスターバインディングを削除します。
oc delete -f authentication.yaml
$ oc delete -f authentication.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 
5.2.3.2.1. Knative CLI シンクフラグ リンクのコピーリンクがクリップボードにコピーされました!
							Knative (kn) CLI を使用してイベントソースを作成する場合、--sink フラグを使用して、イベントがリソースから送信されるシンクを指定できます。シンクは、他のリソースから受信イベントを受信できる、アドレス指定可能または呼び出し可能な任意のリソースです。
						
							以下の例では、サービスの http://event-display.svc.cluster.local をシンクとして使用するシンクバインディングを作成します。
						
シンクフラグを使用したコマンドの例
kn source binding create bind-heartbeat \ --namespace sinkbinding-example \ --subject "Job:batch/v1:app=heartbeat-cron" \ --sink http://event-display.svc.cluster.local \ --ce-override "sink=bound"
$ kn source binding create bind-heartbeat \
  --namespace sinkbinding-example \
  --subject "Job:batch/v1:app=heartbeat-cron" \
  --sink http://event-display.svc.cluster.local \ 
  --ce-override "sink=bound"
- 1
 http://event-display.svc.cluster.localのsvcは、シンクが Knative サービスであることを判別します。他のデフォルトのシンクの接頭辞には、channelおよびbrokerが含まれます。
5.2.3.3. YAML ファイルを使用した API サーバーソースの作成 リンクのコピーリンクがクリップボードにコピーされました!
						YAML ファイルを使用して Knative リソースを作成する場合、宣言的 API を使用するため、再現性の高い方法でイベントソースを宣言的に記述することができます。YAML を使用して API サーバーソースを作成するには、ApiServerSource オブジェクトを定義する YAML ファイルを作成し、oc apply コマンドを使用してそれを適用する必要があります。
					
前提条件
- OpenShift Serverless Operator および Knative Eventing がクラスターにインストールされている。
 - OpenShift Container Platform でアプリケーションおよび他のワークロードを作成するために、プロジェクトを作成しているか、適切なロールおよびパーミッションを持つプロジェクトにアクセスできる。
 - 
								API サーバーソース YAML ファイルで定義されるものと同じ namespace に 
defaultブローカーを作成している。 - 
								OpenShift CLI (
oc) をインストールしている。 
							既存のサービスアカウントを再利用する必要がある場合には、既存の ServiceAccount リソースを変更して、新規リソースを作成せずに、必要なパーミッションを含めることができます。
						
イベントソースのサービスアカウント、ロールおよびロールバインディングを YAML ファイルとして作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow YAML ファイルを適用します。
oc apply -f <filename>
$ oc apply -f <filename>Copy to Clipboard Copied! Toggle word wrap Toggle overflow API サーバーソースを YAML ファイルとして作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ApiServerSourceYAML ファイルを適用します。oc apply -f <filename>
$ oc apply -f <filename>Copy to Clipboard Copied! Toggle word wrap Toggle overflow API サーバーソースが正しく設定されていることを確認するには、受信メッセージをログにダンプする Knative サービスを YAML ファイルとして作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ServiceYAML ファイルを適用します。oc apply -f <filename>
$ oc apply -f <filename>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 直接の手順で作成下サービスに、
defaultブローカーからイベントをフィルターするTriggerオブジェクトを YAML ファイルとして作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow TriggerYAML ファイルを適用します。oc apply -f <filename>
$ oc apply -f <filename>Copy to Clipboard Copied! Toggle word wrap Toggle overflow デフォルト namespace で Pod を起動してイベントを作成します。
oc create deployment hello-node --image=quay.io/openshift-knative/knative-eventing-sources-event-display
$ oc create deployment hello-node --image=quay.io/openshift-knative/knative-eventing-sources-event-displayCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを入力し、出力を検査して、コントローラーが正しくマップされていることを確認します。
oc get apiserversource.sources.knative.dev testevents -o yaml
$ oc get apiserversource.sources.knative.dev testevents -o yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 
検証
Kubernetes イベントが Knative に送信されていることを確認するには、メッセージダンパー機能ログを確認します。
以下のコマンドを入力して Pod を取得します。
oc get pods
$ oc get podsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを入力して、Pod のメッセージダンパー機能ログを表示します。
oc logs $(oc get pod -o name | grep event-display) -c user-container
$ oc logs $(oc get pod -o name | grep event-display) -c user-containerCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 
API サーバーソースの削除
トリガーを削除します。
oc delete -f trigger.yaml
$ oc delete -f trigger.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow イベントソースを削除します。
oc delete -f k8s-events.yaml
$ oc delete -f k8s-events.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow サービスアカウント、クラスターロール、およびクラスターバインディングを削除します。
oc delete -f authentication.yaml
$ oc delete -f authentication.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 
5.2.4. ping ソースの作成 リンクのコピーリンクがクリップボードにコピーされました!
ping ソースは、一定のペイロードを使用して ping イベントをイベントコンシューマーに定期的に送信するために使用されるイベントソースです。ping ソースを使用すると、タイマーと同様にイベントの送信をスケジュールできます。
5.2.4.1. Web コンソールを使用した ping ソースの作成 リンクのコピーリンクがクリップボードにコピーされました!
Knative Eventing がクラスターにインストールされると、Web コンソールを使用して ping ソースを作成できます。OpenShift Container Platform Web コンソールを使用すると、イベントソースを作成するための合理的で直感的なユーザーインターフェイスが提供されます。
前提条件
- OpenShift Container Platform Web コンソールにログインしている。
 - OpenShift Serverless Operator、Knative Serving、および Knative Eventing がクラスターにインストールされている。
 - OpenShift Container Platform でアプリケーションおよび他のワークロードを作成するために、プロジェクトを作成しているか、適切なロールおよびパーミッションを持つプロジェクトにアクセスできる。
 
手順
PingSource が機能していることを確認するには、受信メッセージをサービスのログにダンプする単純な Knative サービスを作成します。
- 
										Developer パースペクティブで、+Add 
YAML に移動します。  サンプル YAML をコピーします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Create をクリックします。
 
- 
										Developer パースペクティブで、+Add 
 直前の手順で作成したサービスと同じ namespace、またはイベントの送信先となる他のシンクと同じ namespace に ping ソースを作成します。
- 
										Developer パースペクティブで、+Add 
Event Source に移動します。Event Sources ページが表示されます。  - オプション: イベントソースに複数のプロバイダーがある場合は、Providers 一覧から必要なプロバイダーを選択し、プロバイダーから利用可能なイベントソースをフィルターします。
 Ping Source を選択してから Create Event Source をクリックします。Create Event Source ページが表示されます。
注記Form view または YAML view を使用して PingSource 設定を設定し、これらのビューを切り換えることができます。ビューの切り替え時に、データは永続化されます。
- 
										Schedule の値を入力します。この例では、値は 
*/2 * * * *であり、2 分ごとにメッセージを送信する PingSource を作成します。 - オプション: Data の値を入力できます。これはメッセージのペイロードです。
 - 
										Sink を選択します。これは Resource または URI のいずれかになります。この例では、直前の手順で作成された 
event-displayサービスが Resources シンクとして使用されます。 - Create をクリックします。
 
- 
										Developer パースペクティブで、+Add 
 
検証
Topology ページを表示して、ping ソースが作成され、シンクに接続されていることを確認できます。
- Developer パースペクティブで、Topology に移動します。
 ping ソースおよびシンクを表示します。
ping ソースの削除
- Topology ビューに移動します。
 - API サーバーソースを右クリックし、Delete Ping Source を選択します。
 
5.2.4.2. Knative CLI を使用した ping ソースの作成 リンクのコピーリンクがクリップボードにコピーされました!
						kn source ping create コマンドを使用し、Knative (kn) CLI を使用して ping ソースを作成できます。イベントソースを作成するために Knative CLI を使用すると、YAML ファイルを直接修正するよりも合理的で直感的なユーザーインターフェイスが得られます。
					
前提条件
- OpenShift Serverless Operator、Knative Serving、および Knative Eventing がクラスターにインストールされている。
 - 
								Knative (
kn) CLI をインストールしている。 - OpenShift Container Platform でアプリケーションおよび他のワークロードを作成するために、プロジェクトを作成しているか、適切なロールおよびパーミッションを持つプロジェクトにアクセスできる。
 - 
								オプション: この手順の検証手順を使用する場合は、OpenShift CLI (
oc) をインストールします。 
手順
ping ソースが機能していることを確認するには、受信メッセージをサービスのログにダンプする単純な Knative サービスを作成します。
kn service create event-display \ --image quay.io/openshift-knative/knative-eventing-sources-event-display:latest$ kn service create event-display \ --image quay.io/openshift-knative/knative-eventing-sources-event-display:latestCopy to Clipboard Copied! Toggle word wrap Toggle overflow 要求する必要のある ping イベントのセットごとに、PingSource をイベントコンシューマーと同じ namespace に作成します。
kn source ping create test-ping-source \ --schedule "*/2 * * * *" \ --data '{"message": "Hello world!"}' \ --sink ksvc:event-display$ kn source ping create test-ping-source \ --schedule "*/2 * * * *" \ --data '{"message": "Hello world!"}' \ --sink ksvc:event-displayCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを入力し、出力を検査して、コントローラーが正しくマップされていることを確認します。
kn source ping describe test-ping-source
$ kn source ping describe test-ping-sourceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 
検証
シンク Pod のログを確認して、Kubernetes イベントが Knative イベントに送信されていることを確認できます。
デフォルトで、Knative サービスは、トラフィックが 60 秒以内に受信されない場合に Pod を終了します。本書の例では、新たに作成される Pod で各メッセージが確認されるように 2 分ごとにメッセージを送信する ping ソースを作成します。
作成された新規 Pod を監視します。
watch oc get pods
$ watch oc get podsCopy to Clipboard Copied! Toggle word wrap Toggle overflow Ctrl+C を使用して Pod の監視をキャンセルし、作成された Pod のログを確認します。
oc logs $(oc get pod -o name | grep event-display) -c user-container
$ oc logs $(oc get pod -o name | grep event-display) -c user-containerCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 
ping ソースの削除
ping ソースを削除します。
kn delete pingsources.sources.knative.dev <ping_source_name>
$ kn delete pingsources.sources.knative.dev <ping_source_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 
5.2.4.2.1. Knative CLI シンクフラグ リンクのコピーリンクがクリップボードにコピーされました!
							Knative (kn) CLI を使用してイベントソースを作成する場合、--sink フラグを使用して、イベントがリソースから送信されるシンクを指定できます。シンクは、他のリソースから受信イベントを受信できる、アドレス指定可能または呼び出し可能な任意のリソースです。
						
							以下の例では、サービスの http://event-display.svc.cluster.local をシンクとして使用するシンクバインディングを作成します。
						
シンクフラグを使用したコマンドの例
kn source binding create bind-heartbeat \ --namespace sinkbinding-example \ --subject "Job:batch/v1:app=heartbeat-cron" \ --sink http://event-display.svc.cluster.local \ --ce-override "sink=bound"
$ kn source binding create bind-heartbeat \
  --namespace sinkbinding-example \
  --subject "Job:batch/v1:app=heartbeat-cron" \
  --sink http://event-display.svc.cluster.local \ 
  --ce-override "sink=bound"
- 1
 http://event-display.svc.cluster.localのsvcは、シンクが Knative サービスであることを判別します。他のデフォルトのシンクの接頭辞には、channelおよびbrokerが含まれます。
5.2.4.3. YAML を使用した ping ソースの作成 リンクのコピーリンクがクリップボードにコピーされました!
						YAML ファイルを使用して Knative リソースを作成する場合、宣言的 API を使用するため、再現性の高い方法でイベントソースを宣言的に記述することができます。YAML を使用してサーバーレス ping を作成するには、PingSource オブジェクトを定義する YAML ファイルを作成し、oc apply を使用してこれを適用する必要があります。
					
PingSource オブジェクトの例
前提条件
- OpenShift Serverless Operator、Knative Serving、および Knative Eventing がクラスターにインストールされている。
 - 
								OpenShift CLI (
oc) をインストールしている。 - OpenShift Container Platform でアプリケーションおよび他のワークロードを作成するために、プロジェクトを作成しているか、適切なロールおよびパーミッションを持つプロジェクトにアクセスできる。
 
手順
ping ソースが機能していることを確認するには、受信メッセージをサービスのログにダンプする単純な Knative サービスを作成します。
サービス YAML ファイルを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow サービスを作成します。
oc apply -f <filename>
$ oc apply -f <filename>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 
要求する必要のある ping イベントのセットごとに、ping ソースをイベントコンシューマーと同じ namespace に作成します。
ping ソースの YAML ファイルを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ping ソースを作成します。
oc apply -f <filename>
$ oc apply -f <filename>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 
以下のコマンドを入力し、コントローラーが正しくマップされていることを確認します。
oc get pingsource.sources.knative.dev <ping_source_name> -oyaml
$ oc get pingsource.sources.knative.dev <ping_source_name> -oyamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 
検証
シンク Pod のログを確認して、Kubernetes イベントが Knative イベントに送信されていることを確認できます。
デフォルトで、Knative サービスは、トラフィックが 60 秒以内に受信されない場合に Pod を終了します。本書の例では、新たに作成される Pod で各メッセージが確認されるように 2 分ごとにメッセージを送信する PingSource を作成します。
作成された新規 Pod を監視します。
watch oc get pods
$ watch oc get podsCopy to Clipboard Copied! Toggle word wrap Toggle overflow Ctrl+C を使用して Pod の監視をキャンセルし、作成された Pod のログを確認します。
oc logs $(oc get pod -o name | grep event-display) -c user-container
$ oc logs $(oc get pod -o name | grep event-display) -c user-containerCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 
ping ソースの削除
ping ソースを削除します。
oc delete -f <filename>
$ oc delete -f <filename>Copy to Clipboard Copied! Toggle word wrap Toggle overflow コマンドの例
oc delete -f ping-source.yaml
$ oc delete -f ping-source.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 
5.2.5. Kafka ソース リンクのコピーリンクがクリップボードにコピーされました!
					Apache Kafka クラスターからイベントを読み取り、これらのイベントをシンクに渡す Kafka ソースを作成できます。Kafka ソースを作成するには、OpenShift Container Platform Web コンソールの Knative (kn)CLI を使用するか、KafkaSource オブジェクトを YAML ファイルとして直接作成し、OpenShift CLI (oc) を使用して適用します。
				
5.2.5.1. Web コンソールを使用した Kafka イベントソースの作成 リンクのコピーリンクがクリップボードにコピーされました!
Knative Kafka をクラスターにインストールした後、Web コンソールを使用して Kafka ソースを作成できます。OpenShift Container Platform Web コンソールを使用すると、Kafka ソースを作成するための合理的で直感的なユーザーインターフェイスが提供されます。
前提条件
- 
								OpenShift Serverless Operator、Knative Serving、および 
KnativeKafkaカスタムリソースがクラスターにインストールされている。 - Web コンソールにログインしている。
 - インポートする Kafka メッセージを生成する Red Hat AMQ Streams (Kafka) クラスターにアクセスできる。
 - OpenShift Container Platform でアプリケーションおよび他のワークロードを作成するために、プロジェクトを作成しているか、適切なロールおよびパーミッションを持つプロジェクトにアクセスできる。
 
手順
- Developer パースペクティブで、+Add ページに移動し、Event Source を選択します。
 - Event Sources ページで、Type セクションの Kafka Source を選択します。
 Kafka Source 設定を設定します。
- ブートストラップサーバー のコンマ区切りの一覧を追加します。
 - トピック のコンマ区切りの一覧を追加します。
 - コンシューマーグループ を追加します。
 - 作成したサービスアカウントの Service Account Name を選択します。
 - イベントソースの Sink を選択します。Sink は、チャネル、ブローカー、またはサービスなどの Resource、または URI のいずれかになります。
 - Kafka イベントソースの Name を入力します。
 
- Create をクリックします。
 
検証
Topology ページを表示して、Kafka イベントソースが作成され、シンクに接続されていることを確認できます。
- Developer パースペクティブで、Topology に移動します。
 Kafka イベントソースおよびシンクを表示します。
5.2.5.2. Knative CLI を使用した Kafka イベントソースの作成 リンクのコピーリンクがクリップボードにコピーされました!
						kn source kafka create コマンドを使用し、Knative (kn) CLI を使用して Kafka ソースを作成できます。イベントソースを作成するために Knative CLI を使用すると、YAML ファイルを直接修正するよりも合理的で直感的なユーザーインターフェイスが得られます。
					
前提条件
- 
								OpenShift Serverless Operator、Knative Eventing、Knative Serving、および 
KnativeKafkaカスタムリソース (CR) がクラスターにインストールされている。 - OpenShift Container Platform でアプリケーションおよび他のワークロードを作成するために、プロジェクトを作成しているか、適切なロールおよびパーミッションを持つプロジェクトにアクセスできる。
 - インポートする Kafka メッセージを生成する Red Hat AMQ Streams (Kafka) クラスターにアクセスできる。
 - 
								Knative (
kn) CLI をインストールしている。 - 
								オプション: この手順で検証ステップを使用する場合は、OpenShift CLI (
oc) をインストールします。 
手順
Kafka イベントソースが機能していることを確認するには、受信メッセージをサービスのログにダンプする Knative サービスを作成します。
kn service create event-display \ --image quay.io/openshift-knative/knative-eventing-sources-event-display$ kn service create event-display \ --image quay.io/openshift-knative/knative-eventing-sources-event-displayCopy to Clipboard Copied! Toggle word wrap Toggle overflow KafkaSourceCR を作成します。kn source kafka create <kafka_source_name> \ --servers <cluster_kafka_bootstrap>.kafka.svc:9092 \ --topics <topic_name> --consumergroup my-consumer-group \ --sink event-display$ kn source kafka create <kafka_source_name> \ --servers <cluster_kafka_bootstrap>.kafka.svc:9092 \ --topics <topic_name> --consumergroup my-consumer-group \ --sink event-displayCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記このコマンドのプレースホルダー値は、ソース名、ブートストラップサーバー、およびトピックの値に置き換えます。
--servers、--topics、および--consumergroupオプションは、Kafka クラスターへの接続パラメーターを指定します。--consumergroupオプションは任意です。オプション: 作成した
KafkaSourceCR の詳細を表示します。kn source kafka describe <kafka_source_name>
$ kn source kafka describe <kafka_source_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 
検証手順
Kafka インスタンスをトリガーし、メッセージをトピックに送信します。
oc -n kafka run kafka-producer \ -ti --image=quay.io/strimzi/kafka:latest-kafka-2.7.0 --rm=true \ --restart=Never -- bin/kafka-console-producer.sh \ --broker-list <cluster_kafka_bootstrap>:9092 --topic my-topic$ oc -n kafka run kafka-producer \ -ti --image=quay.io/strimzi/kafka:latest-kafka-2.7.0 --rm=true \ --restart=Never -- bin/kafka-console-producer.sh \ --broker-list <cluster_kafka_bootstrap>:9092 --topic my-topicCopy to Clipboard Copied! Toggle word wrap Toggle overflow プロンプトにメッセージを入力します。このコマンドは、以下を前提とします。
- 
										Kafka クラスターが 
kafkanamespace にインストールされている。 - 
										
KafkaSourceオブジェクトは、my-topicトピックを使用するように設定されている。 
- 
										Kafka クラスターが 
 ログを表示して、メッセージが到達していることを確認します。
oc logs $(oc get pod -o name | grep event-display) -c user-container
$ oc logs $(oc get pod -o name | grep event-display) -c user-containerCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 
5.2.5.2.1. Knative CLI シンクフラグ リンクのコピーリンクがクリップボードにコピーされました!
							Knative (kn) CLI を使用してイベントソースを作成する場合、--sink フラグを使用して、イベントがリソースから送信されるシンクを指定できます。シンクは、他のリソースから受信イベントを受信できる、アドレス指定可能または呼び出し可能な任意のリソースです。
						
							以下の例では、サービスの http://event-display.svc.cluster.local をシンクとして使用するシンクバインディングを作成します。
						
シンクフラグを使用したコマンドの例
kn source binding create bind-heartbeat \ --namespace sinkbinding-example \ --subject "Job:batch/v1:app=heartbeat-cron" \ --sink http://event-display.svc.cluster.local \ --ce-override "sink=bound"
$ kn source binding create bind-heartbeat \
  --namespace sinkbinding-example \
  --subject "Job:batch/v1:app=heartbeat-cron" \
  --sink http://event-display.svc.cluster.local \ 
  --ce-override "sink=bound"
- 1
 http://event-display.svc.cluster.localのsvcは、シンクが Knative サービスであることを判別します。他のデフォルトのシンクの接頭辞には、channelおよびbrokerが含まれます。
5.2.5.3. YAML を使用した Kafka イベントソースの作成 リンクのコピーリンクがクリップボードにコピーされました!
						YAML ファイルを使用して Knative リソースを作成する場合、宣言的 API を使用するため、再現性の高い方法でアプリケーションを宣言的に記述することができます。YAML を使用して Kafka ソースを作成するには、KafkaSource オブジェクトを定義する YAML ファイルを作成し、oc apply コマンドを使用してそれを適用する必要があります。
					
前提条件
- 
								OpenShift Serverless Operator、Knative Serving、および 
KnativeKafkaカスタムリソースがクラスターにインストールされている。 - OpenShift Container Platform でアプリケーションおよび他のワークロードを作成するために、プロジェクトを作成しているか、適切なロールおよびパーミッションを持つプロジェクトにアクセスできる。
 - インポートする Kafka メッセージを生成する Red Hat AMQ Streams (Kafka) クラスターにアクセスできる。
 - 
								OpenShift CLI (
oc) をインストールしている。 
手順
KafkaSourceオブジェクトを YAML ファイルとして作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要OpenShift Serverless 上の
KafkaSourceオブジェクトの API のv1beta1バージョンのみがサポートされます。非推奨となったv1alpha1バージョンの API は使用しないでください。KafkaSourceオブジェクトの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow KafkaSourceYAML ファイルを適用します。oc apply -f <filename>
$ oc apply -f <filename>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 
検証
以下のコマンドを入力して、Kafka イベントソースが作成されたことを確認します。
oc get pods
$ oc get podsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME READY STATUS RESTARTS AGE kafkasource-kafka-source-5ca0248f-... 1/1 Running 0 13m
NAME READY STATUS RESTARTS AGE kafkasource-kafka-source-5ca0248f-... 1/1 Running 0 13mCopy to Clipboard Copied! Toggle word wrap Toggle overflow 
5.2.5.4. Kafka ソースの SASL 認証の設定 リンクのコピーリンクがクリップボードにコピーされました!
Simple Authentication and Security Layer (SASL) は、Apache Kafka が認証に使用します。クラスターで SASL 認証を使用する場合、ユーザーは Kafka クラスターと通信するために Knative に認証情報を提供する必要があります。そうしないと、イベントを生成または消費できません。
前提条件
- OpenShift Container Platform でクラスターまたは専用の管理者パーミッションを持っている。
 - 
								OpenShift Serverless Operator、Knative Eventing、および 
KnativeKafkaCR は、OpenShift Container Platform クラスターにインストールされている。 - OpenShift Container Platform でアプリケーションおよび他のワークロードを作成するために、プロジェクトを作成しているか、適切なロールおよびパーミッションを持つプロジェクトにアクセスできる。
 - Kafka クラスターのユーザー名およびパスワードがある。
 - 
								使用する SASL メカニズムを選択している (例: 
PLAIN、SCRAM-SHA-256、またはSCRAM-SHA-512)。 - 
								TLS が有効にされている場合、Kafka クラスターの 
ca.crt証明書ファイルも必要になります。 - 
								OpenShift (
oc) CLI がインストールされている。 
手順
選択された namespace にシークレットとして証明書ファイルを作成します。
oc create secret -n <namespace> generic <kafka_auth_secret> \ --from-file=ca.crt=caroot.pem \ --from-literal=password="SecretPassword" \ --from-literal=saslType="SCRAM-SHA-512" \ --from-literal=user="my-sasl-user"
$ oc create secret -n <namespace> generic <kafka_auth_secret> \ --from-file=ca.crt=caroot.pem \ --from-literal=password="SecretPassword" \ --from-literal=saslType="SCRAM-SHA-512" \1 --from-literal=user="my-sasl-user"Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
 - SASL タイプは
PLAIN、SCRAM-SHA-256、またはSCRAM-SHA-512です。 
Kafka ソースを作成または変更して、次の
spec設定が含まれるようにします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
 - Red Hat OpenShift Streams for Apache Kafka などのパブリッククラウド Kafka サービスを使用している場合は、
caCert仕様は必要ありません。 
5.2.6. カスタムイベントソース リンクのコピーリンクがクリップボードにコピーされました!
					Knative に含まれていないイベントプロデューサーや、CloudEvent 形式ではないイベントを生成するプロデューサーからイベントを Ingress する必要がある場合は、カスタムイベントソースを使用してこれを実行できます。カスタムイベントソースは、次のいずれかの方法で作成できます。
				
- 
							シンクバインディングを作成して、
PodSpecableオブジェクトをイベントソースとして使用します。 - コンテナーソースを作成して、コンテナーをイベントソースとして使用します。
 
5.2.6.1. シンクバインディング リンクのコピーリンクがクリップボードにコピーされました!
						SinkBinding オブジェクトは、イベント生成を配信アドレス指定から切り離すことをサポートします。シンクバインディングは、イベントプロデューサー をイベントコンシューマーまたは シンク に接続するために使用されます。イベントプロデューサーは、PodSpec テンプレートを組み込む Kubernetes リソースであり、イベントを生成します。シンクは、イベントを受信できるアドレス指定可能な Kubernetes オブジェクトです。
					
						SinkBinding オブジェクトは、環境変数をシンクの PodTemplateSpec に挿入します。つまり、アプリケーションコードが Kubernetes API と直接対話してイベントの宛先を見つける必要はありません。これらの環境変数は以下のとおりです。
					
K_SINK- 解決されたシンクの URL。
 K_CE_OVERRIDES- アウトバウンドイベントの上書きを指定する JSON オブジェクト。
 
							現在、SinkBinding オブジェクトはサービスのカスタムリビジョン名をサポートしません。
						
5.2.6.1.1. YAML を使用したシンクバインディングの作成 リンクのコピーリンクがクリップボードにコピーされました!
							YAML ファイルを使用して Knative リソースを作成する場合、宣言的 API を使用するため、再現性の高い方法でイベントソースを宣言的に記述することができます。YAML を使用してシンクバインディングを作成するには、SinkBinding オブジェクトを定義する YAML ファイルを作成し、oc apply コマンドを使用してそれを適用する必要があります。
						
前提条件
- OpenShift Serverless Operator、Knative Serving、および Knative Eventing がクラスターにインストールされている。
 - 
									OpenShift CLI (
oc) をインストールしている。 - OpenShift Container Platform でアプリケーションおよび他のワークロードを作成するために、プロジェクトを作成しているか、適切なロールおよびパーミッションを持つプロジェクトにアクセスできる。
 
手順
シンクバインディングが正しく設定されていることを確認するには、受信メッセージをダンプする Knative イベント表示サービスまたはイベントシンクを作成します。
サービス YAML ファイルを作成します。
サービス YAML ファイルの例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow サービスを作成します。
oc apply -f <filename>
$ oc apply -f <filename>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 
イベントをサービスに転送するシンクバインディングインスタンスを作成します。
シンクバインディング YAML ファイルを作成します。
サービス YAML ファイルの例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
 - この例では、ラベル
app: heartbeat-cronを指定したジョブがイベントシンクにバインドされます。 
シンクバインディングを作成します。
oc apply -f <filename>
$ oc apply -f <filename>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 
CronJobオブジェクトを作成します。cron ジョブの YAML ファイルを作成します。
cron ジョブの YAML ファイルの例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要シンクバインディングを使用するには、
bindings.knative.dev/include=trueラベルを Knative リソースに手動で追加する必要があります。たとえば、このラベルを
CronJobインスタンスに追加するには、以下の行をJobリソースの YAML 定義に追加します。jobTemplate: metadata: labels: app: heartbeat-cron bindings.knative.dev/include: "true"jobTemplate: metadata: labels: app: heartbeat-cron bindings.knative.dev/include: "true"Copy to Clipboard Copied! Toggle word wrap Toggle overflow cron ジョブを作成します。
oc apply -f <filename>
$ oc apply -f <filename>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 
以下のコマンドを入力し、出力を検査して、コントローラーが正しくマップされていることを確認します。
oc get sinkbindings.sources.knative.dev bind-heartbeat -oyaml
$ oc get sinkbindings.sources.knative.dev bind-heartbeat -oyamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 
検証
メッセージダンパー機能ログを確認して、Kubernetes イベントが Knative イベントシンクに送信されていることを確認できます。
コマンドを入力します。
oc get pods
$ oc get podsCopy to Clipboard Copied! Toggle word wrap Toggle overflow コマンドを入力します。
oc logs $(oc get pod -o name | grep event-display) -c user-container
$ oc logs $(oc get pod -o name | grep event-display) -c user-containerCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 
5.2.6.1.2. Knative CLI を使用したシンクバインディングの作成 リンクのコピーリンクがクリップボードにコピーされました!
							kn source binding create コマンドを使用し、Knative (kn) を使用してシンクバインディングを作成できます。イベントソースを作成するために Knative CLI を使用すると、YAML ファイルを直接修正するよりも合理的で直感的なユーザーインターフェイスが得られます。
						
前提条件
- OpenShift Serverless Operator、Knative Serving、および Knative Eventing がクラスターにインストールされている。
 - OpenShift Container Platform でアプリケーションおよび他のワークロードを作成するために、プロジェクトを作成しているか、適切なロールおよびパーミッションを持つプロジェクトにアクセスできる。
 - 
									Knative (
kn) CLI をインストールしている。 - 
									OpenShift CLI (
oc) をインストールしている。 
以下の手順では、YAML ファイルを作成する必要があります。
サンプルで使用されたもので YAML ファイルの名前を変更する場合は、必ず対応する CLI コマンドを更新する必要があります。
手順
シンクバインディングが正しく設定されていることを確認するには、受信メッセージをダンプする Knative イベント表示サービスまたはイベントシンクを作成します。
kn service create event-display --image quay.io/openshift-knative/knative-eventing-sources-event-display:latest
$ kn service create event-display --image quay.io/openshift-knative/knative-eventing-sources-event-display:latestCopy to Clipboard Copied! Toggle word wrap Toggle overflow イベントをサービスに転送するシンクバインディングインスタンスを作成します。
kn source binding create bind-heartbeat --subject Job:batch/v1:app=heartbeat-cron --sink ksvc:event-display
$ kn source binding create bind-heartbeat --subject Job:batch/v1:app=heartbeat-cron --sink ksvc:event-displayCopy to Clipboard Copied! Toggle word wrap Toggle overflow CronJobオブジェクトを作成します。cron ジョブの YAML ファイルを作成します。
cron ジョブの YAML ファイルの例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要シンクバインディングを使用するには、
bindings.knative.dev/include=trueラベルを Knative CR に手動で追加する必要があります。たとえば、このラベルを
CronJobCR に追加するには、以下の行をJobCR の YAML 定義に追加します。jobTemplate: metadata: labels: app: heartbeat-cron bindings.knative.dev/include: "true"jobTemplate: metadata: labels: app: heartbeat-cron bindings.knative.dev/include: "true"Copy to Clipboard Copied! Toggle word wrap Toggle overflow cron ジョブを作成します。
oc apply -f <filename>
$ oc apply -f <filename>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 
以下のコマンドを入力し、出力を検査して、コントローラーが正しくマップされていることを確認します。
kn source binding describe bind-heartbeat
$ kn source binding describe bind-heartbeatCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 
検証
メッセージダンパー機能ログを確認して、Kubernetes イベントが Knative イベントシンクに送信されていることを確認できます。
以下のコマンドを入力して、メッセージダンパー機能ログを表示します。
oc get pods
$ oc get podsCopy to Clipboard Copied! Toggle word wrap Toggle overflow oc logs $(oc get pod -o name | grep event-display) -c user-container
$ oc logs $(oc get pod -o name | grep event-display) -c user-containerCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 
5.2.6.1.2.1. Knative CLI シンクフラグ リンクのコピーリンクがクリップボードにコピーされました!
								Knative (kn) CLI を使用してイベントソースを作成する場合、--sink フラグを使用して、イベントがリソースから送信されるシンクを指定できます。シンクは、他のリソースから受信イベントを受信できる、アドレス指定可能または呼び出し可能な任意のリソースです。
							
								以下の例では、サービスの http://event-display.svc.cluster.local をシンクとして使用するシンクバインディングを作成します。
							
シンクフラグを使用したコマンドの例
kn source binding create bind-heartbeat \ --namespace sinkbinding-example \ --subject "Job:batch/v1:app=heartbeat-cron" \ --sink http://event-display.svc.cluster.local \ --ce-override "sink=bound"
$ kn source binding create bind-heartbeat \
  --namespace sinkbinding-example \
  --subject "Job:batch/v1:app=heartbeat-cron" \
  --sink http://event-display.svc.cluster.local \ 
  --ce-override "sink=bound"
- 1
 http://event-display.svc.cluster.localのsvcは、シンクが Knative サービスであることを判別します。他のデフォルトのシンクの接頭辞には、channelおよびbrokerが含まれます。
5.2.6.1.3. Web コンソールを使用したシンクバインディングの作成 リンクのコピーリンクがクリップボードにコピーされました!
Knative Eventing がクラスターにインストールされると、Web コンソールを使用して シンクバインディングを作成できます。OpenShift Container Platform Web コンソールを使用すると、イベントソースを作成するための合理的で直感的なユーザーインターフェイスが提供されます。
前提条件
- OpenShift Container Platform Web コンソールにログインしている。
 - OpenShift Serverless Operator、Knative Serving、および Knative Eventing が OpenShift Container Platform クラスターにインストールされている。
 - OpenShift Container Platform でアプリケーションおよび他のワークロードを作成するために、プロジェクトを作成しているか、適切なロールおよびパーミッションを持つプロジェクトにアクセスできる。
 
手順
シンクとして使用する Knative サービスを作成します。
- 
											Developer パースペクティブで、+Add 
YAML に移動します。  サンプル YAML をコピーします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Create をクリックします。
 
- 
											Developer パースペクティブで、+Add 
 イベントソースとして使用される
CronJobリソースを作成し、1 分ごとにイベントを送信します。- 
											Developer パースペクティブで、+Add 
YAML に移動します。  サンプル YAML をコピーします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
 bindings.knative.dev/include: trueラベルを含めるようにしてください。OpenShift Serverless のデフォルトの namespace 選択動作は包含モードを使用します。
- Create をクリックします。
 
- 
											Developer パースペクティブで、+Add 
 直前の手順で作成したサービスと同じ namespace、またはイベントの送信先となる他のシンクと同じ namespace にシンクバインディングを作成します。
- 
											Developer パースペクティブで、+Add 
Event Source に移動します。Event Sources ページが表示されます。  - オプション: イベントソースに複数のプロバイダーがある場合は、Providers 一覧から必要なプロバイダーを選択し、プロバイダーから利用可能なイベントソースをフィルターします。
 Sink Binding を選択し、Create Event Source をクリックします。Create Event Source ページが表示されます。
注記Form view または YAML view を使用して Sink Binding 設定を設定し、ビューを切り替えることができます。ビューの切り替え時に、データは永続化されます。
- 
											apiVersion フィールドに 
batch/v1を入力します。 Kind フィールドに
Jobと入力します。注記CronJobの種類は OpenShift Serverless シンクバインディングで直接サポートされていないため、Kind フィールドは cron ジョブオブジェクト自体ではなく、cron ジョブで作成されるJobオブジェクトをターゲットにする必要があります。- 
											Sink を選択します。これは Resource または URI のいずれかになります。この例では、直前の手順で作成された 
event-displayサービスが Resources シンクとして使用されます。 Match labels セクションで以下を実行します。
- 
													Name フィールドに 
appと入力します。 Value フィールドに
heartbeat-cronと入力します。注記ラベルセレクターは、リソース名ではなくシンクバインディングで cron ジョブを使用する場合に必要になります。これは、cron ジョブで作成されたジョブには予測可能な名前がなく、名前に無作為に生成される文字列が含まれているためです。たとえば、
hearthbeat-cron-1cc23fになります。
- 
													Name フィールドに 
 - Create をクリックします。
 
- 
											Developer パースペクティブで、+Add 
 
検証
Topology ページおよび Pod ログを表示して、シンクバインディング、シンク、および cron ジョブが正常に作成され、機能していることを確認できます。
- Developer パースペクティブで、Topology に移動します。
 シンクバインディング、シンク、およびハートビートの cron ジョブを表示します。
- シンクバインディングが追加されると、正常なジョブが cron ジョブによって登録されていることを確認します。つまり、シンクバインディングは cron ジョブで作成されたジョブが正常に再設定されることを意味します。
 - 
									
event-displayサービス Pod のログを参照し、ハートビート cron ジョブで生成されるイベントを表示します。 
5.2.6.1.4. シンクバインディング参照 リンクのコピーリンクがクリップボードにコピーされました!
							シンクバインディングを作成して、PodSpecable オブジェクトをイベントソースとして使用できます。SinkBinding オブジェクトを作成するときに、複数のパラメーターを設定できます。
						
							SinkBinding オブジェクトは以下のパラメーターをサポートします。
						
| フィールド | 説明 | 必須またはオプション | 
|---|---|---|
|   
											  |   
											API バージョンを指定します (例:   |   必須  | 
|   
											  |   
											このリソースオブジェクトを   |   必須  | 
|   
											  |   
											  |   必須  | 
|   
											  |   
											この   |   必須  | 
|   
											  |   シンクとして使用する URI に解決するオブジェクトへの参照。  |   必須  | 
|   
											  |   ランタイムコントラクトがバインディング実装によって拡張されるリソースを参照します。  |   必須  | 
|   
											  |   上書きを定義して、シンクに送信されたイベントへの出力形式および変更を制御します。  |   任意  | 
5.2.6.1.4.1. Subject パラメーター リンクのコピーリンクがクリップボードにコピーされました!
								Subject パラメーターは、ランタイムコントラクトがバインディング実装によって拡張されるリソースを参照します。Subject 定義に複数のフィールドを設定できます。
							
								Subject 定義は、以下のフィールドをサポートします。
							
| フィールド | 説明 | 必須またはオプション | 
|---|---|---|
|   
												  |   参照先の API バージョン。  |   必須  | 
|   
												  |   参照先の種類。  |   必須  | 
|   
												  |   参照先の namespace。省略されている場合、デフォルトはオブジェクトの namespace に設定されます。  |   任意  | 
|   
												  |   参照先の名前。  |   
												  | 
|   
												  |   参照先のセレクター。  |   
												  | 
|   
												  |   ラベルセレクターの要件の一覧です。  |   
												  | 
|   
												  |   セレクターが適用されるラベルキー。  |   
												  | 
|   
												  |   
												キーと値のセットの関係を表します。有効な演算子は   |   
												  | 
|   
												  |   
												文字列値の配列。  |   
												  | 
|   
												  |   
												キーと値のペアのマップ。  |   
												  | 
サブジェクトパラメーターの例
									以下の YAML の場合は、default namespace の mysubject という名前の Deployment オブジェクトが選択されます。
								
								以下の YAML の場合、default namespace にラベル working=example が設定された Job オブジェクトが選択されます。
							
								以下の YAML の場合、default namespace にラベル working=example または working=sample が含まれる Pod オブジェクトが選択されます。
							
5.2.6.1.4.2. CloudEvent オーバーライド リンクのコピーリンクがクリップボードにコピーされました!
								ceOverrides 定義は、シンクに送信される CloudEvent の出力形式および変更を制御するオーバーライドを提供します。ceOverrides 定義に複数のフィールドを設定できます。
							
								ceOverrides の定義は、以下のフィールドをサポートします。
							
| フィールド | 説明 | 必須またはオプション | 
|---|---|---|
|   
												  |   
												アウトバウンドイベントで追加または上書きされる属性を指定します。各   |   任意  | 
									拡張子として許可されるのは、有効な CloudEvent 属性名のみです。拡張機能オーバーライド設定から仕様定義属性を設定することはできません。たとえば、type 属性を変更することはできません。
								
CloudEvent オーバーライドの例
								これにより、subject に K_CE_OVERRIDES 環境変数が設定されます。
							
出力例
{ "extensions": { "extra": "this is an extra attribute", "additional": "42" } }
{ "extensions": { "extra": "this is an extra attribute", "additional": "42" } }
5.2.6.1.4.3. include ラベル リンクのコピーリンクがクリップボードにコピーされました!
								シンクバインディングを使用するには、bindings.knative.dev/include: "true" ラベルをリソースまたはリソースが含まれる namespace のいずれかに割り当てる必要があります。リソース定義にラベルが含まれていない場合には、クラスター管理者は以下を実行してこれを namespace に割り当てることができます。
							
oc label namespace <namespace> bindings.knative.dev/include=true
$ oc label namespace <namespace> bindings.knative.dev/include=true
5.2.6.2. コンテナーソース リンクのコピーリンクがクリップボードにコピーされました!
						コンテナーソースは、イベントを生成し、イベントをシンクに送信するコンテナーイメージを作成します。コンテナーソースを使用して、イメージ URI を使用するコンテナーイメージおよび ContainerSource オブジェクトを作成して、カスタムイベントソースを作成できます。
					
5.2.6.2.1. コンテナーイメージを作成するためのガイドライン リンクのコピーリンクがクリップボードにコピーされました!
							コンテナーソースコントローラーには、K_SINK および K_CE_OVERRIDES の 2 つの環境変数が注入されます。これらの変数は、それぞれ sink および ceOverrides 仕様から解決されます。イベントは、K_SINK 環境変数で指定されたシンク URI に送信されます。メッセージは、CloudEvent HTTP 形式を使用して POST として送信する必要があります。
						
コンテナーイメージの例
以下は、ハートビートコンテナーイメージの例になります。
以下は、以前のハートビートコンテナーイメージを参照するコンテナーソースの例です。
5.2.6.2.2. Knative CLI を使用したコンテナーソースの作成および管理 リンクのコピーリンクがクリップボードにコピーされました!
							kn source container コマンドを使用し、Knative (kn) CLI を使用してコンテナーソースを作成および管理できます。イベントソースを作成するために Knative CLI を使用すると、YAML ファイルを直接修正するよりも合理的で直感的なユーザーインターフェイスが得られます。
						
コンテナーソースを作成します。
kn source container create <container_source_name> --image <image_uri> --sink <sink>
$ kn source container create <container_source_name> --image <image_uri> --sink <sink>
コンテナーソースの削除
kn source container delete <container_source_name>
$ kn source container delete <container_source_name>
コンテナーソースを記述します。
kn source container describe <container_source_name>
$ kn source container describe <container_source_name>
既存のコンテナーソースを一覧表示
kn source container list
$ kn source container list
既存のコンテナーソースを YAML 形式で一覧表示
kn source container list -o yaml
$ kn source container list -o yaml
コンテナーソースを更新します。
このコマンドにより、既存のコンテナーソースのイメージ URI が更新されます。
kn source container update <container_source_name> --image <image_uri>
$ kn source container update <container_source_name> --image <image_uri>
5.2.6.2.3. Web コンソールを使用したコンテナーソースの作成 リンクのコピーリンクがクリップボードにコピーされました!
Knative Eventing がクラスターにインストールされると、Web コンソールを使用してコンテナーソースを作成できます。OpenShift Container Platform Web コンソールを使用すると、イベントソースを作成するための合理的で直感的なユーザーインターフェイスが提供されます。
前提条件
- OpenShift Container Platform Web コンソールにログインしている。
 - OpenShift Serverless Operator、Knative Serving、および Knative Eventing が OpenShift Container Platform クラスターにインストールされている。
 - OpenShift Container Platform でアプリケーションおよび他のワークロードを作成するために、プロジェクトを作成しているか、適切なロールおよびパーミッションを持つプロジェクトにアクセスできる。
 
手順
- 
									Developer パースペクティブで、+Add 
Event Source に移動します。Event Sources ページが表示されます。  - Container Source を選択してから Create Event Source をクリックします。Create Event Source ページが表示されます。
 Form view または YAML view を使用して、Container Source 設定を設定します。
注記Form view と YAML view 間で切り換えることができます。ビューの切り替え時に、データは永続化されます。
- Image フィールドに、コンテナーソースが作成したコンテナーで実行するイメージの URI を入力します。
 - Name フィールドにイメージの名前を入力します。
 - オプション: Arguments フィールドで、コンテナーに渡す引数を入力します。
 - オプション: Environment variables フィールドで、コンテナーに設定する環境変数を追加します。
 Sink セクションで、コンテナーソースからのイベントがルーティングされるシンクを追加します。Form ビューを使用している場合は、以下のオプションから選択できます。
- Resource を選択して、チャネル、ブローカー、またはサービスをイベントソースのシンクとして使用します。
 - URI を選択して、コンテナーソースからのイベントのルーティング先を指定します。
 
- コンテナーソースの設定が完了したら、Create をクリックします。
 
5.2.6.2.4. コンテナーソースのリファレンス リンクのコピーリンクがクリップボードにコピーされました!
							ContainerSource オブジェクトを作成することにより、コンテナーをイベントソースとして使用できます。ContainerSource オブジェクトを作成するときに、複数のパラメーターを設定できます。
						
							ContainerSource オブジェクトは以下のフィールドをサポートします。
						
| フィールド | 説明 | 必須またはオプション | 
|---|---|---|
|   
											  |   
											API バージョンを指定します (例:   |   必須  | 
|   
											  |   
											このリソースオブジェクトを   |   必須  | 
|   
											  |   
											  |   必須  | 
|   
											  |   
											この   |   必須  | 
|   
											  |   シンクとして使用する URI に解決するオブジェクトへの参照。  |   必須  | 
|   
											  |   
											  |   必須  | 
|   
											  |   上書きを定義して、シンクに送信されたイベントへの出力形式および変更を制御します。  |   任意  | 
テンプレートパラメーターの例
5.2.6.2.4.1. CloudEvent オーバーライド リンクのコピーリンクがクリップボードにコピーされました!
								ceOverrides 定義は、シンクに送信される CloudEvent の出力形式および変更を制御するオーバーライドを提供します。ceOverrides 定義に複数のフィールドを設定できます。
							
								ceOverrides の定義は、以下のフィールドをサポートします。
							
| フィールド | 説明 | 必須またはオプション | 
|---|---|---|
|   
												  |   
												アウトバウンドイベントで追加または上書きされる属性を指定します。各   |   任意  | 
									拡張子として許可されるのは、有効な CloudEvent 属性名のみです。拡張機能オーバーライド設定から仕様定義属性を設定することはできません。たとえば、type 属性を変更することはできません。
								
CloudEvent オーバーライドの例
								これにより、subject に K_CE_OVERRIDES 環境変数が設定されます。
							
出力例
{ "extensions": { "extra": "this is an extra attribute", "additional": "42" } }
{ "extensions": { "extra": "this is an extra attribute", "additional": "42" } }
5.2.7. 開発者パースペクティブを使用してイベントソースをシンクに接続する リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform Web コンソールを使用してイベントソースを作成する場合、イベントがソースから送信されるシンクを指定できます。シンクは、他のリソースから受信イベントを受信できる、アドレス指定可能または呼び出し可能な任意のリソースです。
5.2.7.1. Developer パースペクティブを使用してイベントソースをシンクに接続します。 リンクのコピーリンクがクリップボードにコピーされました!
前提条件
- OpenShift Serverless Operator、Knative Serving、および Knative Eventing が OpenShift Container Platform クラスターにインストールされている。
 - Web コンソールにログインしており、Developer パースペクティブを使用している。
 - OpenShift Container Platform でアプリケーションおよび他のワークロードを作成するために、プロジェクトを作成しているか、適切なロールおよびパーミッションを持つプロジェクトにアクセスできる。
 - Knative サービス、チャネル、ブローカーなどのシンクを作成している。
 
手順
- 
								+Add 
Event Source に移動して任意のタイプのイベントソースを作成し、作成するイベントソースを選択します。  - イベントソースの作成 フォームビューの シンク セクションで、リソース リストからシンクを選択します。
 - Create をクリックします。
 
検証
Topology ページを表示して、イベントソースが作成され、シンクに接続されていることを確認できます。
- Developer パースペクティブで、Topology に移動します。
 - イベントソースを表示し、接続されたシンクをクリックして、右側のパネルにシンクの詳細を表示します。