更新时间:2024-12-16 GMT+08:00
分享

配置函数流的服务控制器组件

函数流的服务控制器组件支持两种执行模式:串行模式和并行模式。

准备

  • 已经在FunctionGraph控制台创建函数1、函数2、函数3和函数4(运行时语言都使用Python 3.9,代码及功能介绍如下所示),如何创建请参见创建空白函数
    • 函数1功能:函数执行返回result的值为函数调用事件内的input输入值+2的结果值
      import json
      def handler (event, context):
          input = event.get('input',0)
          return {
              "result": input+2
              }
    • 函数2功能:函数执行返回result的值为函数调用事件内的input输入值平方的结果值
      import json
      def handler (event, context):
          input = event.get('input',0)
          return {
              "result": input*input
              }
    • 函数3和函数4功能:函数执行返回result的值为“success”。
      import json
      def handler (event, context):
          print(event)
          return {"result":"success"}
  • 使用函数流功能前,请先了解组件说明编排规则表达式运算符说明

串行模式操作步骤

  1. 登录函数工作流控制台,左侧导航栏单击“函数流”。
  2. 单击“创建标准函数流”或“创建快速函数流”,进入新建函数流编排页面。

    如果通过DWR侧创建的函数流,在console页面是没有编辑和删除权限,如需相关操作请在DWR侧执行。

  3. 在函数流编排区域,通过拖拽组件进行流程编排。

    单击服务节点,在弹出的配置窗口中选择“串行模式”。
    图1 服务节点配置

  4. 函数节点分别选择已创建的函数1函数2,函数流的配置如下。函数参数配置说明请参见表1

    图2 函数1配置
    图3 函数2配置
    表1 函数参数说明

    参数

    说明

    *应用

    函数所属应用,用户创建函数时可以进行分组,每个函数应用下面可以创建多个函数,在函数创建时可以指定其归属于某个函数应用。

    *函数

    FunctionGraph中对应的函数。

    说明:
    • 配置的函数节点返回的数据格式必须是json格式,否则会解析失败。
    • 仅对于Go函数支持返回流式数据:在函数详情页的“设置 > 高级设置”下,打开“返回流式数据”开关即可。

    *版本

    FunctionGraph中函数对应的版本。

    *调用方式

    创建标准函数流时,需要配置此参数。函数流执行函数节点时的调用方式,默认为同步调用。

    说明:
    • 同步调用不支持长时间函数,最大执行时长为15分钟
    • 异步调用支持长时间函数,单函数节点的最大执行时长以函数服务支持的最大执行时长为准

    函数参数

    流程中以json格式作为body参数在执行时传入函数。

    Key:填写参数

    Value:填写参数值

    DefaultValue:设置默认值,参数未获取到值时,默认获取默认值

    操作:编辑或删除设置的参数

    输入过滤表达式

    基于上一个流程的json输出参数,可以使用JSONPath格式来选择性的过滤出当前流程的输入参数。

    结果输出路径

    通过JSONPath表达式确定节点的输出数据的路径。

    开启容灾函数

    开启后,当前节点名称不能与其他函数节点名称重复。

  5. 流程中的所有节点参数配置完成后,单击右上角的“保存”,进行参数配置,最后单击“确定”。

    表2 配置信息

    参数

    说明

    *名称

    输入函数流名称。

    *企业项目

    选择企业项目。

    *日志记录

    创建快速函数流,保存时需要选择此参数。

    • ALL:为所有事件启用日志记录。
    • ERROR:仅启用错误日志记录。
    • NONE:关闭日志记录。

    合并参数

    将上一个节点的输出与下一个节点的输入合并为输入。

    支持返回流式数据

    创建快速函数流时可配置此参数。开启后,函数流执行支持返回流式数据。可参见流式文件处理

    说明:

    需函数流中函数节点的代码调用流式数据接口

    描述

    输入函数流的简要描述。

    函数流中的节点改动后,必须先保存信息,再启动函数流任务。

  6. 保存成功后,单击“启动”,在弹出的启动执行页面,支持定义输入值或者直接启动。此处选择“定义输入值”。

    {
      "input":3
    }
    图4 启动执行配置

    输入定义值必须是JSON格式的内容。

  7. 单击“开始执行”,页面右上角提示“启动函数流xxx成功”。
  8. 查看标准函数流或快速函数流执行结果请参见查看执行结果

并行模式操作步骤

  1. 返回函数流列表页面,单击“创建标准函数流”或“创建快速函数流”,进入新建函数流编排页面。

    如果通过DWR侧创建的函数流,在console页面是没有编辑和删除权限,如需相关操作请在DWR侧执行。

  2. 在函数流编排区域,通过拖拽组件进行流程编排。

    单击服务节点,在弹出的配置窗口中选择“并行模式”。
    图5 服务节点配置

  3. 函数节点分别选择已创建的函数3和函数4,函数流的配置如下。函数参数配置说明请参见表3

    图6 函数3配置
    图7 函数4配置
    表3 函数参数说明

    参数

    说明

    *应用

    函数所属应用,用户创建函数时可以进行分组,每个函数应用下面可以创建多个函数,在函数创建时可以指定其归属于某个函数应用。

    *函数

    FunctionGraph中对应的函数。

    说明:
    • 配置的函数节点返回的数据格式必须是json格式,否则会解析失败。
    • 仅对于Go函数支持返回流式数据:在函数详情页的“设置 > 高级设置”下,打开“返回流式数据”开关即可。

    *版本

    FunctionGraph中函数对应的版本。

    *调用方式

    创建标准函数流时,需要配置此参数。函数流执行函数节点时的调用方式,默认为同步调用。

    说明:
    • 同步调用不支持长时间函数,最大执行时长为15分钟
    • 异步调用支持长时间函数,单函数节点的最大执行时长以函数服务支持的最大执行时长为准

    函数参数

    流程中以json格式作为body参数在执行时传入函数。

    Key:填写参数

    Value:填写参数值

    DefaultValue:设置默认值,参数未获取到值时,默认获取默认值

    操作:编辑或删除设置的参数

    输入过滤表达式

    基于上一个流程的json输出参数,可以使用JSONPath格式来选择性的过滤出当前流程的输入参数。

    结果输出路径

    通过JSONPath表达式确定节点的输出数据的路径。

    开启容灾函数

    开启后,当前节点名称不能与其他函数节点名称重复。

  4. 流程中的所有节点参数配置完成后,单击右上角的“保存”,进行参数配置,最后单击“确定”。

    表4 配置信息

    参数

    说明

    *名称

    输入函数流名称。

    *企业项目

    选择企业项目。

    *日志记录

    创建快速函数流,保存时需要选择此参数。

    • ALL:为所有事件启用日志记录。
    • ERROR:仅启用错误日志记录。
    • NONE:关闭日志记录。

    合并参数

    将上一个节点的输出与下一个节点的输入合并为输入。

    支持返回流式数据

    创建快速函数流时可配置此参数。开启后,函数流执行支持返回流式数据。可参见流式文件处理

    说明:

    需函数流中函数节点的代码调用流式数据接口

    描述

    输入函数流的简要描述。

    函数流中的节点改动后,必须先保存信息,再启动函数流任务。

  5. 保存成功后,单击“启动”,在弹出的启动执行页面,支持定义输入值或者直接启动。此处选择“定义输入值”。

    {
      "test":123
    }
    图8 启动执行配置

    输入定义值必须是JSON格式的内容。

  6. 单击“开始执行”,页面右上角提示“启动函数流xxx成功”。
  7. 查看标准函数流或快速函数流执行结果请参见查看执行结果

    如果两个函数执行返回的输出值结构一致,会导致函数执行结果被覆盖。

相关文档