3.5. IntegrationSink を使い始める
OpenShift Serverless IntegrationSink 機能はテクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
IntegrationSink API は、Knative から外部システムにイベントを送信できるようにする Knative Eventing カスタムリソース (CR) です。Apache Camel プロジェクトから選択された Kamelet を活用します。
Kamelet は、ソースまたはシンクとして機能できる再利用可能なコネクターとして機能します。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 とシークレットアクセスキーが含まれている必要があります。この Secret は各 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 と IntegrationSink リンクのコピーリンクがクリップボードにコピーされました!
Amazon Web Services (AWS) Simple Storage Service (S3) Kamelet を使用すると、Knative Eventing から Amazon S3 バケットに CloudEvents を配信できます。この統合により、イベントを長期保存、分析、または下流処理用のオブジェクトとして保存できるようになります。
AWS S3 用の IntegrationSink API を設定するには、有効な AWS 認証情報を使用して Kubernetes Secret を参照し、Amazon S3 バケットの Amazon Resource Name (ARN) とそのリージョンを指定して、CloudEvents を生成するソースを設定する必要があります。
3.5.2.1. AWS S3 用の IntegrationSink を作成する リンクのコピーリンクがクリップボードにコピーされました!
IntegrationSink API リソースを作成して、Knative Eventing から Amazon Simple Storage Service (S3) バケットに CloudEvents を配信できます。これにより、イベントデータを S3 内のオブジェクトとして保存し、長期使用のために保存したり、分析ツールで処理したり、下流のアプリケーションで使用したりできるようになります。YAML マニフェストを適用することで、IntegrationSink を作成し、CloudEvents を Amazon S3 バケットに配信できます。
前提条件
- AWS 認証情報を作成し、リソースと同じ namespace の Kubernetes シークレットに保存した。
- 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 このマニフェストは
eu-north-1リージョンの ARN (arn:aws:s3:::my-bucket) で識別される Amazon S3 バケットに CloudEvents を配信するようにIntegrationSinkAPI を設定します。auth.secret.ref.nameフィールドは、AWS 認証情報を保存する Kubernetes Secret (my-secret) を参照します。
3.5.3. AWS SNS と IntegrationSink リンクのコピーリンクがクリップボードにコピーされました!
Amazon Web Services (AWS) Simple Notification Service (SNS) Kamelet を使用すると、Knative Eventing から SNS トピックに CloudEvents を配信できます。この統合は、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 を作成する リンクのコピーリンクがクリップボードにコピーされました!
YAML マニフェストを適用することで、IntegrationSink API リソースを作成し、Knative Eventing から Amazon Simple Notification Service (SNS) トピックに CloudEvents を公開できます。
前提条件
- AWS 認証情報を作成し、リソースと同じ namespace の Kubernetes シークレットに保存した。
- 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 と 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 マニフェストを適用することで、IntegrationSink API リソースを作成し、CloudEvents を Amazon SQS キューに送信できます。
前提条件
- AWS 認証情報を作成し、リソースと同じ namespace の Kubernetes シークレットに保存した。
- 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 このマニフェストは、
IntegrationSinkAPI を設定して、eu-north-1リージョンの ARN によって識別される SQS キューに CloudEvents を送信します。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 このマニフェストは、受信するすべての CloudEvents を
INFOレベルでログに記録するようにIntegrationSinkAPI リソースを設定します。showHeadersオプションはtrueに設定されており、イベントの HTTP ヘッダーもログに記録されることを意味します。