8.2. 工作流范围的事件系统配置


工作流范围的事件系统配置允许详细自定义特定工作流生成和消耗的事件。您可以使用 SonataFlow CR 中的 spec.sink.refspec.sources[] 字段来配置传出和传入的事件。

8.2.1. 传出事件系统配置

要配置传出事件,您可以使用 SonataFlow CR 中的 spec.sink.ref 字段。此配置可确保工作流使用指定的 Knative Eventing Broker 生成事件,包括系统事件和工作流业务事件。

以下示例演示了如何为工作流范围的传出事件系统配置 SonataFlow CR:

apiVersion: sonataflow.org/v1alpha08
kind: SonataFlow
metadata:
  name: example-workflow
  namespace: example-workflow-namespace
  annotations:
    sonataflow.org/description: Example Workflow
    sonataflow.org/version: 0.0.1
    sonataflow.org/profile: preview
spec:
  sink:
    ref:
      name: outgoing-example-broker 
1

      namespace: outgoing-example-broker-namespace 
2

      apiVersion: eventing.knative.dev/v1
      kind: Broker
  flow: 
3

    start: ExampleStartState
    events: 
4

      - name: outEvent1 
5

        source: ''
        kind: produced
        type: out-event-type1 
6

    ...
Copy to Clipboard Toggle word wrap
1
用于工作流生成的所有事件的 Knative Eventing Broker 名称,包括 SonataFlow 系统事件。
2
定义 Knative Eventing Broker 的命名空间。如果没有指定值,则参数默认为 SonataFlow 命名空间。考虑在与 SonataFlow 相同的命名空间中创建代理。
3
SonataFlow CR 中的流定义字段。
4
SonataFlow CR 中的事件定义字段。
5
传出事件 outEvent1 定义示例。
6
outEvent1 传出事件的事件类型。

8.2.2. 传入事件系统配置

要配置传入的事件,您可以使用 SonataFlow CR 中的 spec.sources[] 字段。您可以为需要特定配置的每个事件类型添加一个条目。此设置允许工作流根据事件类型使用来自不同代理的事件。

如果传入的事件类型缺少特定的代理配置,系统会应用事件系统配置优先级规则。

以下示例演示了如何为工作流范围的传入事件系统配置 SonataFlow CR:

注意

spec.sources[] 条目和工作流事件之间的链接正在使用事件类型。

apiVersion: sonataflow.org/v1alpha08
kind: SonataFlow
metadata:
  name: example-workflow
  namespace: example-workflow-namespace
  annotations:
    sonataflow.org/description: Example Workflow
    sonataflow.org/version: 0.0.1
    sonataflow.org/profile: preview
spec:
  sources:
    - eventType: in-event-type1 
1

      ref:
        name: incoming-example-broker1 
2

        namespace: incoming-example-broker1-namespace 
3

        apiVersion: eventing.knative.dev/v1
        kind: Broker
    - eventType: in-event-type2 
4

      ref:
        name: incoming-example-broker2 
5

        namespace: incoming-example-broker2-namespace 
6

        apiVersion: eventing.knative.dev/v1
        kind: Broker
  flow: 
7

    start: ExampleStartState
    events: 
8

      - name: inEvent1 
9

        source: ''
        kind: consumed
        type: in-event-type1 
10

      - name: inEvent2 
11

        source: ''
        kind: consumed
        type: in-event-type2 
12

    ...
Copy to Clipboard Toggle word wrap
1
使用指定的 Knative Eventing Broker 将工作流配置为消耗 in-event-type1 类型的事件。
2
发送到此工作流的 Knative Eventing Broker 事件 所使用的 Knative Eventing Broker 名称。
3
可选:如果没有指定值,则参数默认为 SonataFlow 命名空间。考虑在与 SonataFlow 工作流相同的命名空间中创建代理。
4
使用指定的 Knative Eventing Broker 将工作流配置为消耗 in-event-type2 类型的事件。
5
发送到此工作流的 Knative Eventing Broker 事件 所使用的 Knative Eventing Broker 名称。
6
可选:如果没有指定值,则参数默认为 SonataFlow 命名空间。考虑在与 SonataFlow 工作流相同的命名空间中创建代理。
7
SonataFlow CR 中的流定义字段。
8
SonataFlow CR 中的事件定义字段。
9
传入事件 inEvent1 定义示例。
10
Event1 中传入事件的事件类型。工作流事件的链接与对应的 spec.sources[] 条目的链接通过使用事件类型名称 in-event-type1
11
传入事件 inEvent2 定义示例。
12
传入事件的事件类型 inEvent2。工作流事件的链接使用对应的 spec.sources[] 条目创建,使用事件类型名称 in-event-type2 创建。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat