创建工作流
功能介绍
本接口用于直接创建Data+工作流。
请求消息样式
POST /v2/workflows/{graph_name}?x-workflow-create HTTP/1.1 Host: obs.cn-north-4.myhuaweicloud.com Authorization: authorization Content-Type: application/json Content-Length: length Date: date policy json body
请求消息参数
名称 |
是否必选 |
参数类型 |
说明 |
约束 |
---|---|---|---|---|
graph_name |
是 |
String |
工作流名称 |
名称必须以字母或数字开头,只能由字母、数字、下划线和中划线组成,长度小于等于64个字符,且不能重名。 |
请求消息头
该请求使用公共消息头,具体参见表3。
请求消息元素
名称 |
是否必选 |
参数类型 |
说明 |
约束 |
---|---|---|---|---|
description |
否 |
String |
工作流的描述 |
长度最小为0,最长为256,可以是数字、大小写字母以及英文的逗号,句号,冒号,中划线,下划线,空格。 |
states |
否 |
Array of State |
工作流的编排定义 |
|
inputs |
否 |
Array of Input |
工作流中用户可修改参数列表 |
- |
名称 |
是否必选 |
参数类型 |
说明 |
约束 |
---|---|---|---|---|
start |
否 |
Boolean |
标识开始的state,图中必须且只有一个start为true的state。 |
有且只有一个start为true的state。 |
type |
是 |
string |
DELAY、OPERATION、END |
枚举类型。 |
payload_filter_in |
否 |
string |
过滤输入参数,默认值是"$",表示不过滤。 |
必须是合法的JSONPath格式。
说明:
END State没有payload_filter_in属性。 |
payload_filter_out |
否 |
string |
过滤state的输出结果,默认值是"$",表示不过滤。 |
必须是合法的JSONPath格式。
说明:
END State没有payload_filter_out属性。 |
state_name |
是 |
string |
state的名字定义。 |
由小写字母、数字和中划线“-”组成,长度为[1, 20]。 |
名称 |
是否必选 |
参数类型 |
说明 |
约束 |
---|---|---|---|---|
action_mode |
否 |
String |
任务action调用的模式,并行或者串行。默认值是“SEQUENTIAL”。 |
只支持“SEQUENTIAL”。 |
actions |
是 |
Array of Action |
定义action的json数组。 |
当前只能支持1个Action。 |
next_state |
是 |
String |
表示下一个state的名字,String类型,必须是图定义中存在的名字。 |
必须是工作流中的state名字。 |
名称 |
是否必选 |
参数类型 |
说明 |
约束 |
---|---|---|---|---|
time_delay |
是 |
String |
等待的时间,单位秒,int类型。 |
必须大于0,最大值为86400 |
next_state |
是 |
String |
表示下一个state的名字,String类型,必须是图定义中存在的名字 |
必须是工作流模板中的state名字 |
名称 |
是否必选 |
参数类型 |
说明 |
约束 |
---|---|---|---|---|
action_name |
是 |
String |
action的名字。 |
要求state中唯一,action的名字是1-20长度的只含数字、字母、-和_的String。 |
action_template_name |
是 |
String |
action模板名,见内置Action模板名描述。 |
- |
action_template_category |
是 |
String |
action模板类别,见内置Action模板名描述。 |
- |
action_template_provider_name |
是 |
String |
action模板类别,见内置Action模板名描述。 |
- |
function |
是 |
String |
用户自定义函数URN。 |
function与function_template只能设置其中一个。 |
function_template |
是 |
String |
系统内置的函数模板URN。 |
function与function_template只能设置其中一个。 |
invocation_mode |
否 |
String |
调用模式。 |
值必须是“SYNC”。 |
results |
否 |
Array of ActionResult |
Action失败后的捕获重试机制。 |
值是一个包含result定义的json数组,results如果存在时,size>=0。 |
timeout |
否 |
Int |
Action的超时时间,最长等待时间。默认值是30s。 |
大于等于0且小于等于300的整型,等于0时等同于不设置。 |
payload_filter |
否 |
String |
对结果进行过滤的路径,默认是"$"。 |
必须是合法的JSONPath格式。 |
dynamic_source |
否 |
Map |
在创建工作流时会根据OBS自定义的函数模板创建属于用户的function,并指定该参数设置的参数值。 |
必须是指定的参数名称,否则不生效。 |
名称 |
是否必选 |
参数类型 |
说明 |
约束 |
---|---|---|---|---|
match |
是 |
String |
表示匹配的错误。 |
MatchAny、States.ActionFailed、States.PermissionError、States.ParameterError、States.NotFound、States.TooManyRequests、States.FunctionStageUnavailable、States.FunctionStageOtherErrors |
retry_interval |
否 |
Int |
表示重试的间隔时间,单位秒。 取值区间:[0, 86400] |
是>=0的整型。 |
max_retry |
否 |
Int |
表示最大重试次数,没有设置时默认为3,等于0时表示不重试。 取值区间:[0, 10] |
>=0的整型。 |
next_state |
否 |
String |
表示下一个state的名字,String类型,必须是图定义中存在的名字。 |
必须是工作流模板中的state名字。 |
is_terminal |
是 |
Boolean |
表示是否异常中断该Action,默认为False。 |
注:如果设置为True,那么不必设置nex-state; 如果设置为False,则必须设置next-state。 |
内置Action模板名 |
描述 |
Category(分类) |
provider_name(提供商名称) |
分类描述 |
---|---|---|---|---|
MediaTranscode |
视频转码 |
MediaProcess |
op_svc_obs |
视频处理 |
MediaRemux |
视频转封装 |
MediaProcess |
op_svc_obs |
视频处理 |
MediaMetadata |
视频元信息 |
MediaProcess |
op_svc_obs |
视频处理 |
MediaThumbnail |
视频截图 |
MediaProcess |
op_svc_obs |
视频处理 |
名称 |
是否必选 |
参数类型 |
约束 |
说明 |
---|---|---|---|---|
parameter_name |
是 |
String |
由小写字母、数字和中划线“-”组成,长度为[1, 20]。 |
输入参数名称。最多可定义60个,且命名必须唯一。 |
type |
是 |
|
- |
参数类型。 |
value_type |
否 |
|
- |
列表类型参数值类型。 只支持原子类型 |
template_parameter_name |
否 |
String |
由小写字母、数字和中划线“-”组成,长度为[1, 20]。 |
当多个同action template在一个工作流时,增加字段做国际化。 |
paramter_value |
否 |
根据类型传入的参数值 |
constraints定义的约束。 |
参数值。 |
description |
否 |
String |
长度为[0, 256]。 |
参数描述信息。 |
default |
否 |
String |
默认值信息可在创建工作流实例时由外部输入替换;如果未填写默认值,外部输入将必须填写这个参数的值。 |
默认值的类型和定义的参数类型必须统一。如果出现不一致,解析器可能会进行自动转换而导致出现与预期不符合的情况。 |
label |
否 |
String |
长度为[0, 64]。 |
参数的标签,此处定义的标签可在创建堆栈时进行分类展示。 |
constraints |
否 |
Map |
约束条件有以下几种,一个输入参数对每一种条件都只能定义一个规则。约束的多个条件中只要有一条不满足,即将认定参数非法。
|
参数约束,用于约束可以定义输入参数的合法值范围。 例如:当输入参数不等于obs时,则会认定参数非法。 "constraints": { "equal": "obs" } 例如:输出参数值可以从TCP、UDP中选取一个。 "constraints": { "valid_values": ["TCP", "UDP" ] } 例如:当输入参数不满足正则条件时,则会认定参数非法。 "constraints": { "valid_values": ["TCP", "UDP" ] } 例如:当输入参数为1或12时,则会认定参数非法。 "constraints": { "invalid_values": ["1", "12" ] } |
invisible |
否 |
Boolean |
输入参数的invisible设置为true时,返回值为******。 |
查询是否回显。 |
响应消息样式
HTTP/1.1 status_code Date: date Content-Length: length X-Request-ID: obs request id json body
响应消息头
该请求的响应消息使用公共消息头,具体请参考表1。
响应消息元素
名称 |
参数类型 |
说明 |
---|---|---|
graph_name |
String |
工作流名称。 |
graph_urn |
String |
工作流的URN。 |
created_at |
String |
工作流创建的时间。 |
错误响应消息
无特殊错误,所有错误已经包含在表2中。
请求示例
POST /v2/workflows/{graph_name}?x-workflow-create HTTP/1.1 Host: obs.cn-north-4.myhuaweicloud.com Date: Thu, 27 Aug 2020 12:38:10 GMT Authorization: OBS H4IPJX0TQTHTHEBQQCEC:sc2PM13Wlfcoc/YZLK0MwsI2Zpo= Content-Type: application/json Content-Length: 100 { "description": "a demo of graph", "inputs": [{ "parameter_name": "param1", "default": "TCP", "parameter_value": "TCP", "template_parameter_name": "param", "type": "string", "label": "action1", "constraints": { "valid_values": ["TCP", "UDP"] }, "invisible": true, "description": "description param1" }], "states": [{ "start": true, "state_name": "operation", "payload_filter_in": "$", "payload_filter_out": "$", "type": "OPERATION", "action_mode": "SEQUENTIAL", "actions": [{ "action_name": "action1", "action_template_name": "<Action Template name>", "action_template_category": "<Action Template category>", "action_template_provider_name": "<Action Template provider name>", "function_template": "urn:fss:cn-north-5:3f1e6caf808246c68457e660e4bfeb2f:function:default:test", "invocation_mode": "SYNC", "timeout": 0, "payload_filter": "$", "dynamic_source": { "param1": { "get_input": "$.inputs.param1" }, "param2": { "get_input": "$.inputs.param2" } } }], "next_state": "end" }, { "state_name": "end", "type": "END" }] }
响应示例
HTTP/1.1 201 Created Server: OBS Date: Thu, 27 Aug 2020 12:38:10 GMT Content-Length: 100 X-Request-ID: 000001742FE8FB3CCA20173B00807C43 { "graph_name": "test-graph", "graph_urn": "urn:obs:cn-north-5:3f1e6caf808246c68457e660e4bfeb2f:graph:test-graph", "created_at": "2020-04-23T12:32:11.131Z" }