第 6 章 OpenShift Serverless Logic 概述
OpenShift Serverless Logic 允许开发人员定义编配事件驱动的无服务器应用程序的声明工作流模型。
您可以使用 YAML 或 JSON 格式编写工作流模型,这是在云或容器环境中开发和部署无服务器应用程序的理想选择。
要在 OpenShift Container Platform 中部署工作流,您可以使用 OpenShift Serverless Logic Operator。
以下小节概述了 OpenShift Serverless Logic 概念。
6.1. 事件
事件状态由一个或多个事件定义组成。事件定义合并,以指定事件状态侦听的 CloudEvent
类型。您可以在指定的 CloudEvent
接收时,使用事件状态来启动新的工作流实例,或者暂停执行现有工作流实例,直到收到指定的 CloudEvent
实例。
在事件状态定义中,onEvents
属性用于对可能触发相同操作集的 CloudEvent
类型进行分组。事件定义中的
exclusive
属性指示如何计算事件匹配。如果 exclusive
属性的值为 false
,则必须收到 eventRefs
数组中的所有 CloudEvent
类型才能发生匹配项。否则,任何引用的 CloudEvent
类型的接收都被视为匹配项。
以下示例显示了由两个 CloudEvent 类型组成的事件定义,包括 noisy
和 silent
:
事件定义示例
"events": [ { "name": "noisyEvent", "source": "", "type": "noisy", "dataOnly" : "false" }, { "name": "silentEvent", "source": "", "type": "silent" } ]
为指示当收到 noisy
和 silent
CloudEvent 类型时发生事件匹配,并为这两个 CloudEvent 类型执行不同的操作,请定义包含独立 onEvent
项中的事件定义的事件状态,并将 exclusive
属性设置为 false。
带有多个 onEvent
项的事件状态定义示例
{ "name": "waitForEvent", "type": "event", "onEvents": [ { "eventRefs": [ "noisyEvent" ], "actions": [ { "functionRef": "letsGetLoud" } ] }, { "eventRefs": [ "silentEvent" ], "actions": [ { "functionRef": "beQuiet" } ] } ] , "exclusive": false }