文档

CreateJob - 创建任务模板

更新时间:

创建任务模板。

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

授权信息

下表是API对应的授权信息,可以在RAM权限策略语句的Action元素中使用,用来给RAM用户或RAM角色授予调用此API的权限。具体说明如下:

  • 操作:是指具体的权限点。
  • 访问级别:是指每个操作的访问级别,取值为写入(Write)、读取(Read)或列出(List)。
  • 资源类型:是指操作中支持授权的资源类型。具体说明如下:
    • 对于必选的资源类型,用背景高亮的方式表示。
    • 对于不支持资源级授权的操作,用全部资源表示。
  • 条件关键字:是指云产品自身定义的条件关键字。
  • 关联操作:是指成功执行操作所需要的其他权限。操作者必须同时具备关联操作的权限,操作才能成功。
操作访问级别资源类型条件关键字关联操作
sae:CreateJob
  • 全部资源
    *

请求语法

POST /pop/v1/sam/job/createJob

请求参数

名称类型必填描述示例值
AppNamestring

任务模板名称。允许数字、字母以及短划线(-)组合。必须以字母开始,不超过 36 个字符。

test
NamespaceIdstring

SAE 命名空间 ID。仅支持名称为小写字母加短划线(-)的命名空间,必须以字母开始。

cn-beijing:test
AppDescriptionstring

任务模板描述信息。不超过 1024 个字符。

This is a test description.
VpcIdstring

SAE 命名空间对应的 VPC。在 SAE 中,一个命名空间只能对应一个 VPC,且不能修改。第一次在命名空间内创建 SAE 任务模板将形成绑定关系。多个命名空间可以对应一个 VPC。不填则默认为命名空间绑定的 VPC ID。

vpc-bp1aevy8sofi8mh1q****
VSwitchIdstring

任务实例弹性网卡所在的虚拟交换机。该交换机必须位于上述 VPC 内。该交换机与 SAE 命名空间同样存在绑定关系。不填则默认为命名空间绑定的 vSwitch ID。

vsw-bp12mw1f8k3jgygk9****
PackageTypestring

任务包类型。取值说明如下:

  • 当您选择用 Java 部署时,支持 FatJarWarImage
  • 当您选择用 PHP 部署时,支持类型如下:
    • PhpZip
    • IMAGE_PHP_5_4
    • IMAGE_PHP_5_4_ALPINE
    • IMAGE_PHP_5_5
    • IMAGE_PHP_5_5_ALPINE
    • IMAGE_PHP_5_6
    • IMAGE_PHP_5_6_ALPINE
    • IMAGE_PHP_7_0
    • IMAGE_PHP_7_0_ALPINE
    • IMAGE_PHP_7_1
    • IMAGE_PHP_7_1_ALPINE
    • IMAGE_PHP_7_2
    • IMAGE_PHP_7_2_ALPINE
    • IMAGE_PHP_7_3
    • IMAGE_PHP_7_3_ALPINE
  • 当您选择用 Python 部署时,支持 PythonZipImage
FatJar
PackageVersionstring

部署包的版本号。当Package TypeFatJarWarPythonZip 时必填。

1.0.1
PackageUrlstring

部署包地址。当Package TypeFatJarWarPythonZip 时必填。

http://myoss.oss-cn-hangzhou.aliyuncs.com/my-buc/2019-06-30/****.jar
ImageUrlstring

镜像地址。当Package TypeImage 时必填。

registry.cn-hangzhou.aliyuncs.com/sae_test/ali_sae_test:0.0.1
Jdkstring

部署包依赖的 JDK 版本。支持版本如下:

  • Open JDK 8
  • Open JDK 7
  • Dragonwell 11
  • Dragonwell 8
  • openjdk-8u191-jdk-alpine3.9
  • openjdk-7u201-jdk-alpine3.9

Package TypeImage 时不支持。

Open JDK 8
WebContainerstring

部署包依赖的 Tomcat 版本。支持版本如下:

  • apache-tomcat-7.0.91
  • apache-tomcat-8.5.42

Package TypeImage 时不支持。

apache-tomcat-7.0.91
Cpuinteger

每个实例所需的 CPU,单位为毫核,不能为 0。目前仅支持以下固定规格:

  • 500
  • 1000
  • 2000
  • 4000
  • 8000
  • 16000
  • 32000
1000
Memoryinteger

每个实例所需的内存,单位为 MB,不能为 0。与 CPU 为一一对应关系,目前仅支持以下固定规格:

  • 1024:对应 CPU 为 500 毫核和 1000 毫核。
  • 2048:对应 CPU 为 500、1000 毫核和 2000 毫核。
  • 4096:对应 CPU 为 1000、2000 毫核和 4000 毫核。
  • 8192:对应 CPU 为 2000、4000 毫核和 8000 毫核。
  • 12288:对应 CPU 为 12000 毫核。
  • 16384:对应 CPU 为 4000、8000 毫核和 16000 毫核。
  • 24576:对应 CPU 为 12000 毫核。
  • 32768:对应 CPU 为 16000 毫核。
  • 65536:对应 CPU 为 8000、16000 和 32000 毫核。
  • 131072:对应 CPU 为 32000 毫核。
1024
Replicasinteger

任务并发实例数。

3
Commandstring

镜像启动命令。该命令必须为容器内存在的可执行的对象。示例如下:

command:
      - echo
      - abc
      - >
      - file0

根据上述示例,则Command="echo", CommandArgs=["abc", ">", "file0"]

echo
CommandArgsstring

镜像启动命令参数。上述启动命令 Command 所需参数。格式如下:

["a","b"]

在上述示例中,CommandArgs=["abc", ">", "file0"],其中["abc", ">", "file0"]需要转成 String 类型,里面的格式为 JSON 数组。如果无此参数,则无需填写。

["a","b"]
Envsstring

容器环境变量参数。支持自定义或引用配置项。如需引用配置项,请先创建 ConfigMap 实例。更多信息,请参见 CreateConfigMap 。取值说明如下:

  • 自定义配置
    • name:环境变量名称。
    • value:环境变量值。
  • 引用配置项
    • name:环境变量名称。支持引用单个或全部键,如果引用全部键,需输入sae-sys-configmap-all-<配置项名称>,例如sae-sys-configmap-all-test1
    • valueFrom:环境变量引用。取值为configMapRef
    • configMapId:配置项 ID。
    • key:键。如果引用全部健值,则不设置该字段。
[{"name":"envtmp","value":"0"}]
CustomHostAliasstring

容器内自定义 Host 映射。取值说明如下:

  • hostName:域名或主机名。
  • ip:IP 地址。
[{"hostName":"samplehost","ip":"127.0.0.1"}]
JarStartOptionsstring

JAR 包启动任务选项。任务默认启动命令:$JAVA_HOME/bin/java $JarStartOptions -jar $CATALINA_OPTS "$package_path" $JarStartArgs

custom-option
JarStartArgsstring

JAR 包启动任务参数。任务默认启动命令:$JAVA_HOME/bin/java $JarStartOptions -jar $CATALINA_OPTS "$package_path" $JarStartArgs

-Xms4G -Xmx4G
EdasContainerVersionstring

HSF 框架中任务运行环境版本,例如 Ali-Tomcat 容器。

3.5.3
Timezonestring

时区,默认为Asia/Shanghai

Asia/Shanghai
SlsConfigsstring

日志采集到 SLS 的配置。

  • 使用 SAE 自动创建的 SLS 资源:[{"logDir":"","logType":"stdout"},{"logDir":"/tmp/a.log"}]
  • 使用自定义的 SLS 资源:[{"projectName":"test-sls","logType":"stdout","logDir":"","logstoreName":"sae","logtailName":""},{"projectName":"test","logDir":"/tmp/a.log","logstoreName":"sae","logtailName":""}]

参数说明如下:

  • projectName:配置 SLS 上的 Project 名称。
  • logDir:日志路径。
  • logType:日志类型。stdout 表示容器标准输出日志,仅可设置 1 条;如果不设置,则表示收集文件日志。
  • logstoreName:配置 SLS 上的 Logstore 名称。
  • logtailName:配置 SLS 上的 Logtail 名称,如果不指定,则表示新建 Logtail。

多次部署时如果 SLS 采集配置没有变更,则不需要设置该参数(即请求中无需包含 SlsConfigs 字段);如果不再需要使用 SLS 采集功能,您需要在请求中将该字段的值设置为空字符串(即请求中 SlsConfigs 字段的值为"")。

说明 随任务模板自动创建的 Project 会随着任务模板删除而删除,因此在选择已有 Project 时,不能选择 SAE 自动创建的 Project。
[{"logDir":"","logType":"stdout"},{"logDir":"/tmp/a.log"}]
NasIdstring

NAS 文件系统的 ID。部署时如果配置没有变更,则不需要设置该参数(即请求中无需包含 NasId 字段);如果需要清除 NAS 配置,您需要在请求中将该字段的值设置为空字符串(即请求中 NasId 字段的值为"")。

10d3b4****
MountHoststring

NAS 在任务模板 VPC 内的挂载点。部署时如果配置没有变更,则不需要设置该参数(即请求中无需包含 MountHost 字段);如果需要清除 NAS 配置,您需要在请求中将该字段的值设置为空字符串(即请求中 MountHost 字段的值为"")。

10d3b4bc9****.com
MountDescstring

NAS 挂载描述。部署时如果配置没有变更,则不需要设置该参数(即请求中无需包含 MountDesc 字段);如果需要清除 NAS 配置,您需要在请求中将该字段的值设置为空字符串(即请求中 MountDesc 字段的值为"")。

[{mountPath: "/tmp", nasPath: "/"}]
PreStopstring

容器停止前执行脚本。在容器被删除前触发执行一段脚本,格式如:{"exec":{"command":\["sh","-c","echo hello"\]}}

{"exec":{"command":["sh","-c","echo hello"]}}
PostStartstring

容器启动后执行脚本。在容器被创建后立刻触发执行一段脚本,格式如:{"exec":{"command":\["sh","-c","echo hello"\]}}

{"exec":{"command":["sh","-c","echo hello"]}}
WarStartOptionsstring

设置 WAR 包部署任务的启动命令,操作步骤与镜像部署的启动命令配置操作相同。更多信息,请参见设置启动命令

CATALINA_OPTS=\"$CATALINA_OPTS $Options\" catalina.sh run
ConfigMapMountDescstring

ConfigMap 挂载描述。使用在命名空间配置项页面创建的配置项来向容器中注入配置信息。参数说明如下:

说明 可通过传递sae-sys-configmap-all参数挂载所有键。
  • mountPath:挂载路径。
[{"configMapId":16,"key":"test","mountPath":"/tmp"}]
SecurityGroupIdstring

安全组 ID。

sg-wz969ngg2e49q5i4****
AutoConfigboolean

是否自动配置网络环境。取值说明如下:

  • true:创建任务模板时 SAE 自动配置网络环境。NamespaceIdVpcIdVSwitchIdSecurityGroupId 的取值将被忽略。
  • false:创建任务模板时 SAE 手动配置网络环境。
false
TerminationGracePeriodSecondsinteger

优雅下线超时时间,默认为 30,单位为秒。取值范围为 1~300。

10
PhpConfigLocationstring

PHP 任务启动配置挂载路径,需要您保证 PHP 服务器会使用这个配置文件启动。

/usr/local/etc/php/php.ini
PhpConfigstring

PHP 配置文件内容。

k1=v1
TomcatConfigstring

Tomcat 文件配置,设置为""或"{}"表示删除配置。取值说明如下:

  • port:端口范围为 1024~65535,小于 1024 的端口需要 Root 权限才能操作。因为容器配置的是 Admin 权限,所以请填写大于 1024 的端口。如果不配置,则默认为 8080。
  • contextPath:访问路径,默认为根目录"/"。
  • maxThreads:配置连接池的连接数大小,默认大小为 400。
  • uriEncoding:Tomcat 的编码格式,包括UTF-8ISO-8859-1GBK 和 GB2312。如果不设置,则默认为ISO-8859-1
  • useBodyEncoding:是否使用BodyEncoding for URL,默认为 true
{"port":8080,"contextPath":"/","maxThreads":400,"uriEncoding":"ISO-8859-1","useBodyEncodingForUri":true}
OssMountDescsstring

OSS 挂载描述信息。参数说明如下:

  • bucketName:Bucket 名称。
  • bucketPath:您在 OSS 创建的目录或 OSS 对象,如果 OSS 挂载目录不存在,会触发异常。
  • mountPath:您在 SAE 的容器路径。如果路径已存在,为覆盖关系;如果路径不存在,会新建。
  • readOnly:容器路径是否对挂载目录资源有可读权限,取值说明如下:
    • true:只读权限。
    • false:读写权限。
[{"bucketName": "oss-bucket", "bucketPath": "data/user.data", "mountPath": "/usr/data/user.data", "readOnly": true}]
OssAkIdstring

OSS 读写的 AccessKey ID。

xxxxxx
OssAkSecretstring

OSS 读写的 AccessKey Secret。

xxxxxx
AcrInstanceIdstring

ACR 企业版实例 ID。当 ImageUrl 为容器镜像服务企业版时必填。

cri-xxxxxx
AcrAssumeRoleArnstring

跨账号拉取镜像时所需的 RAM 角色的 ARN。更多信息,请参见通过 RAM 角色实现跨云账号授权

acs:ram::123456789012****:role/adminrole
ImagePullSecretsstring

对应保密字典 ID。

10
EnableImageAcclboolean

是否开启镜像加速。取值说明如下:

  • true:开启。
  • false:关闭。
false
Workloadstring

Workload 需指定为job

job
TriggerConfigstring

任务触发配置,根据任务类型进行配置。

  • 定时任务type 字段设为 time,config 字段为具体 Cron 表达式,timezone 字段为指定时区。 配置示例:{"type":"time","config":"0 1 */1 * ?","timezone":"GMT+8:00"}
  • 一次性任务type 字段设为 http,config 配置具体的 HTTP 触发规则。更多信息,请参见请求参数 SourceHttpEventParameters。 配置示例:{"type":"http","config":{"type":"HTTPS","method"、["GET"],"ip":[],"referer":[],"securityConfig":"none"}}
{"type":"time","config":"0 1 */1 * ?","timezone":"GMT+8:00"}
ConcurrencyPolicystring

任务并发策略。取值说明如下:

  • Forbid:禁止并发运行,在前一个任务未完成时,不创建新任务。
  • Allow:允许并发运行任务。
  • Replace:当到达新任务创建时间点,而前一个任务未完成时,新的任务会取代前一个任务。
Allow
Timeoutlong

任务超时时间,单位为秒。

3600
BackoffLimitlong

任务重试次数。

3
Sliceboolean

启用任务分片。

true
SliceEnvsstring

任务分片参数。

[0,1,2]
RefAppIdstring

引用的任务目标 ID。

7171a6ca-d1cd-4928-8642-7d5cfe69****
ProgrammingLanguagestring

程序编程语言。支持 javaphppythonshell

java
Pythonstring

Python 环境。支持PYTHON 3.9.15

PYTHON 3.9.15
PythonModulesstring

自定义安装模块依赖。默认安装根目录下 requirements.txt 定义的依赖项。如果未配置或自定义软件包,可以指定安装的依赖。

Flask==2.0

返回参数

名称类型描述示例值
object

创建的任务模板信息。

RequestIdstring

请求 ID。

01CF26C7-00A3-4AA6-BA76-7E95F2A3***
Messagestring

附加信息。取值说明如下:

  • 请求正常,返回 success
  • 请求异常,返回具体异常错误码。
success
TraceIdstring

调用链 ID,用于精确查询调用信息。

ac1a0b2215622246421415014e****
Dataobject

返回结果。

ChangeOrderIdstring

返回的发布单 ID,用于查询任务执行状态。

01db03d3-3ee9-48b3-b3d0-dfce2d88****
AppIdstring

任务模板 ID。

7171a6ca-d1cd-4928-8642-7d5cfe69****
ErrorCodestring

错误码。取值说明如下:

  • 请求成功:不返回 ErrorCode 字段。
  • 请求失败:返回 ErrorCode 字段。具体信息,请参见本文的错误码列表。
Codestring

接口状态或 POP 错误码。取值说明如下:

  • 2xx:成功。
  • 3xx:重定向。
  • 4xx:请求错误。
  • 5xx:服务器错误。
200
Successboolean

创建任务模板是否成功。取值说明如下:

  • true:创建成功。
  • false:创建失败。
true

示例

正常返回示例

JSON格式

{
  "RequestId": "01CF26C7-00A3-4AA6-BA76-7E95F2A3***",
  "Message": "success",
  "TraceId": "ac1a0b2215622246421415014e****",
  "Data": {
    "ChangeOrderId": "01db03d3-3ee9-48b3-b3d0-dfce2d88****",
    "AppId": "7171a6ca-d1cd-4928-8642-7d5cfe69****"
  },
  "ErrorCode": "空",
  "Code": "200",
  "Success": true
}

错误码

HTTP status code错误码错误信息描述
400Application.MissingJdkYour application must at least contain a JDK component.应用必须至少包含JDK组件。
400InvalidPackageType.NotFoundThe package type must be War, FatJar, or Image.包类型必须为WAR、FatJAR或Image。
400InvalidParameter.FileNameThe application deployment package name is invalid. This name can contain only alphanumeric characters, hyphens (-), and underscores (_). In addition, you can upload JAR files only if the selected deployment version supports JAR file. Otherwise, upload WAR files only.-
400InvalidParameter.NotEmptyYou must specify the parameter %s.不合法的参数:%s不能为空。
400InvalidParameter.ObviouslyThe specified parameter is invalid {%s}.不合法的参数{%s}。
400JarApplication.MissingJdkA FatJar application must contain JDK.FatJar类型应用必须包含JDK。
400NoAvailableCluster.NotFoundNo clusters are available for the current region.当前地域没有可用集群。
400NoComputeResourceQuota.ExceedYour compute resource is insufficient. Please contact us to raise the quota.-
400PandoraApplication.MissingJdkThe Pandora application is missing a JDK component.Pandora应用缺少JDK组件。
400PandoraApplication.OnlyJdkA Pandora application only requires JDK component.Pandora应用只需要JDK组件。
400InvalidParameter.WithMessageThe parameter is invalid {%s}: %s不合法的参数{%s}:%s。
400InvalidComponent.NotFoundThe current component (such as JDK, Tomcat, or EDASWebContainer) does not exist.找不到当前组件(JDK、Tomcat、EDASWebContainer等)。
400InvalidHostnameIp.InvalidThe hostname and/or IP is invalid: Hostname [%s], IP [%s].主机名或IP不合法:主机名[%s],IP[%s]。
400InvalidInstanceSpecification.UnsupportedThe instance specification is not supported: CPU [%s], memory [%s].不支持的实例规格。CPU[%s],Memory[%s]。
400InvalidServerlessRegion.UnsupportedThe current region is not supported: %s不支持当前地域:%s。
400WarApplication.MissingJdkWebcontainerA War application must contain JDK and Tomcat.WAR类型应用必须包含JDK和Tomcat。
400InvalidNamespace.WithUppercaseThis namespace does not support creating SAE apps because it contains uppercase letters.命名空间不支持创建SAE应用,因为它带有大写字母。
400LogService.ConfigQuotaExceedThe maximum number of Log Service configs is exceeded.日志服务配置个数超过配额限制,请加入钉群32874633联系技术产品专家进行咨询。
400LogService.InternalErrorAn exception occurred while calling Log Service. Please submit a ticket to solve the problem.调用日志服务异常,请加入钉群32874633联系技术产品专家进行咨询。
400LogService.LogDirInvalidThe log collection path is invalid.日志采集路径不合法。
400LogService.NotAvailableLog Service is unavailable. Please activate Log Service first.日志服务不可用,请先开通日志服务。
400LogService.ProjectNumQuotaExceedThe maximum number of Log Service projects is exceeded.日志服务项目个数超过配额限制,请加入钉群32874633联系技术产品专家进行咨询。
400vswitch.not.existThe specified VSwitch does not exist.vSwitch不存在,请更换vSwitch。
400user.indebtThe user has an outstanding payment.当前用户处于欠费状态。
400NoComputeResourceQuota.App.ExceedYou can create %s instances for each application. Please submit a ticket to raise the quota.每个应用只允许创建%s个实例,请加入钉群32874633联系技术产品专家进行咨询。
400NoComputeResourceQuota.User.ExceedYour account is limited to create %s instances. Please submit a ticket to raise the quota.您的账户限额%s个实例,请加入钉群32874633联系技术产品专家进行咨询。
400System.UpgradingThe system is being upgraded. Please try again later.系统正在升级,请稍后操作。
400VolumnPath.ConflictConflict between log collection directory and persistent storage directory.日志采集目录与持久化存储目录冲突。
400MountConflict.ConfigMapConflict detected for ConfigMap path %s.ConfigMap挂载路径%s存在冲突。
400NotFound.ConfigMapThe ConfigMap object (ID: %s) does not exist.找不到ConfigMap对象(ID=%s)。
400NotFound.ConfigMapKeyThe key %s of ConfigMap object (ID: %s) does not exist.找不到ConfigMap对象(ID=%s)的Key %s。
400Sls.Config.Mixed.Multi.ProjectThe specified Config contains multiple projects.您输入的SLS Config中指定了多个Project。
400Sls.Config.User.Defined.Missing.Logstore.InfoThe specified Config is invalid. Both Project and Logstore must be specified.您输入的SLS Config为自定义SLS配置,但是只有Project配置,缺失Logstore配置。
400Sls.Config.User.Defined.Missing.Project.InfoThe specified Config is invalid. Both Project and Logstore must be specified.您输入的SLS Config为自定义SLS配置,但是只有Logstore配置,缺失Project配置。
400Sls.Logstore.Name.InvalidThe specified name of Logstore is invalid. The Logstore name must not contain the prefix "sae-".您输入的SLS Logstore名称不合法,前缀包含了"sae-",会与SAE自动创建的Logstore混淆。
400Sls.Logstore.User.Defined.Not.ExistThe user defined Logstore does not exist.您输入的自建Logstore不存在。
400Sls.Project.Name.InvalidThe specified project name is invalid. The project name must not contain the prefix "sae-".您输入的SLS Project名称不合法,前缀包含了"sae-",会与SAE自动创建的Project混淆。
400Sls.Project.User.Defined.Not.ExistThe user defined project does not exist.您输入的自建Project不存在。
400InvalidImageUrl.AcrInstanceId.Domain.NotMatchThe specified domain of ImageUrl does not match AcrInstanceId domains.指定的镜像地址ImageUrl域名与AcrInstanceId域名不匹配。
400PhpApplication.MissingPhpRuntimeA PHP application must contain PHP Runtime.PHP类型应用必须包含PHP运行时。
404Associate.Eip.Not.EnoughNo sufficient EIPs are available.绑定EIP时,EIP不足,需要您购买。
404InvalidNamespaceId.NotFoundThe specified NamespaceId does not exist.指定的NamespaceId不存在。
404InvalidVpcId.NotFoundThe specified VpcId does not exist.指定的VpcId不存在。
404InvalidAcrInstanceId.NotFoundThe specified AcrInstanceId does not exist.指定的 AcrInstanceId 不存在。

访问错误中心查看更多错误码。

变更历史

变更时间变更内容概要操作
暂无变更历史