更新时间:2024-04-22 GMT+08:00

创建任务

功能介绍

该接口用于创建任务

URI

POST /v2/{project_id}/services/{service_name}/tasks

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

用户项目ID,获取方法参见获取项目ID和名称

service_name

String

服务API名称

最小长度:1

最大长度:100

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

用户Token,获取方法参见认证鉴权

表3 请求Body参数

参数

是否必选

参数类型

描述

name

String

任务名称,只能由中文、字母(a~z A~Z)、数字(0~9)、中划线(-)、下划线(_)组成,长度范围为[1,100]

description

String

任务的描述,选填。长度不超过500

最小长度:0

最大长度:500

schedule

TaskSchedule object

定时任务参数,定时周期 仅支持周模式

input

TaskInput object

任务的输入配置

output

TaskOutput object

任务的输出配置

config

TaskServiceConfig object

任务配置参数

service_version

String

服务版本号,需要满足正则:^[a-z0-9.]{3,32}$

最小长度:3

最大长度:32

is_saved_as_template

Boolean

是否保存为模板

缺省值:false

resource_order_id

String

资源订单id,与关联算法挂钩。非商用白名单的算法 就不用填,商用算法就为必填项,需要满足正则表达式^[a-z0-9-_]{4,36}$。

最小长度:4

最大长度:36

表4 TaskSchedule

参数

是否必选

参数类型

描述

type

String

计划任务的类型,使用计划任务时必填。可选类型weekly(每周执行)。

timezone

String

用户所处的时区,使用计划任务时必填。精确到分钟

days_of_week

Array of integers

任务会在一周的哪几天执行,当且仅当计划任务类型为weekly时,该字段需填且必填。1~7分别指代星期一至星期日

最小值:1

最大值:7

数组长度:1 - 7

days_of_month

Array of integers

任务会在一个月的哪几天执行,当且仅当计划任务类型为monthly时,该字段需填且必填。1~31分别指代一个月中的1日至31日,当前系统不支持该参数。

最小值:1

最大值:31

periods

Array<Array<>>

时间段模式配置,指定周计划或者月计划中具体每天任务的执行时间段,至少需指定一个时间段

表5 TaskInput

参数

是否必选

参数类型

描述

type

String

任务的输入类型,创建时必填,视频源类型为video_source 时 不支持切换为其他的type。创建时可选类型有 obs(对象存储服务存储的文件 仅云上任务支持,支持输出到webhook), url(指定的文件地址或取流地址 仅云上任务支持,支持输出到webhook), edgecamera(绑定在IEF的边缘摄像头 仅边缘任务支持,支持输出到webhook), restful(从自定义的流媒体服务器通过Restful接口获取取流地址 云上和边缘任务均支持,支持输出到webhook), vcn(VCN设备 仅边缘任务支持), video_source(使用VIAS平台视频中心管理的视频源,云上和边缘任务均支持), 建议使用video_source类型,其他类型为了兼容老业务,后续将废弃。 枚举值:

  • video_source

  • obs (不建议使用,后续废弃)

  • url (不建议使用,后续废弃)

  • edgecamera (不建议使用,后续废弃)

  • restful (不建议使用,后续废弃)

  • vcn (不建议使用,后续废弃)

data

Array of TaskInputData objects

任务的输入详情,必填。针对不同的输入类型有不同的配置。创建时允许填写多路输入,但更新时只允许填写一路输入。 当输入类型为:obs,需要配置 bucket,path , index 。例如: "bucket": "aicam", "path": "3rdpartylicenses.txt", "index": 0 当输入类型为:url,需要配置 url, index 。例如: "url": "https://xxx-xxx.com", "index": 0 当输入类型为:restful,需要配置 certificate_check, rtsp_path_in_response, url, index, headers 。例如:"certificate_check": true, "url": "https://hsaij-dasahbi.com", "rtsp_path_in_response": "data/url", "index": 0, "headers": { "AAA": "AAA" } 当输入类型为:vcn,需要配置 device_id, stream_type, index。例如:"device_id": "21356478954612546874#gdhjkiushdgdksjhslmhscjsckjhdbnk", "stream_type": 1, "index": 0 当输入类型为:EdgeCamera,需要配置 id, index 例如:"id": "007cdafc-6000-47ce-b0e3-870b4a0db65e","index": 0

数组长度:1 - 50

vcn

TaskInputVcn object

VCN服务器信息,仅输入类型为vcn时需填且必填

表6 TaskInputData

参数

是否必选

参数类型

描述

video_source_id

String

视频源id,当输入类型为video_source时必填。

stream_name

String

视频流名称

bucket

String

OBS桶名,当输入为obs类型时必填

最大长度:64

path

String

OBS的路径,当输入为obs类型时必填

最大长度:1023

url

String

url输入源的地址或者获取视频流地址的restful请求地址,当输入为url类型或者edgerestful类型时必填。长度不超过1000

最大长度:1000

headers

Object

获取视频流地址的restful请求携带的请求头,当输入为edgerestful类型时可选。整体呈json格式,以键值对的形式表示请求头和取值,最多允许10组。

rtsp_path_in_response

String

restful请求返回的body中,视频流地址的路径,当输入为edgerestful类型时必填。长度不超过1024

最大长度:1024

device_id

String

VCN设备ID,当输入为vcn类型时必填

stream_type

Integer

准备进行分析的码流,当输入为vcn类型时选填。取值范围为1~3,其中1代表主码流,2代表子码流1,3代表子码流2

最小值:1

最大值:3

id

String

IEF挂载的边缘设备的ID,当输入为edgecamera类型时必填

最大长度:63

certificate_check

Boolean

是否需要对https请求进行证书校验,当输入为edgerestful类型时必填。取值为true或者false。

缺省值:false

表7 TaskInputVcn

参数

是否必选

参数类型

描述

ip

String

VCN服务器的IP地址,仅输入类型为vcn时需填且必填

port

Integer

VCN服务器的端口号,仅输入类型为vcn时需填且必填

最小值:0

最大值:65535

username

String

VCN服务器的账号名,仅输入类型为vcn时需填且必填,需要满足正则表达式^.{1,100}$。

password

String

VCN服务器的与账号对应的密码,仅输入类型为vcn时需填且必填,需要满足正则表达式^.{1,1000}$。

表8 TaskOutput

参数

是否必选

参数类型

描述

obs

TaskOutputObs object

输出为obs类型时的配置信息

dis

TaskOutputDis object

输出为dis类型时的配置信息

webhook

TaskOutputWebhook object

输出为webhook类型时的配置信息

event_center

Boolean

输出方式是否选择为事件中心,选择 true或者1表示是,默认为false

缺省值:false

表9 TaskOutputObs

参数

是否必选

参数类型

描述

bucket

String

OBS桶名,选用obs类型输出时必填,校验规则:(pattern:“^[a-z0-9](?!.[-.][-.].)([a-z0-9-.]{1,61})[a-z0-9]$”)

最大长度:63

path

String

OBS的路径,选用obs类型输出时必填,校验规则:^(?![/.\s])(?!.//.)([^:*?"<>|\]{0,1023})(?<![.\s])$

最大长度:1023

data_category

Array of strings

作业输出数据类别的列表,选填,仅部分服务需要。当输出类型下有这个列表时,表示希望这个输出类型下存放dataCategory列表内的数据

数组长度:0 - 10

表10 TaskOutputDis

参数

是否必选

参数类型

描述

stream_name

String

DIS流名称,选用dis类型输出时必填,校验规则:^[-A-Za-z0-9_]{1,64}$。

最大长度:64

data_category

Array of strings

任务输出数据类别的列表,选填,仅部分服务需要。当输出类型下有这个列表时,表示希望这个输出类型下存放dataCategory列表内的数据。 【例如创建边缘人脸任务API中,输出结果支持data_category参数,取值范围为[FacaImage,OriginImage],分别表示是否发送人脸图和原始图】

数组长度:0 - 10

表11 TaskOutputWebhook

参数

是否必选

参数类型

描述

url

String

结果回调地址,选用webhook类型输出时必填

最大长度:1000

headers

Object

结果回调时需要携带的请求头,选用webhook类型输出时必填。整体呈json格式,以键值对的形式表示请求头和取值,至少1组,至多10组

data_category

Array of strings

任务输出数据类别的列表,选填,仅部分服务需要。当输出类型下有这个列表时,表示希望这个输出类型下存放dataCategory列表内的数据

数组长度:0 - 10

表12 TaskServiceConfig

参数

是否必选

参数类型

描述

common

Object

任务运行时指定的具体的自定义配置项,由服务发布者定义。整体呈json格式,具体配置项参见相应算法服务的说明

响应参数

状态码: 200

表13 响应Body参数

参数

参数类型

描述

id

String

任务创建成功生成的任务ID

状态码: 400

表14 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误信息描述

detail

String

错误详情

params

Array of strings

错误参数列举

数组长度:0 - 1

reason

String

错误原因

advice

String

建议

状态码: 500

表15 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误信息描述

detail

String

错误详情

params

Array of strings

错误参数列举

数组长度:0 - 1

reason

String

错误原因

advice

String

建议

请求示例

  • 创建输入类型为“video_source”,输出类型为“webhook”,算法版本为1.1,没有任务启动参数,不保存作业模板的请求体

    /v2/{project_id}/services/{service_name}/tasks
    
    {
      "name" : "Test",
      "input" : {
        "type" : "video_source",
        "data" : [ {
          "video_source_id" : "xxxxxxx-xxxxxxx-xxxxxxx-xxxxx-xxxxxx"
        } ]
      },
      "output" : {
        "webhook" : {
          "url" : "http://test",
          "headers" : {
            "a" : "a"
          }
        }
      },
      "config" : {
        "common" : { }
      },
      "service_version" : "1.1",
      "is_saved_as_template" : false
    }
  • 兼容IVA的老接口,采用此请求体

    /v2/{project_id}/services/{service_name}/tasks
    
    {
      "name" : "test-alg-819",
      "input" : {
        "type" : "url",
        "data" : [ {
          "url" : "https://iuwhediue-input.com",
          "index" : 0
        } ]
      },
      "output" : {
        "webhook" : {
          "url" : "https://iuwhediue-output.com",
          "headers" : {
            "AA" : "AA"
          }
        }
      },
      "config" : {
        "common" : {
          "viewpoint" : 1
        }
      },
      "service_version" : "3.0",
      "is_saved_as_template" : false,
      "resource_order_id" : "029b34a69efd48769215e429deff0cec"
    }
  • 创建定时任务,若存在相邻两天前一天结束时间为23:59:00,第二天开始为00:00:00,则为跨天任务,保持运行中状态。

    /v2/{project_id}/services/{service_name}/tasks
    
    {
      "name" : "test-alg-819",
      "schedule" : {
        "type" : "weekly",
        "timezone" : "+08:00",
        "days_of_week" : [ 1, 2, 3, 4, 5, 6, 7 ],
        "periods" : [ [ ], [ ], [ ], [ ], [ {
          "begin_at" : "22:15:00",
          "end_at" : "23:59:00"
        } ], [ {
          "begin_at" : "00:00:00",
          "end_at" : "23:59:00"
        } ], [ {
          "begin_at" : "22:15:00",
          "end_at" : "23:59:00"
        } ] ]
      },
      "input" : {
        "type" : "url",
        "data" : [ {
          "url" : "https://iuwhediue-input.com",
          "index" : 0
        } ]
      },
      "output" : {
        "webhook" : {
          "url" : "https://iuwhediue-output.com",
          "headers" : {
            "AA" : "AA"
          }
        }
      },
      "config" : {
        "common" : {
          "viewpoint" : 1
        }
      },
      "service_version" : "3.0",
      "is_saved_as_template" : false,
      "resource_order_id" : "029b34a69efd48769215e429deff0cec"
    }

响应示例

状态码: 200

任务创建成功

{
  "tasks" : [ {
    "id" : "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
  } ]
}

状态码

状态码

描述

200

任务创建成功

400

请求错误

500

内部错误

错误码

请参见错误码