3.5. IntegrationSink 入门


重要

OpenShift Serverless IntegrationSink 功能只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围

IntegrationSink API 是一个 Knative Eventing 自定义资源(CR),可让您将事件从 Knative 发送到外部系统。它利用 Apache Camel 项目中的所选的 Kamelets。

kamelets 充当可重复使用的连接器,它们可以使用 IntegrationSink API 作为源或 sink.By,您可以可靠地将 Knative Eventing 中生成的 CloudEvents 传送到第三方服务和外部系统。

OpenShift Serverless 支持以下 Kamelet sink:

  • AWS Simple Storage Service (S3)
  • AWS Simple Notification Service (SNS)
  • AWS Simple Queue Service (SQS)
  • 通用日志记录器接收器

3.5.1. 创建 AWS 凭证

几个 IntegrationSink API 资源需要访问 Amazon Web Services (AWS)服务,如 S3、SNS 和 SQS。要安全地连接,您必须在创建 IntegrationSink API 资源的命名空间中创建一个包含有效 AWS 凭证的 Kubernetes Secret。

Secret 必须包含 AWS 访问密钥 ID 和具有足够权限的 secret 访问密钥来访问目标 AWS 服务。然后,每个 IntegrationSink 配置中都会引用此 Secret。

先决条件

  • 您有一个带有访问密钥 ID 和 secret 访问密钥的 AWS 帐户,它提供对相关服务的访问。
  • 已安装 OpenShift CLI (oc)并登录到集群。
  • 您已找出在其中创建 IntegrationSink 资源的命名空间。

流程

  • 运行以下命令来创建 secret:

    $ 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 资源的命名空间,并将 < accessKey& gt; 和 & lt;secretKey& gt; 替换为适当的 AWS 凭证。

3.5.2. 带有 IntegrationSink 的 AWS S3

Amazon Web Services (AWS) Simple Storage Service (S3) Kamelet 允许您将来自 Knative Eventing 的 CloudEvents 传送到 Amazon S3 存储桶。通过这种集成,可以将事件存储为长期存储、分析或下游处理的对象。

要为 AWS S3 配置 IntegrationSink API,您必须使用有效的 AWS 凭证引用 Kubernetes Secret,指定 Amazon S3 存储桶 Amazon 资源名称(ARN)及其区域,并配置生成 CloudEvents 的源。

3.5.2.1. 为 AWS S3 创建 IntegrationSink

您可以创建一个 IntegrationSink API 资源,将来自 Knative Eventing 的 CloudEvents 传送到 Amazon Simple Storage Service (S3)存储桶。这可让您将事件数据持久化为 S3 中的对象,用于存储长期使用、由分析工具处理或由下游应用程序使用。您可以通过应用 YAML 清单,创建一个 IntegrationSink 来将 CloudEvents 传送到 Amazon S3 存储桶。

先决条件

  • 您已创建了 AWS 凭证,并将其存储在与资源相同的命名空间中的 Kubernetes Secret 中。
  • 已安装 OpenShift CLI (oc)并登录到集群。
  • 您知道创建 IntegrationSink 资源的命名空间。
  • Knative 代理或另一个事件源存在来生成 CloudEvents 以传送到此接收器。

流程

  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,将 CloudEvents 传送到由 eu-north-1 区域中的 ARN (arn:aws:s3:::my-bucket)标识的 Amazon S3 存储桶。auth.secret.ref.name 字段引用存储 AWS 凭证的 Kubernetes Secret (my-secret)。

3.5.3. 带有 IntegrationSink 的 AWS SNS

Amazon Web Services (AWS) Simple Notification Service (SNS) Kamelet 允许您将 CloudEvents 从 Knative Eventing 传送到 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 的 CloudEvents 发布到 Amazon Simple Notification Service (SNS)主题。

先决条件

  • 您已创建了 AWS 凭证,并将其存储在与资源相同的命名空间中的 Kubernetes Secret 中。
  • 已安装 OpenShift CLI (oc)并登录到集群。
  • 您知道创建 IntegrationSink 资源的命名空间。
  • Knative 代理或另一个事件源存在来生成 CloudEvents 以传送到此接收器。

流程

  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

    此清单配置 IntegrationSink API,将 CloudEvents 发布到 eu-north-1 区域中的 ARN 标识的 SNS 主题。auth.secret.ref.name 字段引用存储 AWS 凭证的 Kubernetes Secret (my-secret)。

3.5.4. 带有 IntegrationSink 的 AWS SQS

Amazon Web Services (AWS) Simple Queue Service (SQS) Kamelet 允许您将 CloudEvents 从 Knative Eventing 发送到 SQS 队列。当您需要事件生成者和用户之间的可靠、分离的消息交付,或者下游系统从队列异步处理事件时,此集成很有用。

要为 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 凭证,并将其存储在与资源相同的命名空间中的 Kubernetes Secret 中。
  • 已安装 OpenShift CLI (oc)并登录到集群。
  • 您知道创建 IntegrationSink 资源的命名空间。
  • Knative 代理或另一个事件源存在来生成将发送到此 sink 的 CloudEvents。

流程

  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,将 CloudEvents 发送到由 eu-north-1 区域中的 ARN 标识的 SQS 队列。auth.secret.ref.name 字段引用存储 AWS 凭证的 Kubernetes Secret (my-secret)。

Log Sink Kamelet 允许您将 Knative Eventing 中的 CloudEvents 直接输出到应用程序日志中。此 sink 主要用于调试或测试事件流,因为它可以在不需要外部系统的情况下了解事件有效负载和元数据。

要为日志记录器配置 IntegrationSink API 资源,您可以设置日志记录级别和可选的显示事件标头。

3.5.5.1. 为 Logger 创建 IntegrationSink

您可以通过应用 YAML 清单来创建 IntegrationSink API 资源来记录 CloudEvents。

先决条件

  • 已安装 OpenShift CLI (oc)并登录到集群。
  • 您知道创建 IntegrationSink 资源的命名空间。
  • Knative 代理或另一个事件源存在来生成 CloudEvents 以传送到此接收器。

流程

  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 资源,以记录它在 INFO 级别接收的所有 CloudEvents。showHeaders 选项设为 true,这意味着同时记录事件的 HTTP 标头。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat