文档首页 > > API参考> API说明> 作业> 添加作业

添加作业

分享
更新时间: 2019/12/31 GMT+08:00

功能介绍

该接口用于创建一个属性为BatchJob的作业。

URI

POST /v1.0/{project_id}/batchjobs

参数说明请参见表1

表1 参数说明

参数

是否为必选

参数类型

描述

project_id

String

项目编号,获取方法请参考获取项目编号

请求消息

请求参数

请求参数如表 jobAddParamter请求参数说明所示。

表2 jobAddParamter请求参数说明

参数

是否为必选

参数类型

描述

jobName

String

作业名称。

取值范围:只能以小写字母开头,由小写字母、数字、中划线(-)组成,不能以中划线结尾,且长度为2-24个字符。

description

String

作业相关描述。

取值范围为0-1024个字符。支持可显示ascii码,换行,制表,回车。

默认值:NULL。

env

Map<String, String>

全局环境变量,字典数据结构{"key":"value"},默认值为空。

key取值范围:以字母或下划线开始,且不能以BATCH_开头,由数字、字母、下划线组成。

env取值范围:最大为8192个字符。

说明:

请勿使用明文隐私信息,如AK|SK,明文密码等。

tasks

List<TaskAddParameter>

增加的任务参数列表,详情可参考表3,如果是DAG作业,取值范围是1-100;非DAG作业,取值只能为1。

poolId

String

资源池ID。只支持非托管类型资源池。

dag

Map<String,Map<String,String>>

作业内的task dag编排。默认值为空。DAG中依赖关系只支持SUCCEEDED。例如:任务组B依赖于任务组A。任务组B要等任务组A运行成功后方可运行。字典数据结构如下:

"dag": {
"B": {
"A": "SUCCEEDED"
},
"A": {
}
}

notification

Notification

订阅作业事件,详情可参考表4

默认值:NULL。

表3 tasks字段数据结构说明

参数

是否为必选

参数类型

描述

taskAddParameter

TaskAddParameter

任务的定义,详情可参考表5

表4 notification字段数据结构说明

参数

是否为必选

参数类型

描述

topicName

String

订阅消息的名称。

取值范围为1-255个字符。只允许输入英文字符。

events

List<String>

作业的状态变化。

支持以下事件类型:

  • OnJobRunning
  • OnJobFailed
  • OnJobSucceeded
表5 taskAddParameter字段数据结构说明

参数

是否为必选

参数类型

描述

env

Map<String, String>

环境变量。

系统内置的环境变量请参考系统内置环境变量

您可以自定义环境变量,取值范围为0-8192个字符。key取值范围:以字母或下划线开头,且不能以“BATCH_”开头,由数字、字母、下划线组成。

说明:
  • 如果任务中配置的key和作业中配置的key相同,则实际生效的为任务中配置的的环境变量。
  • 请勿使用明文隐私信息,如AK|SK,明文密码等。

description

String

任务相关描述。

取值范围为0-1024个英文字符。支持可显示ascii码,换行,制表,回车。

默认值:NULL。

containers

containerAddParameter数据结构

容器定义,取值范围1-5个,详情可参考表6

replicas

Integer

任务数。取值范围大于等于1。默认值:1。

说明:

作业所有任务组的任务数总和不能超过100。

taskGroupName

String

任务组名称,在一个作业中taskGroupName唯一。

取值范围:只能以小写字母开头,由小写字母、数字、中划线(-)组成,不能以中划线结尾,取值范围为2-24个字符。

logRedirectPath

LogRedirectPath数据结构

设置日志重定向路径,详情可参考表 logRedirectPath字段数据结构说明。cmd为空时,不支持配置logRedirectPath。

taskIsolation

Boolean

任务独立性配置。

默认值:true。

表6 containerAddParameter字段数据结构说明

参数

是否为必选

参数类型

描述

resourceLimit

ResourceLimit数据结构

任务资源限制,包括容器和虚拟机进程,详情可参考表7

env

Map<String, String>

环境变量。

系统内置的环境变量请参考系统内置环境变量

您可以自定义环境变量,取值范围为0-8192个字符。key取值范围:以字母或下划线开头,且不能以“BATCH_”开头,由数字、字母、下划线组成。

说明:
  • 如果任务中配置的key和作业中配置的key相同,则实际生效的为任务中配置的的环境变量。
  • 请勿使用明文隐私信息,如AK|SK,明文密码等。

mounts

List<Mount>

任务的挂载信息,详情可参考表 mount字段数据结构说明

cmd

String

任务执行命令。cmd为null时,不支持配置logRedirectPath; cmd不为null时, 取值范围为0-4096个字符。

docker

Docker数据结构

docker容器参数。详情可参考表10

isRequired

Boolean

关键容器配置。

默认值:false。

表7 resourceLimit段数据结构说明

参数

是否为必选

参数类型

描述

cpu

Double

cpu核数,最小值为0.25核,最大是值1024核,且值不能超过任务所属资源池单节点可用cpu核数,可在资源池详情页查看,精确到2位小数。

mem

Integer

内存。单位为MB。

取值范围:最小值为128,最大值1024*1024(即1024G),且值不能超过任务所属资源池单节点可用内存,可在资源池详情页查看。

gpu

TaskGpu

gpu资源描述,详情可参考表 taskGpu数据结构说明。默认值:NULL。

说明:

单个Task多Container时,Container的资源限制最多只能支持相同的1种GPU型号。

表8 taskGpu数据结构说明

参数

是否为必选

参数类型

描述

type

String

GPU型号。

amount

Integer

GPU单元数。1块GPU由1000个GPU单元组成。

取值范围:最小值为1,最大值不能超过任务所属资源池单节点可用GPU单元数,可在资源池详情页查看。

表9 mount字段数据结构说明

参数

是否为必选

参数类型

描述

srcFSType

String

挂载到container上的源存储路径,支持“Host”本地挂载、“Obs”对象存储。

srcPath

String

数据源路径,"/data/input/"|"bucket-name/sub-path/"。

取值范围:以‘/’结尾,由数字(0-9)、字母(a-zA-Z)、冒号(:)、斜杠(/)、点(.)、中划线(-)、下划线(_)组成且长度为1~256个字符。

destPath

String

数据挂载路径,即挂载到容器的目的目录“/tmp/”,以斜杠'/'开头且以‘/’结尾,由数字(0-9)、字母(a-zA-Z)、冒号(:)、斜杠(/)、点(.)、中划线(-)、下划线(_)组成且长度为1~256个字符。

permission

String

挂载权限,仅支持“RO”(只读)、“RW”(读写)。

表10 docker字段数据结构说明

参数

是否为必选

参数类型

描述

server

String

镜像仓库地址,如果是华为容器镜像服务,可不填此参数。

image

String

docker镜像描述,[namespace][repo]:[tag]。

表11 logRedirectPath字段数据结构说明

参数

是否为必选

参数类型

描述

stderrRedirectPath

String

标准错误日志的OBS路径,以obs:// 开头,以斜杠“/”结尾,长度为0-1024个字符。规定使用用户自己的OBS中已创建的桶中的文件夹对象。

示例:obs://bucket-name/sub-path/。

stdoutRedirectPath

String

标准输出日志的OBS路径,以obs:// 开头,以斜杠“/”结尾,长度为0-1024个字符。规定使用用户自己的OBS中已创建的桶中的文件夹对象

示例:obs://bucket-name/sub-path/。

响应消息

响应参数

正常响应参数如表12所示。异常响应参数如表2所示。

表12 正常响应参数说明

参数

参数类型

描述

data

Object

返回内容可参考表13

msg

String

操作成功描述信息。

requestId

String

请求Id。

表13 data字段数据结构说明

参数

参数类型

描述

jobId

String

作业Id。

示例

如下以创建名称为test-batchjob的作业为例。
  • 请求示例
    {
    	"jobName": "test-batchjob",
    	"tasks": [{
    		"containers": [{
    			"resourceLimit": {
    				"mem": 128,
    				"cpu": 0.5
    			},
    			"cmd": "env;",
    			"docker": {
    				"server": "10.0.0.0:8888/op_svc_batch",
    				"image": "batch-agent:5.0"
    			}
    		}],
    		"taskGroupName": "task-a"
    	}],
    	"poolId": "pool2d34eb9e"
    }
  • 响应示例
    {
    	"data": {
    		"jobId": "job29b66cbb"
    	},
    	"msg": "submit add job successfully",
    	"requestId": "79830584c0"
    }

状态码

参考表1

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

跳转到云社区