第 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 类型组成的事件定义,包括 noisysilent

事件定义示例

"events": [
    {
      "name": "noisyEvent",
      "source": "",
      "type": "noisy",
      "dataOnly" : "false"
    },
    {
      "name": "silentEvent",
      "source": "",
      "type": "silent"
    }
  ]

为指示当收到 noisysilent CloudEvent 类型时发生事件匹配,并为这两个 CloudEvent 类型执行不同的操作,请定义包含独立 onEvent 项中的事件定义的事件状态,并将 exclusive 属性设置为 false。

带有多个 onEvent 项的事件状态定义示例

{
    "name": "waitForEvent",
    "type": "event",
    "onEvents": [
      {
        "eventRefs": [
          "noisyEvent"
         ],
         "actions": [
           {
             "functionRef": "letsGetLoud"
           }
         ]
      },
      {
        "eventRefs": [
           "silentEvent"
        ],
        "actions": [
          {
            "functionRef": "beQuiet"
          }
        ]
      }
    ]
    ,
    "exclusive": false
  }

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.