2.7. IntegrationSource を使い始める


重要

OpenShift Serverless IntegrationSource 機能はテクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。

Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

IntegrationSource API は、Apache Camel プロジェクトから選択した Kamelet を活用して外部システムに接続できるようにする Knative Eventing カスタムリソース (CR) です。

Kamelet は、ソースまたはシンクとして機能できる再利用可能なコネクターとして機能します。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

    <namespace> は、IntegrationSource リソースが存在する namespace に、<accessKey><secretKey> は、対応する AWS 認証情報に置き換えます。

2.7.2. AWS DynamoDB ストリームと IntegrationSource

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) を参照します。イベントは、シンクセクションで定義された default の Knative ブローカーに送信されます。

2.7.3. AWS S3 と 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 region 内の Amazon Resource Name (ARN) arn:aws:s3:::my-bucket で識別される Amazon S3 バケットを監視するように IntegrationSource API を設定します。auth.secret.ref.name フィールドは、AWS 認証情報を保存する Kubernetes Secret (my-secret) を参照します。イベントは、シンクセクションで定義された default の Knative ブローカーに配信されます。

2.7.4. AWS SQS と 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) を参照します。イベントは、シンクセクションで定義された 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 source" メッセージを送信するように設定します。生成されたメッセージは、シンクセクションで定義された default の Knative ブローカーに送信されます。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2026 Red Hat