3.5. IntegrationSink の使用


重要

OpenShift Serverless IntegrationSink 機能はテクノロジープレビュー機能としてのみご利用いただけます。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、お客様が、今後リリースされる製品の機能に早期にアクセスして、開発プロセス中に機能のテストやフィードバックを行えるようにするものです。

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

IntegrationSink API は、Knative から外部システムにイベントを送信できる Knative Eventing カスタムリソース(CR)です。Apache Camel プロジェクトから選択した Kamelets を利用します。

Kamelets は、インテグレーションシンク API を使用して、ソースまたはシンクとして機能できる再利用可能なコネクターとして機能します。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 およびシークレットアクセスキーが含まれている必要があります。このシークレットは、各 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

    &lt ;namespace > を IntegrationSink リソースが作成される namespace に置き換え、< accessKey > および < secretKey > を適切な AWS 認証情報に置き換えます。

3.5.2. AWS S3 with IntegrationSink

Amazon Web Services (AWS) Simple Storage Service (S3) Kamelet を使用すると、CloudEvents を Knative Eventing から Amazon S3 バケットに配信できます。この統合により、イベントをオブジェクトとして保存し、長期ストレージ、解析、またはダウンストリーム処理を行うことができます。

AWS S3 の IntegrationSink API を設定するには、有効な AWS 認証情報で Kubernetes シークレットを参照し、Amazon S3 バケット Amazon Resource Name (ARN)とそのリージョンを指定し、CloudEvents を生成するソースを設定する必要があります。

3.5.2.1. AWS S3 の IntegrationSink の作成

IntegrationSink API リソースを作成して、CloudEvent を Knative Eventing から Amazon Simple Storage Service (S3)バケットに配信できます。これにより、イベントデータを S3 内のオブジェクトとして永続化でき、長期使用のために保存したり、解析ツールで処理したり、ダウンストリームアプリケーションが消費したりできます。YAML マニフェストを適用して、CloudEvent を Amazon S3 バケットに配信するために IntegrationSink を作成できます。

前提条件

  • AWS 認証情報を作成し、それらをリソースと同じ namespace の Kubernetes Secret に保存している。
  • 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

    このマニフェストは、IntegrationSink API を、eu-north-1 リージョンの ARN (arn:aws:s3:::my-bucket)で識別される Amazon S3 バケットに CloudEvents を提供するように設定しますauth.secret.ref.name フィールドは、AWS 認証情報を保存する Kubernetes Secret (my-secret)を参照します。

3.5.3. AWS SNS with IntegrationSink

Amazon Web Services (AWS) Simple Notification Service (SNS) Kamelet を使用すると、CloudEvents を Knative Eventing から SNS トピックに配信できます。この統合は、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 の作成

IntegrationSink API リソースを作成し、YAML マニフェストを適用して CloudEvents を Knative Eventing から Amazon Simple Notification Service (SNS)トピックに公開できます。

前提条件

  • AWS 認証情報を作成し、それらをリソースと同じ namespace の Kubernetes Secret に保存している。
  • 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 with 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 マニフェストを適用して CloudEvents を Amazon SQS キューに送信するために IntegrationSink API リソースを作成できます。

前提条件

  • AWS 認証情報を作成し、それらをリソースと同じ namespace の Kubernetes Secret に保存している。
  • 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

    このマニフェストは、eu-north-1 リージョンの ARN で識別される SQS キューに CloudEvents を送信するように IntegrationSink API を設定します。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

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

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat