3.5. IntegrationSink の使用
OpenShift Serverless IntegrationSink 機能はテクノロジープレビュー機能としてのみご利用いただけます。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、お客様が、今後リリースされる製品の機能に早期にアクセスして、開発プロセス中に機能のテストやフィードバックを行えるようにするものです。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
IntegrationSink API は、Knative から外部システムにイベントを送信できる Knative Eventing カスタムリソース(CR)です。Apache Camel プロジェクトから選択した Kamelets を利用します。
Kamelets は、インテグレーションシンク API を使用して、ソースまたはシンクとして機能できる再利用可能なコネクターとして機能します。IntegrationSink API を使用して、Knative Eventing 内で生成された CloudEvents を確実にサードパーティーサービスおよび外部システムに配信できます。
OpenShift Serverless は以下の Kamelet シンクをサポートします。
- AWS Simple Storage Service (S3)
- AWS Simple Notification Service (SNS)
- AWS Simple Queue Service (SQS)
- 汎用ロガーシンク
3.5.1. AWS 認証情報の作成 リンクのコピーリンクがクリップボードにコピーされました!
いくつかの IntegrationSink API リソースには、S3、SNS、SQS などの Amazon Web Services (AWS)サービスへのアクセスが必要です。セキュアに接続するには、IntegrationSink API リソースが作成される namespace に有効な AWS 認証情報を含む Kubernetes シークレットを作成する必要があります。
Secret には、ターゲット AWS サービスにアクセスするための十分な権限を持つ AWS アクセスキー ID およびシークレットアクセスキーが含まれている必要があります。このシークレットは、各 IntegrationSink 設定で参照されます。
前提条件
- 関連するサービスへのアクセスを提供するアクセスキー ID およびシークレットアクセスキーを持つ AWS アカウントがある。
- OpenShift CLI (oc)がインストールされ、クラスターにログインしている。
-
IntegrationSinkリソースが作成される namespace を特定している。
手順
以下のコマンドを実行してシークレットを作成します。
oc -n <namespace> create secret generic my-secret \ --from-literal=aws.accessKey=<accessKey> \ --from-literal=aws.secretKey=<secretKey>
$ oc -n <namespace> create secret generic my-secret \ --from-literal=aws.accessKey=<accessKey> \ --from-literal=aws.secretKey=<secretKey>Copy to Clipboard Copied! Toggle word wrap Toggle overflow <
;namespace> をIntegrationSinkリソースが作成される namespace に置き換え、<accessKey> および <secretKey> を適切な AWS 認証情報に置き換えます。
3.5.2. AWS S3 with IntegrationSink リンクのコピーリンクがクリップボードにコピーされました!
Amazon Web Services (AWS) Simple Storage Service (S3) Kamelet を使用すると、CloudEvents を Knative Eventing から Amazon S3 バケットに配信できます。この統合により、イベントをオブジェクトとして保存し、長期ストレージ、解析、またはダウンストリーム処理を行うことができます。
AWS S3 の IntegrationSink API を設定するには、有効な AWS 認証情報で Kubernetes シークレットを参照し、Amazon S3 バケット Amazon Resource Name (ARN)とそのリージョンを指定し、CloudEvents を生成するソースを設定する必要があります。
3.5.2.1. AWS S3 の IntegrationSink の作成 リンクのコピーリンクがクリップボードにコピーされました!
IntegrationSink API リソースを作成して、CloudEvent を Knative Eventing から Amazon Simple Storage Service (S3)バケットに配信できます。これにより、イベントデータを S3 内のオブジェクトとして永続化でき、長期使用のために保存したり、解析ツールで処理したり、ダウンストリームアプリケーションが消費したりできます。YAML マニフェストを適用して、CloudEvent を Amazon S3 バケットに配信するために IntegrationSink を作成できます。
前提条件
- AWS 認証情報を作成し、それらをリソースと同じ namespace の Kubernetes Secret に保存している。
- OpenShift CLI (oc)がインストールされ、クラスターにログインしている。
-
IntegrationSinkリソースが作成される namespace を把握している。 - このシンクに配信される CloudEvents を生成するために、Knative ブローカーまたは別のイベントソースが存在します。
手順
以下の YAML マニフェストを
integration-sink-aws-s3.yamlとして保存します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行してマニフェストを適用します。
oc apply -f integration-sink-aws-s3.yaml
$ oc apply -f integration-sink-aws-s3.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow このマニフェストは、
IntegrationSinkAPI を、eu-north-1リージョンの ARN (arn:aws:s3:::my-bucket)で識別される Amazon S3 バケットに CloudEvents を提供するように設定します。auth.secret.ref.nameフィールドは、AWS 認証情報を保存する Kubernetes Secret (my-secret)を参照します。
3.5.3. AWS SNS with IntegrationSink リンクのコピーリンクがクリップボードにコピーされました!
Amazon Web Services (AWS) Simple Notification Service (SNS) Kamelet を使用すると、CloudEvents を Knative Eventing から SNS トピックに配信できます。この統合は、SNS サブスクリプションを介した電子メール、SMS、HTTP サブスクライバー、SQS キュー、Lambda 関数などの幅広いディストリビューションが必要な場合に役立ちます。
AWS SNS の IntegrationSink API リソースを設定するには、有効な AWS 認証情報で Kubernetes Secret を参照し、SNS トピック Amazon Resource Name (ARN)およびリージョンを指定し、CloudEvents を生成するイベントソースを設定します。
3.5.3.1. AWS SNS の IntegrationSink の作成 リンクのコピーリンクがクリップボードにコピーされました!
IntegrationSink API リソースを作成し、YAML マニフェストを適用して CloudEvents を Knative Eventing から Amazon Simple Notification Service (SNS)トピックに公開できます。
前提条件
- AWS 認証情報を作成し、それらをリソースと同じ namespace の Kubernetes Secret に保存している。
- OpenShift CLI (oc)がインストールされ、クラスターにログインしている。
-
IntegrationSinkリソースが作成される namespace を把握している。 - このシンクに配信される CloudEvents を生成するために、Knative ブローカーまたは別のイベントソースが存在します。
手順
以下の YAML マニフェストを
integration-sink-aws-sns.yamlとして保存します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行してマニフェストを適用します。
oc apply -f integration-sink-aws-sns.yaml
$ oc apply -f integration-sink-aws-sns.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow このマニフェストは、
eu-north-1リージョンの ARN で識別される SNS トピックに CloudEvents を公開するようにIntegrationSinkAPI を設定します。auth.secret.ref.nameフィールドは、AWS 認証情報を保存する Kubernetes Secret (my-secret)を参照します。
3.5.4. AWS SQS with IntegrationSink リンクのコピーリンクがクリップボードにコピーされました!
Amazon Web Services (AWS) Simple Queue Service (SQS) Kamelet を使用すると、Knative Eventing から SQS キューに CloudEvents を送信できます。この統合は、イベントのプロデューサーとコンシューマー間で、信頼できる切り離されたメッセージ配信が必要な場合や、ダウンストリームシステムがキューから非同期的にイベントを処理する必要がある場合に役立ちます。
AWS SQS の IntegrationSink API リソースを設定するには、有効な AWS 認証情報で Kubernetes Secret を参照し、キュー Amazon Resource Name (ARN)およびリージョンを指定し、CloudEvents を生成するイベントソースを設定する必要があります。
3.5.4.1. AWS SQS の IntegrationSink の作成 リンクのコピーリンクがクリップボードにコピーされました!
YAML マニフェストを適用して CloudEvents を Amazon SQS キューに送信するために IntegrationSink API リソースを作成できます。
前提条件
- AWS 認証情報を作成し、それらをリソースと同じ namespace の Kubernetes Secret に保存している。
- OpenShift CLI (oc)がインストールされ、クラスターにログインしている。
-
IntegrationSinkリソースが作成される namespace を把握している。 - このシンクに配信される CloudEvents を生成するために、Knative ブローカーまたは別のイベントソースが存在します。
手順
以下の YAML マニフェストを
integration-sink-aws-sqs.yamlとして保存します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行してマニフェストを適用します。
oc apply -f integration-sink-aws-sqs.yaml
$ oc apply -f integration-sink-aws-sqs.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow このマニフェストは、
eu-north-1リージョンの ARN で識別される SQS キューに CloudEvents を送信するようにIntegrationSinkAPI を設定します。auth.secret.ref.nameフィールドは、AWS 認証情報を保存する Kubernetes Secret (my-secret)を参照します。
3.5.5. IntegrationSink を使用した汎用ロガーシンク リンクのコピーリンクがクリップボードにコピーされました!
Log Sink Kamelet を使用すると、Knative Eventing からアプリケーションログに直接 CloudEvents を出力できます。このシンクは、主にイベントフローのデバッグまたはテストに使用されます。これは、外部システムを必要とせずにイベントペイロードおよびメタデータを可視化できるためです。
ロガーに IntegrationSink API リソースを設定するには、ログレベルを設定し、オプションでイベントヘッダーを表示できます。
3.5.5.1. ロガーの IntegrationSink の作成 リンクのコピーリンクがクリップボードにコピーされました!
YAML マニフェストを適用することで、CloudEvents をログに記録する IntegrationSink API リソースを作成できます。
前提条件
- OpenShift CLI (oc)がインストールされ、クラスターにログインしている。
-
IntegrationSinkリソースが作成される namespace を把握している。 - このシンクに配信される CloudEvents を生成するために、Knative ブローカーまたは別のイベントソースが存在します。
手順
以下の YAML マニフェストを
integration-log-sink.yamlとして保存します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行してマニフェストを適用します。
oc apply -f integration-log-sink.yaml
$ oc apply -f integration-log-sink.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow このマニフェストは、
IntegrationSinkAPI リソースを、受け取るすべての CloudEvents をINFOレベルでログに記録するように設定します。showHeadersオプションはtrueに設定されます。これは、イベントの HTTP ヘッダーもログに記録されます。