创建工作流-CreateWorkflow
功能介绍
本接口用于直接创建Data+工作流。
URI
POST /v3/{project_id}/workflows/{graph_name}
请求消息样式
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 | 枚举类型。
| 枚举类型。
|
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 | 视频处理 |
NotificationSMN | SMN消息通知 | NotificationProcess | op_svc_obs | 消息通知 |
名称 | 是否必选 | 参数类型 | 约束 | 说明 |
|---|---|---|---|---|
parameter_name | 是 | String | 由小写字母、数字和中划线“-”组成,长度为[1, 20]。 | 输入参数名称。最多可定义60个,且命名必须唯一。 |
type | 是 |
| - | 参数类型。有如下几种:
|
value_type | 否 |
| - | 列表类型参数值类型。有如下几种:
只支持原子类型。 |
template_parameter_name | 否 | String | 由小写字母、数字和中划线“-”组成,长度为[1, 20]。 | 当多个同action template在一个工作流时,增加字段做国际化。 |
parameter_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
响应消息头
该请求的响应消息使用公共消息头,具体请参考响应消息头。
响应消息元素
名称 | 参数类型 | 说明 |
|---|---|---|
graph_name | String | 工作流名称。 |
graph_urn | String | 工作流的URN。 |
created_at | String | 工作流创建的时间。 |
错误响应消息
无特殊错误,所有错误已经包含在错误码中。
请求示例
POST /v2/workflows/{graph_name}?x-workflow-create HTTP/1.1
Host: obs.cn-north-4.myhuaweicloud.com
Host: obs.region.myhuaweicloud.com
Host: obs.region.myhuaweicloud.eu
Host: obs.region.example.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"
} 
