工作流接口

最近更新时间:2024-11-11 16:08:53

我的收藏

简介

本文档提供关于工作流接口的 API 概览以及 SDK 示例代码。
说明:
阅读本文档前请先打开 示例代码



创建工作流

接口文档及示例函数名

API 文档
示例函数名
ci_create_workflow_image_inspect

示例代码

def ci_create_workflow_image_inspect():
# 创建异常图片检测工作流
# 工作流配置详情
body = {
# 工作流节点 固定值传入即可
'MediaWorkflow': {
# 创建的工作流名称,可自定义输入名称
# 支持中文、英文、数字、—和_,长度限制128字符
# 必传参数
'Name': 'image-inspect',
# 工作流状态,表示创建时是否开启COS上传对象事件通知
# 支持 Active / Paused
# 非必选,默认Paused 不开启
'State': 'Active',
# 工作流拓扑结构
# 必传参数
'Topology': {
# 工作流节点依赖关系
# 必传参数
'Dependencies': {
# Start 工作流开始节点,用于存储工作流回调,前缀,后缀等配置信息,只有一个开始节点
# End 工作流结束节点
# ImageInspectNode 异常图片检测节点信息
# 此示例表示 Start -> ImageInspectNode -> End 的依赖关系
'Start': 'ImageInspectNode',
'ImageInspectNode': 'End',
},
# 工作流各节点的详细配置信息
# 必传参数
'Nodes': {
# 工作流开始节点配置信息
'Start': {
# 节点类型,开始节点固定为 Start
# 必传参数
'Type': 'Start',
# 工作流的输入信息
# 必传参数
'Input': {
# Object 前缀,COS上传对象的前缀,只有当前缀匹配时,才会触发该工作流
# 如该示例,会触发以test为前缀的对象
# 必传参数
'ObjectPrefix': 'test',
# 工作流自定义回调配置信息,当配置了该项后,当工作流执行完成或工作流中的子节点中的任务执行完成,会发送回调给指定Url或tdmq
# 非必传配置
'NotifyConfig': {
# 回调类型,支持Url TDMQ两种类型
'Type': 'Url',
# 回调地址,当回调类型为Url时有效
'Url': 'http://www.callback.com',
# 回调事件 支持多种事件,以逗号分割
'Event': 'WorkflowFinish,TaskFinish',
# 回调信息格式,支持XML JSON两种格式,非必传,默认为XML
'ResultFormat': '',
# TDMQ 所属园区,当回调类型为TDMQ时有效,支持园区详见https://cloud.tencent.com/document/product/406/12667
'MqRegion': '',
# TDMQ 使用模式,当回调类型为TDMQ时有效
# Topic:主题订阅
# Queue:队列服务
'MqMode': '',
# TDMQ 主题名称,当回调类型为TDMQ时有效
'MqName': '',
},
# 文件后缀过滤器,当需要只处理部分后缀文件时,可配置此项
# 非必传配置
'ExtFilter': {
# 是否开始后缀过滤,On/Off,非必选,默认为Off
'State': '',
# 打开视频后缀限制,false/true,非必选,默认为false
'Video': '',
# 打开音频后缀限制,false/true,非必选,默认为false
'Audio': '',
# 打开图片后缀限制,false/true,非必选,默认为false
'Image': '',
# 打开 ContentType 限制,false/true,非必选,默认为false
'ContentType': '',
# 打开自定义后缀限制,false/true,非必选,默认为false
'Custom': '',
# 自定义后缀,当Custom为true时有效,多种文件后缀以/分隔,后缀个数不超过10个
'CustomExts': 'jpg/png',
# 所有文件,false/true,非必选,默认为false
'AllFile': '',
}
}
},
# 异常图片检测节点配置信息
'ImageInspectNode': {
# 节点类型,异常图片检测固定为ImageInspect
'Type': 'ImageInspect',
# 节点执行操作集合
# 非必选配置
'Operation': {
# 异常图片检测配置详情
'ImageInspect': {
# 是否开启检测到异常图片检测后自动对图片进行处理的动作,false/true,非必选,默认false
'AutoProcess': 'true',
# 在检测到为异常图片后的处理动作,有效值为:
# BackupObject:移动图片到固定目录下,目录名为abnormal_images_backup/,由后台自动创建
# SwitchObjectToPrivate:将图片权限设置为私有
# DeleteObject:删除图片
# 非必选参数,默认值为BackupObject
'ProcessType': 'BackupObject'
}
}
},
},
},
},
}
response = client.ci_create_workflow(
Bucket=bucket_name, # 桶名称
Body=body, # 工作流配置信息
ContentType='application/xml'
)
print(response)
print("workflowId is: " + response['MediaWorkflow']['WorkflowId'])
return response

参数说明

调用 ci_create_workflow 函数,具体请求参数如下:
参数名称
描述
类型
是否必选
Bucket
存储桶名称。
String
Body
创建工作流的配置信息。详见 创建工作流 的请求参数信息。
Dict

返回结果说明

response 为创建工作流的响应体,详见 创建工作流 的响应体信息。


更新工作流

接口文档及示例函数名

API 文档
示例函数名
ci_update_workflow
ci_update_workflow_state

示例代码

def ci_update_workflow():
# 更新工作流配置信息,仅当工作流状态为Paused时支持更新配置信息,故在更新信息前,需要将工作流状态为Paused
# 工作流配置详情
body = {
# 工作流节点 固定值传入即可
'MediaWorkflow': {
# 创建的工作流名称,可自定义输入名称
# 支持中文、英文、数字、—和_,长度限制128字符
# 必传参数
'Name': 'image-inspect',
# 工作流状态,表示创建时是否开启COS上传对象事件通知
# 支持 Active / Paused
# 非必选,默认Paused 不开启
'State': 'Active',
# 工作流拓扑结构
# 必传参数
'Topology': {
# 工作流节点依赖关系
# 必传参数
'Dependencies': {
# Start 工作流开始节点,用于存储工作流回调,前缀,后缀等配置信息,只有一个开始节点
# End 工作流结束节点
# ImageInspectNode 异常图片检测节点信息
# 此示例表示 Start -> ImageInspectNode -> End 的依赖关系
'Start': 'ImageInspectNode',
'ImageInspectNode': 'End',
},
# 工作流各节点的详细配置信息
# 必传参数
'Nodes': {
# 工作流开始节点配置信息
'Start': {
# 节点类型,开始节点固定为 Start
# 必传参数
'Type': 'Start',
# 工作流的输入信息
# 必传参数
'Input': {
# Object 前缀,COS上传对象的前缀,只有当前缀匹配时,才会触发该工作流
# 如该示例,会触发以test为前缀的对象
# 必传参数
'ObjectPrefix': 'test',
# 工作流自定义回调配置信息,当配置了该项后,当工作流执行完成或工作流中的子节点中的任务执行完成,会发送回调给指定Url或tdmq
# 非必传配置
'NotifyConfig': {
# 回调类型,支持Url TDMQ两种类型
'Type': 'Url',
# 回调地址,当回调类型为Url时有效
'Url': 'http://www.callback.com',
# 回调事件 支持多种事件,以逗号分割
'Event': 'WorkflowFinish,TaskFinish',
# 回调信息格式,支持XML JSON两种格式,非必传,默认为XML
'ResultFormat': '',
# TDMQ 所属园区,当回调类型为TDMQ时有效,支持园区详见https://cloud.tencent.com/document/product/406/12667
'MqRegion': '',
# TDMQ 使用模式,当回调类型为TDMQ时有效
# Topic:主题订阅
# Queue:队列服务
'MqMode': '',
# TDMQ 主题名称,当回调类型为TDMQ时有效
'MqName': '',
},
# 文件后缀过滤器,当需要只处理部分后缀文件时,可配置此项
# 非必传配置
'ExtFilter': {
# 是否开始后缀过滤,On/Off,非必选,默认为Off
'State': '',
# 打开视频后缀限制,false/true,非必选,默认为false
'Video': '',
# 打开音频后缀限制,false/true,非必选,默认为false
'Audio': '',
# 打开图片后缀限制,false/true,非必选,默认为false
'Image': '',
# 打开 ContentType 限制,false/true,非必选,默认为false
'ContentType': '',
# 打开自定义后缀限制,false/true,非必选,默认为false
'Custom': '',
# 自定义后缀,当Custom为true时有效,多种文件后缀以/分隔,后缀个数不超过10个
'CustomExts': 'jpg/png',
# 所有文件,false/true,非必选,默认为false
'AllFile': '',
}
}
},
# 异常图片检测节点配置信息
'ImageInspectNode': {
# 节点类型,异常图片检测固定为ImageInspect
'Type': 'ImageInspect',
# 节点执行操作集合
# 非必选配置
'Operation': {
# 异常图片检测配置详情
'ImageInspect': {
# 是否开启检测到异常图片检测后自动对图片进行处理的动作,false/true,非必选,默认false
'AutoProcess': 'true',
# 在检测到为异常图片后的处理动作,有效值为:
# BackupObject:移动图片到固定目录下,目录名为abnormal_images_backup/,由后台自动创建
# SwitchObjectToPrivate:将图片权限设置为私有
# DeleteObject:删除图片
# 非必选参数,默认值为BackupObject
'ProcessType': 'BackupObject'
}
}
},
},
},
},
}
response = client.ci_update_workflow(
Bucket=bucket_name, # 桶名称
WorkflowId='wd34ca394909xxxxxxxxxxxx4d', # 需要更新的工作流ID
Body=body, # 工作流配置信息
ContentType='application/xml'
)
print(response)
print("workflowId is: " + response['MediaWorkflow']['WorkflowId'])
return response

def ci_update_workflow_state():
# 更新工作流状态
response = client.ci_update_workflow_state(
Bucket=bucket_name, # 桶名称
WorkflowId='wd34ca3949090xxxxxxxxxx44d', # 需要更新的工作流ID
UpdateState='paused', # 需要更新至的工作流状态,支持 active 开启 / paused 关闭
ContentType='application/xml'
)
print(response)
return response

参数说明

调用 ci_update_workflow 函数,具体请求参数如下:
参数名称
描述
类型
是否必选
Bucket
存储桶名称。
String
WorkflowId
需要更新的工作流 ID。
String
Body
创建工作流的配置信息。详见 更新工作流 的请求参数信息。
Dict
调用 ci_update_workflow_state 函数,具体请求参数如下:
参数名称
描述
类型
是否必选
Bucket
存储桶名称。
String
WorkflowId
需要更新的工作流 ID。
String
UpdateState
需要更新至的工作流状态,支持 active 开启 / paused 关闭。
String

返回结果说明

response 为更新工作流的响应体,详见 更新工作流 的响应体信息。


查询工作流

接口文档及示例函数名

API 文档
示例函数名
ci_get_workflow

示例代码

def ci_get_workflow():
# 查询工作流
response = client.ci_get_workflow(
Bucket=bucket_name, # 桶名称
Ids='wd34ca394909xxxxxxxxxxxx4d', # 需要查询的工作流ID,支持传入多个,以","分隔
Name='image-inspect', # 需要查询的工作流名称
# PageNumber='6', # 分页查询使用,第几页
# PageSize='3', # 分页查询使用,每页个数
ContentType='application/xml'
)
print(response)
return response

参数说明

调用 ci_get_workflow 函数,具体请求参数如下:
参数名称
描述
类型
是否必选
Bucket
存储桶名称。
String
Ids
需要查询的工作流 ID,可传入多个,以,符号分割字符串。
String
Name
需要查询的工作流名称。
String
PageNumber
第几页。
String
PageSize
每页个数。
String

返回结果说明

response 为查询工作流的响应体,详见 查询工作流 的响应体信息。


测试工作流

接口文档及示例函数名

API 文档
示例函数名
ci_trigger_workflow

示例代码

def ci_trigger_workflow():
# 测试工作流接口
response = client.ci_trigger_workflow(
Bucket=bucket_name,
WorkflowId='w1b4ffd69xxxxxxxxxxxxe5b92b1fb7ff6',
Key='test.mp4'
)
print(response)
return response

参数说明

调用 ci_trigger_workflow 函数,具体请求参数如下:
参数名称
描述
类型
是否必选
Bucket
存储桶名称。
String
WorkflowId
需要触发的工作流 ID。
String
Key
需要触发的对象名。
String

返回结果说明

response 为测试工作流的响应体,详见 测试工作流 的响应体信息。


删除工作流

接口文档及示例函数名

API 文档
示例函数名
ci_delete_workflow

示例代码

def ci_delete_workflow():
# 删除指定的工作流
response = client.ci_delete_workflow(
Bucket=bucket_name, # 桶名称
WorkflowId='wd34ca39490904xxxxxxxxxx744d', # 需要删除的工作流ID
)
print(response)
return response

参数说明

调用 ci_delete_workflow 函数,具体请求参数如下:
参数名称
描述
类型
是否必选
Bucket
存储桶名称。
String
WorkflowId
需要删除的工作流ID。
String

返回结果说明

response 为删除工作流的响应体,详见 删除工作流 的响应体信息。


获取工作流实例详情列表

接口文档及示例函数名

API 文档
示例函数名
ci_list_workflowexecution

示例代码

def ci_list_workflowexecution():
# 获取工作流实例详情列表接口
response = client.ci_list_workflowexecution(
Bucket=bucket_name,
WorkflowId='w1b4ffd690xxxxxxxxxxfe5b92b1fb7ff6'
)
print(response)
return response

参数说明

调用 ci_list_workflowexecution 函数,具体请求参数如下:
参数名称
描述
类型
是否必选
Bucket
存储桶名称。
String
WorkflowId
需要删除的工作流ID。
String
Name
触发的文件名称。
String
StartCreationTime
拉取创建时间大于等于该时间。格式为:%Y-%m-%dT%H:%m:%S%z。
String
EndCreationTime
拉取创建时间小于等于该时间。格式为:%Y-%m-%dT%H:%m:%S%z。
String
OrderByTime
Desc 或者 Asc。默认为 Desc。
String
States
工作流实例状态,以,分割支持多状态All,Success,Failed,Running,Cancel。默认为 All。
String
Size
拉取的最大任务数。默认为10。最大为100。
Int
NextToken
请求的上下文,用于翻页。下一页输入 token。
String
BatchJobId
批量触发工作流任务 ID,用于扫描出批量触发任务 ID 对应执行的工作流实例。
String

返回结果说明

response 为获取工作流实例详情列表的响应体,详见 获取工作流实例详情列表 的响应体信息。


获取工作流实例详情

接口文档及示例函数名

API 文档
示例函数名
ci_get_workflowexecution

示例代码

def ci_get_workflowexecution():
# 获取工作流实例详情接口
response = client.ci_get_workflowexecution(
Bucket=bucket_name,
RunId='id1f94868688111xxxxxxxxxxx0ca1839'
)
print(response)
return response

参数说明

调用 ci_get_workflowexecution 函数,具体请求参数如下:
参数名称
描述
类型
是否必选
Bucket
存储桶名称。
String
RunId
需要查询的工作流实例 ID。
String

返回结果说明

response 为获取工作流实例详情接口的响应体,详见 获取工作流实例详情 的响应体信息。