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>
    Copy to Clipboard Toggle word wrap

    &lt ;namespace&gt; を 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 にすでに存在します。

手順

  1. 以下の YAML マニフェストを integration-source-aws-ddb.yaml として保存します。

    apiVersion: sources.knative.dev/v1alpha1
    kind: IntegrationSource
    metadata:
      name: integration-source-aws-ddb
      namespace: knative-samples
    spec:
      aws:
        ddbStreams:
          table: "my-table"
          region: "eu-north-1"
        auth:
          secret:
            ref:
              name: "my-secret"
      sink:
        ref:
          apiVersion: eventing.knative.dev/v1
          kind: Broker
          name: default
    Copy to Clipboard Toggle word wrap
  2. 次のコマンドを実行してマニフェストを適用します。

    $ oc apply -f integration-source-aws-ddb.yaml
    Copy to Clipboard Toggle word wrap

    このマニフェストは、eu-north-1 リージョンの DynamoDB テーブル my-table から変更イベントを読み取るように IntegrationSource API を設定します。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 ブローカーまたは別のイベントシンクが存在します。

手順

  1. 以下の YAML マニフェストを integration-source-aws-s3.yaml として保存します。

    apiVersion: sources.knative.dev/v1alpha1
    kind: IntegrationSource
    metadata:
      name: integration-source-aws-s3
      namespace: knative-samples
    spec:
      aws:
        s3:
          arn: "arn:aws:s3:::my-bucket"
          region: "eu-north-1"
        auth:
          secret:
            ref:
              name: "my-secret"
      sink:
        ref:
          apiVersion: eventing.knative.dev/v1
          kind: Broker
          name: default
    Copy to Clipboard Toggle word wrap
  2. 次のコマンドを実行してマニフェストを適用します。

    $ oc apply -f integration-source-aws-s3.yaml
    Copy to Clipboard Toggle word wrap

    このマニフェストは、eu-north-1 リージョン の Amazon Resource Name (ARN)arn:aws:s3:::my-bucket で識別される Amazon S3 バケットを監視するように IntegrationSource API を設定します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 ブローカーまたは別のイベントシンクが存在します。

手順

  1. 以下の YAML マニフェストを integration-source-aws-sqs.yaml として保存します。

    apiVersion: sources.knative.dev/v1alpha1
    kind: IntegrationSource
    metadata:
      name: integration-source-aws-sqs
      namespace: knative-samples
    spec:
      aws:
        sqs:
          arn: "arn:aws:sqs:eu-north-1:123456789012:my-queue"
          region: "eu-north-1"
        auth:
          secret:
            ref:
              name: "my-secret"
      sink:
        ref:
          apiVersion: eventing.knative.dev/v1
          kind: Broker
          name: default
    Copy to Clipboard Toggle word wrap
    注記

    ARN が SQS キューリージョン、アカウント番号、およびキュー名を正確に反映していることを確認します。例 : arn:aws:sqs:<region>:<account-id>:<queue-name>

  2. 次のコマンドを実行してマニフェストを適用します。

    $ oc apply -f integration-source-aws-sqs.yaml
    Copy to Clipboard Toggle word wrap

    このマニフェストは、eu-north-1 リージョンの ARN で識別される Amazon SQS キューを監視するように IntegrationSource API を設定します。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 ブローカーまたは別のイベントシンクが存在します。

手順

  1. 以下の YAML マニフェストを integration-source-timer.yaml として保存します。

    apiVersion: sources.knative.dev/v1alpha1
    kind: IntegrationSource
    metadata:
      name: integration-source-timer
      namespace: knative-samples
    spec:
      timer:
        period: 2000
        message: "Hello from Timer source"
      sink:
        ref:
          apiVersion: eventing.knative.dev/v1
          kind: Broker
          name: default
    Copy to Clipboard Toggle word wrap
  2. 次のコマンドを実行してマニフェストを適用します。

    $ oc apply -f integration-source-timer.yaml
    Copy to Clipboard Toggle word wrap

    このマニフェストは、IntegrationSource が 2000 ミリ秒(2 秒)ごとにメッセージ Hello from Timer を発行するように設定します。生成されたメッセージは、sink セクションで定義される デフォルト の Knative ブローカーに送信されます。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat