2.7. IntegrationSource の使用
OpenShift Serverless IntegrationSource 機能は、テクノロジープレビュー機能のみです。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、お客様が、今後リリースされる製品の機能に早期にアクセスして、開発プロセス中に機能のテストやフィードバックを行えるようにするものです。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
IntegrationSource API は、Apache Camel プロジェクトから選択した Kamelets を利用して外部システムに接続できるようにする Knative Eventing カスタムリソース(CR)です。
Kamelets は、ソースまたはシンクとして機能できる再利用可能なコネクターとして機能します。IntegrationSource API を使用すると、外部システムからデータを消費し、データを CloudEvents として Knative Eventing に転送できます。
OpenShift Serverless は以下の Kamelet ソースをサポートします。
- AWS DynamoDB Streams
- AWS S3
- AWS SQS
- タイマーソース
2.7.1. AWS 認証情報の作成 リンクのコピーリンクがクリップボードにコピーされました!
Amazon Web Services (AWS)リソースに接続するには、IntegrationSource に有効な AWS 認証情報が含まれる Kubernetes シークレットが必要です。この Secret を IntegrationSource リソースと同じ namespace に作成する必要があります。また、AWS アクセスキーとシークレットキーの両方を含める必要があります。
前提条件
- Amazon DynamoDB Streams サービスへのアクセスを許可するアクセスキー ID およびシークレットアクセスキーを持つ AWS アカウントがある。
- OpenShift CLI (oc)がインストールされ、クラスターにログインしている。
-
IntegrationSourceリソースが作成される 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> をIntegrationSourceリソースが存在する namespace に置き換え、<accessKey> および <secretKey> を対応する AWS クレデンシャルに置き換えます。
2.7.2. IntegrationSource を使用した AWS DynamoDB ストリーム リンクのコピーリンクがクリップボードにコピーされました!
Amazon Web Services (AWS) DynamoDB Streams Kamelet を使用すると、Amazon DynamoDB テーブルからの変更を消費し、それらを Knative Eventing に転送できます。この統合により、データベースの変更に対応し、サーバーレスアプリケーション内のイベントを伝播しやすくなります。
DynamoDB Streams の IntegrationSource を設定するには、有効な AWS 認証情報を提供し、DynamoDB テーブルとそのリージョンを指定し、Knative ブローカーなどのイベントシンクを定義する必要があります。
2.7.2.1. DynamoDB ストリーム用の IntegrationSource の作成 リンクのコピーリンクがクリップボードにコピーされました!
Amazon DynamoDB Streams からイベントを受信する IntegrationSource API を作成するには、YAML マニフェストを適用します。
前提条件
- Amazon DynamoDB Streams へのアクセスのある有効な Amazon Web Services (AWS)クレデンシャルを含む Kubernetes シークレットを作成している。
- OpenShift CLI (oc)がインストールされ、ターゲットクラスターにログインしている。
-
IntegrationSourceリソースが作成される namespace を把握している。 - イベントを受信するために、Knative ブローカーまたは別の有効なイベントシンクが同じ namespace にすでに存在します。
手順
以下の YAML マニフェストを
integration-source-aws-ddb.yamlとして保存します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行してマニフェストを適用します。
oc apply -f integration-source-aws-ddb.yaml
$ oc apply -f integration-source-aws-ddb.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow このマニフェストは、
eu-north-1リージョンの DynamoDB テーブルmy-tableから変更イベントを読み取るようにIntegrationSourceAPI を設定します。auth.secret.ref.nameフィールドは、AWS 認証情報を保存する Kubernetes Secret (my-secret)を参照します。イベントは、sink セクションで定義されるデフォルトの Knative ブローカーに送信されます。
2.7.3. AWS S3 with IntegrationSource リンクのコピーリンクがクリップボードにコピーされました!
Amazon Web Services (AWS) Simple Storage Service (S3) Kamelet を使用すると、Amazon S3 バケットからのファイルのアップロードや更新などのオブジェクトストレージイベントを消費し、それらを Knative Eventing に転送できます。このインテグレーションは、OpenShift Serverless アプリケーションが、ポーリングを必要とせずに、新規ファイルやデータ更新などのオブジェクトストレージの変更に対応するのに役立ちます。
S3 の IntegrationSource を設定するには、有効な AWS 認証情報を提供する必要があります。Amazon S3 バケット Amazon Resource Name (ARN)とそのリージョンを指定し、Knative ブローカーなどのイベントシンクを定義する必要があります。
2.7.3.1. AWS S3 の IntegrationSource の作成 リンクのコピーリンクがクリップボードにコピーされました!
Amazon S3 バケットからデータを受信する IntegrationSource API を作成するには、YAML マニフェストを適用します。
前提条件
-
AWS 認証情報を作成し、それらを
IntegrationSourceリソースと同じ namespace の Kubernetes Secret に保存しました。 - OpenShift CLI (oc)がインストールされ、ターゲットクラスターにログインしている。
-
IntegrationSourceリソースが作成される namespace を把握している。 - S3 イベントを受信するために Knative ブローカーまたは別のイベントシンクが存在します。
手順
以下の YAML マニフェストを
integration-source-aws-s3.yamlとして保存します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行してマニフェストを適用します。
oc apply -f integration-source-aws-s3.yaml
$ oc apply -f integration-source-aws-s3.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow このマニフェストは、
eu-north-1 リージョンの Amazon Resource Name (ARN)arn:aws:s3:::my-bucket で識別される Amazon S3 バケットを監視するように。IntegrationSourceAPI を設定しますauth.secret.ref.nameフィールドは、AWS 認証情報を保存する Kubernetes Secret (my-secret)を参照します。イベントは、sink セクションで定義されるdefaultの Knative ブローカーに送信されます。
2.7.4. AWS SQS with IntegrationSource リンクのコピーリンクがクリップボードにコピーされました!
Amazon Web Services (AWS) Simple Queue Service (SQS) Kamelet を使用すると、Amazon SQS キューからメッセージを消費し、Knative Eventing に転送できます。この統合により、OpenShift Serverless アプリケーションはキューに入れられたメッセージに対応し、プロデューサーとコンシューマーを分離するイベント駆動型アーキテクチャーをサポートできます。
SQS の IntegrationSource を設定するには、有効な AWS クレデンシャルを提供し、Amazon SQS キューの Amazon Resource Name (ARN)とそのリージョンを指定し、Knative ブローカーなどのイベントシンクを定義する必要があります。Amazon Resource Name (ARN)は、すべての AWS アカウントとリージョンで SQS キューを一意に識別します。
2.7.4.1. SQS の IntegrationSource の作成 リンクのコピーリンクがクリップボードにコピーされました!
Amazon SQS キューからメッセージを受信する IntegrationSource API を作成するには、YAML マニフェストを適用します。
前提条件
-
AWS 認証情報を作成し、それらを
IntegrationSourceリソースと同じ namespace の Kubernetes Secret に保存しました。 - OpenShift CLI (oc)がインストールされ、ターゲットクラスターにログインしている。
-
IntegrationSourceリソースが作成される namespace を把握している。 - SQS イベントを受信するために Knative ブローカーまたは別のイベントシンクが存在します。
手順
以下の YAML マニフェストを
integration-source-aws-sqs.yamlとして保存します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記ARN が SQS キューリージョン、アカウント番号、およびキュー名を正確に反映していることを確認します。例
: arn:aws:sqs:<region>:<account-id>:<queue-name>次のコマンドを実行してマニフェストを適用します。
oc apply -f integration-source-aws-sqs.yaml
$ oc apply -f integration-source-aws-sqs.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow このマニフェストは、
eu-north-1リージョンの ARN で識別される Amazon SQS キューを監視するようにIntegrationSourceAPI を設定します。auth.secret.ref.nameフィールドは、AWS 認証情報を保存する Kubernetes Secret (my-secret)を参照します。イベントは、sink セクションで定義されるdefaultの Knative ブローカーに送信されます。
2.7.5. IntegrationSource を使用するタイマーソース リンクのコピーリンクがクリップボードにコピーされました!
Timer Kamelet は、カスタムペイロードで定期的なメッセージを生成し、Knative Eventing に転送します。これは、外部システムに依存せずにイベントフローをテストしたり、スケジュールされたイベントを生成したりする場合に役立ちます。
Timer Kamelet の IntegrationSource を設定するには、メッセージを生成する間隔とメッセージの内容を指定し、Knative ブローカーなどのイベントシンクを定義します。
2.7.5.1. タイマーの IntegrationSource の作成 リンクのコピーリンクがクリップボードにコピーされました!
カスタムペイロードで定期的なメッセージを生成する IntegrationSource API を作成するには、YAML マニフェストを適用します。
前提条件
- OpenShift CLI (oc)がインストールされ、ターゲットクラスターにログインしている。
-
IntegrationSourceリソースが作成される namespace を把握している。 - SQS イベントを受信するために Knative ブローカーまたは別のイベントシンクが存在します。
手順
以下の YAML マニフェストを
integration-source-timer.yamlとして保存します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行してマニフェストを適用します。
oc apply -f integration-source-timer.yaml
$ oc apply -f integration-source-timer.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow このマニフェストは、
IntegrationSourceが 2000 ミリ秒(2 秒)ごとにメッセージHello from Timerを発行するように設定します。生成されたメッセージは、sink セクションで定義されるデフォルトの Knative ブローカーに送信されます。