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
namespace: outgoing-example-broker-namespace
apiVersion: eventing.knative.dev/v1
kind: Broker
flow:
start: ExampleStartState
events:
- name: outEvent1
source: ''
kind: produced
type: out-event-type1
...
- 1
- SonataFlow システムイベントを含む、ワークフローによって生成されるすべてのイベントに使用する Knative Eventing Broker の名前。
- 2
- Knative Eventing Broker の namespace を定義します。値を指定しない場合、パラメーターはデフォルトで
SonataFlownamespace に設定されます。SonataFlowと同じ namespace にブローカーを作成することを検討してください。 - 3
SonataFlowCR の Flow 定義フィールド。- 4
SonataFlowCR のイベント定義フィールド。- 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
ref:
name: incoming-example-broker1
namespace: incoming-example-broker1-namespace
apiVersion: eventing.knative.dev/v1
kind: Broker
- eventType: in-event-type2
ref:
name: incoming-example-broker2
namespace: incoming-example-broker2-namespace
apiVersion: eventing.knative.dev/v1
kind: Broker
flow:
start: ExampleStartState
events:
- name: inEvent1
source: ''
kind: consumed
type: in-event-type1
- name: inEvent2
source: ''
kind: consumed
type: in-event-type2
...
- 1
- 指定された Knative Eventing Broker を使用して
in-event-type1タイプのイベントを消費するようにワークフローを設定します。 - 2
- このワークフローに送信された
in-event-type1タイプのイベントを消費するために使用する Knative Eventing Broker の名前。 - 3
- オプション: 値を指定しない場合、パラメーターはデフォルトで
SonataFlownamespace に設定されます。SonataFlowワークフローと同じ namespace にブローカーを作成することを検討してください。 - 4
- 指定された Knative Eventing Broker を使用して
in-event-type2タイプのイベントを消費するようにワークフローを設定します。 - 5
- このワークフローに送信された
in-event-type2タイプのイベントを消費するために使用する Knative Eventing Broker の名前。 - 6
- オプション: 値を指定しない場合、パラメーターはデフォルトで
SonataFlownamespace に設定されます。SonataFlowワークフローと同じ namespace にブローカーを作成することを検討してください。 - 7
SonataFlowCR の Flow 定義フィールド。- 8
SonataFlowCR のイベント定義フィールド。- 9
- 着信イベント
inEvent1定義の例。 - 10
- 着信イベント
inEvent1のイベントタイプ。対応するspec.sources[]エントリーを含むワークフローイベントのリンクは、イベントタイプ名in-event-type1を使用します。 - 11
- 着信イベント
inEvent2定義の例。 - 12
- 着信イベント
inEvent2のイベントタイプ。対応する spec.sources[] エントリーを含むワークフローイベントのリンクは、イベントタイプ名 in-event-type2 を使用して作成されます。