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

    <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 ブローカーまたは別のイベントソースが存在する。

手順

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

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

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

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

手順

  1. 次の YAML マニフェストを integration-sink-aws-sns.yaml として保存します。

    apiVersion: sinks.knative.dev/v1alpha1
    kind: IntegrationSink
    metadata:
      name: integration-sink-aws-sns
      namespace: knative-samples
    spec:
      aws:
        sns:
          arn: "arn:aws:sns:<region>:<account>:my-topic"
          region: "eu-north-1"
        auth:
          secret:
            ref:
              name: "my-secret"
    Copy to Clipboard Toggle word wrap
  2. 次のコマンドを実行してマニフェストを適用します。

    $ oc apply -f integration-sink-aws-sns.yaml
    Copy to Clipboard Toggle word wrap

    このマニフェストは eu-north-1 リージョンの ARN によって識別される SNS トピックに CloudEvents を公開するように IntegrationSink API を設定します。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 ブローカーまたは別のイベントソースが存在する。

手順

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

    apiVersion: sinks.knative.dev/v1alpha1
    kind: IntegrationSink
    metadata:
      name: integration-sink-aws-sqs
      namespace: knative-samples
    spec:
      aws:
        sqs:
          arn: "arn:aws:sqs:<region>:<account>:my-queue"
          region: "eu-north-1"
        auth:
          secret:
            ref:
              name: "my-secret"
    Copy to Clipboard Toggle word wrap
  2. 次のコマンドを実行してマニフェストを適用します。

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

    このマニフェストは、IntegrationSink API を設定して、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 ブローカーまたは別のイベントソースが存在する。

手順

  1. 次の YAML マニフェストを integration-log-sink.yaml として保存します。

    apiVersion: sinks.knative.dev/v1alpha1
    kind: IntegrationSink
    metadata:
      name: integration-log-sink
      namespace: knative-samples
    spec:
      log:
        showHeaders: true
        level: INFO
    Copy to Clipboard Toggle word wrap
  2. 次のコマンドを実行してマニフェストを適用します。

    $ oc apply -f integration-log-sink.yaml
    Copy to Clipboard Toggle word wrap

    このマニフェストは、受信するすべての CloudEvents を INFO レベルでログに記録するように IntegrationSink API リソースを設定します。showHeaders オプションは true に設定されており、イベントの HTTP ヘッダーもログに記録されることを意味します。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2026 Red Hat