10.3. 使用订阅将事件从频道发送到 sink
订阅向频道的事件 sink 提供订阅。
10.3.1. 创建订阅
您可以创建订阅将服务或其他事件 sink 连接到频道。
重要
Knative Eventing 是一个技术预览功能。InMemoryChannel 类型仅用于开发环境,不应在生产环境中使用。
先决条件
- 您必须在 OpenShift Container Platform 集群中安装 OpenShift Serverless,包括 Knative Serving 和 Eventing。这可由集群管理员安装。
- 如果没有您要使用的现有 sink,请按照创建和管理无服务器应用程序文档进行操作,创建 一个 Service 以用作 sink。
- 您必须有一个频道才能连接到您的订阅。请参阅 使用 Knative Eventing 的频道。
流程
通过创建一个包含以下内容的 YAML 文件,创建一个 Subscription 对象来连接频道到服务:
apiVersion: messaging.knative.dev/v1beta1 kind: Subscription metadata: name: my-subscription 1 namespace: default spec: channel: 2 apiVersion: messaging.knative.dev/v1beta1 kind: Channel name: example-channel delivery: 3 deadLetterSink: ref: apiVersion: serving.knative.dev/v1 kind: Service name: error-handler subscriber: 4 ref: apiVersion: serving.knative.dev/v1 kind: Service name: event-display
- 1
- 订阅的名称。
- 2
- 订阅连接的频道的配置设置。
- 3
- 事件交付的配置设置。这会告诉订阅无法发送给订阅者的事件。配置后,消耗的事件会发送到
deadLetterSink
。事件将被丢弃,不会尝试重新发送该事件,并在系统中记录错误。deadLetterSink
的值需要是一个 Destination。 - 4
- 订阅用户的配置设置。这是事件从频道发送的事件 sink。
输入以下内容应用 YAML 文件:
$ oc apply -f <FILENAME>