上云无忧 > 文档中心 > 百度智能云函数计算 CFC 工作流错误处理
函数计算CFC
百度智能云函数计算 CFC 工作流错误处理

文档简介:
工作流在执行过程中,可能会因为各种原因出错导致执行失败。目前,operation、foreach、parallel 三类节点支持定义错误重试与错误捕获。
*此产品及展示信息均由百度智能云官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

概述

工作流在执行过程中,可能会因为各种原因出错导致执行失败。目前,operation、foreach、parallel 三类节点支持定义错误重试与错误捕获。

错误重试(retry)

错误重试,指在节点执行出错时进行多次重试。retry 字段负责错误重试的定义,它的值是一个包含若干重试策略的数组,每个重试策略包含了它所匹配的错误码,错误码命中时策略生效,并不再去匹配其它策略。具体字段如下:

字段 类型 描述
errors(必需) array of string 策略所匹配的错误码集合
intervalSeconds(可选) integer 第一次重试之前等待的秒数(默认值为1)
maxIntervalSeconds(可选) integer 最大重试等待时间(默认值为10)
maxAttempts(可选) integer 重试的最大次数(默认值为2),如果错误发生次数超过指定值,则停止重试
multiplier(可选) integer 重试时间间隔倍数(默认值为2)

错误捕获(catch)

如果工作流发生错误的节点没有定义 retry,或者 retry 没命中错误码,或者 retry 已超过重试最大次数,工作流会查看该节点是否定义了错误捕获 catch。catch 与 retry 类似,它的值是一个包含若干捕获策略的数组,每个捕获策略同样包含了它所匹配的错误码。如果定义了 retry 并且命中捕获策略,那就会按照策略跳转到其它节点执行。具体字段如下:

字段 类型 描述
errors(必需) array of string 策略所匹配的错误码集合
next(必需) string 捕获错误后,要执行的下一个节点。下一个节点需要在同一个分支和层级,具体请看节点拓扑关系

示例

示例如下,retry 字段包含了两个重试策略,第一个策略匹配 CFC.InternalException 和 CFC.TooManyRequestsException 错误,第二个策略匹配任意错误。当两个重试策略未匹配到错误码,或已超过最大重试次数时,则不再重试。如果 catch 匹配到了错误码,那么就会执行 orderFailedHandler 这个节点。

name: demo start: order states: - type: operation name: order resource: brn:bce:cfc:bj
:123456:function:order:$LATEST end: true retry: - errors: - CFC.InternalException - 
CFC.TooManyRequestsException intervalSeconds: 5 maxAttempts: 3 multiplier: 2 - errors: 
- XFlow.ALL intervalSeconds: 3 maxAttempts: 2 catch: - errors: - XFlow.RuntimeError next:
 orderFailedHandler - type: pass name: orderFailedHandler description: "handle order fail" end: true

错误码

retry 和 catch 的策略依赖错误码匹配,相关的错误码如下。

工作流服务错误码:

错误码 描述
XFlow.InternalError 工作流服务内部错误
XFlow.RuntimeError 节点执行过程中发生的错误,比如 switch 判断结果非 bool、输入输出数据非 JSON 等
XFlow.DataLimitExceeded 节点的输入输出数据太大,目前限制为 250 KB
XFlow.OperationFailed 任务节点执行失败,一般为 CFC 函数代码执行时抛出异常或超时
XFlow.ALL 匹配所有错误类型

公共错误码: 见 百度云公共错误码

CFC 错误码: 见 CFC 错误码

相似文档
  • DuerOS 技能开放平台,英文全称 DuerOS Bots Platform,是 DuerOS 为第三方开发者提供的一整套技能开发、测试、部署工具的开放平台。第三方开发者可以在平台上,通过可视化界面,简单、高效地开发各类个性化技能。
  • 关系型数据库RDS,英文全称Relational Database Service是一个专业化的高性能、高可靠云数据库服务,支持Mysql、SQL Server、PostgreSQL引擎,提供简易方便的Web界面管理、可靠的数据备份和恢复、完备的安全管理、完善的监控等功能。 在本教程中,您将执行以下操作:
  • 当前,百度智能小程序已经全面具备了云开发能力,为开发者提供了一种 Serverless 的小程序开发模式,主要包含了云函数,云存储,云数据库三大部分功能, 其中云函数的功能即由CFC提供了背后支持, 本篇文档将向您介绍一下关于云函数的使用建议。
  • CFC函数计算定时读取物联网智能家电设备上报到IoT平台的最新数据,调用天气API获取指定位置的天气信息、空气质量、紫外线等指数,智能控制远程设备,如根据温度指数,自动开启空调;根据PM2.5指数,自动开启、调节空气净化器。IoT平台结合函数计算,能快速有效地控制远程物联网设备,大大降低开发成本。
  • 本文介绍了使用百度云函数计算,结合 BOS 和百度云图像效果增强能力,实现图像文件的自动处理,并通过 Terraform 实现应用的快速部署。
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部