计算
弹性云服务器 ECS
Flexus云服务
裸金属服务器 BMS
弹性伸缩 AS
镜像服务 IMS
专属主机 DeH
函数工作流 FunctionGraph
云手机服务器 CPH
Huawei Cloud EulerOS
网络
虚拟私有云 VPC
弹性公网IP EIP
虚拟专用网络 VPN
弹性负载均衡 ELB
NAT网关 NAT
云专线 DC
VPC终端节点 VPCEP
云连接 CC
企业路由器 ER
企业交换机 ESW
全球加速 GA
安全与合规
安全技术与应用
Web应用防火墙 WAF
企业主机安全 HSS
云防火墙 CFW
安全云脑 SecMaster
DDoS防护 AAD
数据加密服务 DEW
数据库安全服务 DBSS
云堡垒机 CBH
数据安全中心 DSC
云证书管理服务 CCM
边缘安全 EdgeSec
态势感知 SA
威胁检测服务 MTD
CDN与智能边缘
内容分发网络 CDN
CloudPond云服务
智能边缘云 IEC
迁移
主机迁移服务 SMS
对象存储迁移服务 OMS
云数据迁移 CDM
迁移中心 MGC
大数据
MapReduce服务 MRS
数据湖探索 DLI
表格存储服务 CloudTable
云搜索服务 CSS
数据接入服务 DIS
数据仓库服务 GaussDB(DWS)
数据治理中心 DataArts Studio
数据可视化 DLV
数据湖工厂 DLF
湖仓构建 LakeFormation
企业应用
云桌面 Workspace
应用与数据集成平台 ROMA Connect
云解析服务 DNS
专属云
专属计算集群 DCC
IoT物联网
IoT物联网
设备接入 IoTDA
智能边缘平台 IEF
用户服务
账号中心
费用中心
成本中心
资源中心
企业管理
工单管理
国际站常见问题
ICP备案
我的凭证
支持计划
客户运营能力
合作伙伴支持计划
专业服务
区块链
区块链服务 BCS
Web3节点引擎服务 NES
解决方案
SAP
高性能计算 HPC
视频
视频直播 Live
视频点播 VOD
媒体处理 MPC
实时音视频 SparkRTC
数字内容生产线 MetaStudio
存储
对象存储服务 OBS
云硬盘 EVS
云备份 CBR
存储容灾服务 SDRS
高性能弹性文件服务 SFS Turbo
弹性文件服务 SFS
云硬盘备份 VBS
云服务器备份 CSBS
数据快递服务 DES
专属分布式存储服务 DSS
容器
云容器引擎 CCE
容器镜像服务 SWR
应用服务网格 ASM
华为云UCS
云容器实例 CCI
管理与监管
云监控服务 CES
统一身份认证服务 IAM
资源编排服务 RFS
云审计服务 CTS
标签管理服务 TMS
云日志服务 LTS
配置审计 Config
资源访问管理 RAM
消息通知服务 SMN
应用运维管理 AOM
应用性能管理 APM
组织 Organizations
优化顾问 OA
IAM 身份中心
云运维中心 COC
资源治理中心 RGC
应用身份管理服务 OneAccess
数据库
云数据库 RDS
文档数据库服务 DDS
数据管理服务 DAS
数据复制服务 DRS
云数据库 GeminiDB
云数据库 GaussDB
分布式数据库中间件 DDM
数据库和应用迁移 UGO
云数据库 TaurusDB
人工智能
人脸识别服务 FRS
图引擎服务 GES
图像识别 Image
内容审核 Moderation
文字识别 OCR
AI开发平台ModelArts
图像搜索 ImageSearch
对话机器人服务 CBS
华为HiLens
视频智能分析服务 VIAS
语音交互服务 SIS
应用中间件
分布式缓存服务 DCS
API网关 APIG
微服务引擎 CSE
分布式消息服务Kafka版
分布式消息服务RabbitMQ版
分布式消息服务RocketMQ版
多活高可用服务 MAS
事件网格 EG
企业协同
华为云会议 Meeting
云通信
消息&短信 MSGSMS
云生态
合作伙伴中心
云商店
开发者工具
SDK开发指南
API签名指南
Terraform
华为云命令行工具服务 KooCLI
其他
产品价格详情
系统权限
管理控制台
客户关联华为云合作伙伴须知
消息中心
公共问题
开发与运维
应用管理与运维平台 ServiceStage
软件开发生产线 CodeArts
需求管理 CodeArts Req
部署 CodeArts Deploy
性能测试 CodeArts PerfTest
编译构建 CodeArts Build
流水线 CodeArts Pipeline
制品仓库 CodeArts Artifact
测试计划 CodeArts TestPlan
代码检查 CodeArts Check
代码托管 CodeArts Repo
云应用引擎 CAE
开天aPaaS
云消息服务 KooMessage
云手机服务 KooPhone
云空间服务 KooDrive

创建函数流任务

更新时间:2024-11-11 GMT+08:00

本章节主要介绍如何创建函数流任务和编排函数流任务。您可以根据实际业务场景来创建标准函数流或快速函数流。

  • 标准模式面向普通的业务场景,支持长时间任务,支持执行历史持久化和查询,只支持异步调用,在函数流运行记录页面查询执行结果。
  • 快速模式面向业务执行时长较短,需要极致性能的场景,只支持流程执行时长低于5分钟的场景,不支持执行历史持久化(比如不支持查询执行节点的历史信息),支持同步和异步调用。通过同步执行函数流接口进行函数流的同步执行,接口直接返回函数流执行结果,同时日志页面查看上报到LTS的函数流执行日志。
    说明:

    快速函数流限时免费,欢迎体验!

前提条件

操作步骤

  1. 登录FunctionGraph控制台,进入“函数流”页面。
  2. 在“函数流”页面,单击“创建标准函数流”或“创建快速函数流”,进入新建函数流页面。

    说明:

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

  3. 编排函数流任务,请您根据实际应用进行函数流编排。

    1. 在函数流页面,通过拖拽组件进行流程编排。
      图1为例,将开始节点、函数、结束节点拖入编辑框内,并用连接线连接好。
      图1 编排函数流
    2. 单击编辑框中函数节点进行编辑。配置函数参数,参数说明如表1所示,带*参数为必填项。
      说明:

      配置函数前确保已创建好函数,示例中的函数节点选择函数2(函数执行返回result的值为函数调用事件内的input输入值+2的结果值),参见图2配置。

      图2 函数节点配置
      表1 函数参数说明

      参数

      说明

      *应用

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

      *函数

      FunctionGraph中对应的函数。

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

      *版本

      FunctionGraph中函数对应的版本。

      *调用方式

      函数流执行函数节点时的调用方式,默认为同步调用

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

      函数参数

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

      Key:填写参数

      Value:填写参数值

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

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

      输入过滤表达式(JSONPath)

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

      输出过滤表达式(JSONPath)

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

    3. 单击编辑框中的EG节点进行编辑。配置EG参数,参数说明如表2所示,带*参数为必填项。
      说明:

      配置EG节点前确保已创建好EG自定义事件源和自定义事件通道,参见图3

      图3 EG节点配置
      表2 EG节点参数说明

      参数

      说明

      *事件通道

      事件通道负责接收来自事件源的事件。函数流仅支持编排自定义事件通道:您自行创建的事件通道,用于接收自定义事件源产生的事件。详情请参考事件网格服务关于事件通道的介绍。

      *事件源

      事件源是事件的来源,函数流仅支持自定义的应用作为事件源,通过自定义的事件通道发布事件到事件网格。

      详情请参考事件网格服务关于事件源的介绍

      事件内容格式

      参数“事件负载内容”的内容格式。

      说明:

      目前只支持application/json格式。

      事件负载内容

      事件内容。

      事件发生主题

      事件发生的主题或对象,用以标识哪个具体对象发生了当前事件

      输入过滤表达式(JSONPath)

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

      输出过滤表达式(JSONPath)

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

    4. 若您的函数流任务中配置了流程控制器,请参见表3进行配置,带*参数为必填项。
      表3 流程控制器参数说明

      类型

      参数

      说明

      回调节点

      *回调超时时间(分钟)

      回调节点的最长等待时间,超时无回调响应,该节点执行失败。

      *回调类型

      函数流可供回调的服务节点类型。

      说明:

      目前只支持函数节点。

      *应用

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

      *函数

      FunctionGraph中对应的函数。

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

      *版本

      FunctionGraph中函数对应的版本。

      *调用方式

      函数流执行函数节点时的调用方式,默认为同步调用

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

      函数参数

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

      Key:填写参数

      Value:填写参数值

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

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

      输入过滤表达式

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

      输出过滤表达式

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

      子流程

      选择子流程

      选择已创建的函数流任务。

      是否等待子流程完成

      默认选择“是”。

      输入过滤表达式(JSONPath)

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

      输出过滤表达式(JSONPath)

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

      并行分支

      *分支执行完成条件

      • 所有分支执行完成:2个或2个以上分支时选择该条件
      • 一个分支执行完成:只有1个分支时选择该条件
      • 指定数目分支执行完成:2个或2个以上分支时其中某个分支可以选择该条件

      输入过滤表达式(JSONPath)

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

      输出过滤表达式(JSONPath)

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

      指定分支执行完成数目

      当“分支执行完成条件”选择指定数目分支执行完成时,支持自定义执行完成的数目。

      *结果输出路径

      输入并行分支执行结果输出位置,输入值作为key,并行分支执行结果作为value,以json形式输出。若未填写,默认输出路径为:result。

      开始节点

      加入触发器

      用于标识流程的开始,一个流程只能有一个开始节点。如何创建函数流触发器,请参见创建函数流触发器

      异常处理

      *是否重试

      默认关闭,开启后可以控制函数执行失败后的下一步流程。

      • 重试条件(JSONPath):例如: $.status == 500
      • 重试间隔(1-30秒):默认重试间隔1S
      • 最大重试次数(1-8):默认重试次数3次

      *异常分支表达式

      JSONPath表达式,表达式结果为true时,异常捕获成功,函数流执行至异常分支。

      循环节点

      *遍历数组路径(JSONPath)

      需要遍历的数组类型变量地址。

      *迭代变量名称

      每次循环迭代,引用数组中元素的参数名称。

      *结果输出路径(JSONPath)

      指定全部迭代分支执行结果数组的输出位置。

      并发迭代数目

      并发运行迭代分支的数目,限制0-100, 0代表并发拉起的数目无限制。

      并发迭代时间间隔(秒)

      每次迭代间隔的时间。

      输入过滤表达式(JSONPath)

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

      输出过滤表达式(JSONPath)

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

      时间等待

      *延迟时间(秒)

      默认60秒。

      服务节点

      执行模式

      定义服务节点中函数的执行顺序。

      • 串行模式:服务中的函数节点按照连线顺序依次执行,可以严格保证函数的执行顺序
      • 并行模式:服务中的函数节点并行执行,不保证内部函数节点的执行顺序

      输入过滤表达式

      通过JSONPath表达式对节点的输入信息进行过滤。

      输出过滤表达式

      通过JSONPath表达式对节点的输出信息进行过滤。

      条件分支

      *分支类型

      • 条件分支
      • 默认分支

      当一个分支选择条件分支时,必须要有一个分支选择默认分支。

      表达式

      选择“条件分支”,需要输入JSONPath类型表达式。使用方法请参见表达式运算符说明

      输入过滤表达式

      通过JSONPath表达式对节点的输入信息进行过滤。

      输出过滤表达式

      通过JSONPath表达式对节点的输出信息进行过滤。

      结束节点

      流程结束的标志

      后面不能接任何节点。

    5. 流程中的所有节点参数配置完成后,单击右上角的“保存”。
      说明:

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

    6. 在新建函数流页面,单击左上角函数流名称右边的,进行参数配置,最后单击“确定”。
      表4 输入配置信息

      参数

      说明

      *名称

      输入函数流名称。

      *企业项目

      选择企业项目。

      合并参数

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

      描述

      输入函数流的简要描述。

      图4 编辑函数流
    7. 单击“启动”,在弹出的启动执行页面,支持输入定义值或者直接启动。此处选择“输入定义值”。
      {
        "input":3
      }
      图5 启动执行配置
      说明:

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

    8. 单击“开始执行”,页面右上角提示“启动函数流xxx成功”。
    9. 单击函数流任务名称,进入函数流任务详情,查看函数流执行结果。

查看函数流任务

  1. 返回函数工作流控制台,进入“函数流”页面。
  2. 在函数流页面,支持设置函数流任务卡片显示和列表显示。

    图6 设置显示方法
    • 卡片显示
      图7 卡片显示
    • 列表显示
      图8 列表显示

  3. 在函数流页面,可以查看所有已创建的函数流任务,您可以执行如表5中的管理操作。

    表5 操作说明

    操作项

    说明

    编辑

    在函数流任务卡片中,单击“编辑”,进入函数流编辑页面,更新修改函数流任务信息。

    启动

    在函数流任务卡片中,单击“更多 > 启动”,启动该函数流任务。

    删除

    • 支持单个删除任务:在函数流任务卡片中,单击“更多 > 删除”,删除该函数流任务。
    • 批量删除任务:勾选多个函数流任务,单击左上角的“删除”,删除所选函数流任务。

  4. 单击某一个函数流任务名称,查看任务详情。

    • 查看任务基本信息

      在“基本信息”页签,查看任务名称、ID、更新时间和创建时间等信息。

    • 查看任务运行记录

      在“运行记录”页签,查看任务的执行历史记录、输入值、输出值、节点日志等信息。

      若需要修改任务信息,单击右上角的“函数流设计”,进入函数流编辑页面,更新修改任务。

    • 查看函数流监控指标

      在“监控”页签,查看任务的调用次数、运行时间、错误次数、运行中信息。监控指标说明如表5 函数流监控指标所示。

      表6 函数流监控指标

      指标

      单位

      说明

      调用次数

      函数流总的调用请求数,包含了正确、错误和运行中的调用。异步函数流在请求被系统执行时才开始计数。

      运行时间

      毫秒

      时间段内单次函数流执行平均的运行时间。

      错误次数

      指发生异常请求的函数流不能正确执行完,会计入错误次数。

      运行中

      正在运行中的函数流的数量。

      被拒绝次数

      指被限流无法执行函数流的次数

我们使用cookie来确保您的高速浏览体验。继续浏览本站,即表示您同意我们使用cookie。 详情

文档反馈

文档反馈

意见反馈

0/500

标记内容

同时提交标记内容