6.2. ワークフロースコープのイベントシステム設定
ワークフロースコープのイベントシステム設定を使用すると、特定のワークフローで生成および消費されるイベントの詳細なカスタマイズが可能になります。SonataFlow
CR の spec.sink.ref
および spec.sources[]
フィールドを使用して、発信および着信イベントを設定できます。
6.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 ...
- 1
- SonataFlow システムイベントを含む、ワークフローによって生成されるすべてのイベントに使用する Knative Eventing Broker の名前。
- 2
- Knative Eventing Broker の namespace を定義します。値を指定しない場合、パラメーターはデフォルトで
SonataFlow
namespace に設定されます。SonataFlow
と同じ namespace にブローカーを作成することを検討してください。 - 3
SonataFlow
CR の Flow 定義フィールド。- 4
SonataFlow
CR のイベント定義フィールド。- 5
- 発信イベント
outEvent1
定義の例。 - 6
outEvent1
発信イベントのイベントタイプ。
6.2.2. 着信イベントシステム設定
着信イベントを設定するには、SonataFlow
CR の spec.sources[]
フィールドを使用します。特定の設定を必要とする各イベントタイプのエントリーを追加できます。このセットアップにより、ワークフローはイベントタイプに基づいて異なるブローカーからのイベントを消費できるようになります。
着信イベントタイプに特定の Broker 設定がない場合、システムはイベントシステム設定の優先度ルールを適用します。
次の例は、ワークフロースコープの着信イベントシステムの 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 ...
- 1
- 指定された Knative Eventing Broker を使用して
in-event-type1
タイプのイベントを消費するようにワークフローを設定します。 - 2
- このワークフローに送信された
in-event-type1
タイプのイベントを消費するために使用する Knative Eventing Broker の名前。 - 3
- オプション: 値を指定しない場合、パラメーターはデフォルトで
SonataFlow
namespace に設定されます。SonataFlow
ワークフローと同じ namespace にブローカーを作成することを検討してください。 - 4
- 指定された Knative Eventing Broker を使用して
in-event-type2
タイプのイベントを消費するようにワークフローを設定します。 - 5
- このワークフローに送信された
in-event-type2
タイプのイベントを消費するために使用する Knative Eventing Broker の名前。 - 6
- オプション: 値を指定しない場合、パラメーターはデフォルトで
SonataFlow
namespace に設定されます。SonataFlow
ワークフローと同じ namespace にブローカーを作成することを検討してください。 - 7
SonataFlow
CR の Flow 定義フィールド。- 8
SonataFlow
CR のイベント定義フィールド。- 9
- 着信イベント
inEvent1
定義の例。 - 10
- 着信イベント
inEvent1
のイベントタイプ。対応するspec.sources[]
エントリーを含むワークフローイベントのリンクは、イベントタイプ名in-event-type1
を使用します。 - 11
- 着信イベント
inEvent2
定義の例。 - 12
- 着信イベント
inEvent2
のイベントタイプ。対応する spec.sources[] エントリーを含むワークフローイベントのリンクは、イベントタイプ名 in-event-type2 を使用して作成されます。