创建任务模板。
调试
您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。
授权信息
下表是API对应的授权信息,可以在RAM权限策略语句的Action
元素中使用,用来给RAM用户或RAM角色授予调用此API的权限。具体说明如下:
- 操作:是指具体的权限点。
- 访问级别:是指每个操作的访问级别,取值为写入(Write)、读取(Read)或列出(List)。
- 资源类型:是指操作中支持授权的资源类型。具体说明如下:
- 对于必选的资源类型,用背景高亮的方式表示。
- 对于不支持资源级授权的操作,用
全部资源
表示。
- 条件关键字:是指云产品自身定义的条件关键字。
- 关联操作:是指成功执行操作所需要的其他权限。操作者必须同时具备关联操作的权限,操作才能成功。
操作 | 访问级别 | 资源类型 | 条件关键字 | 关联操作 |
---|---|---|---|---|
sae:CreateJob |
|
| 无 |
请求语法
POST /pop/v1/sam/job/createJob
请求参数
名称 | 类型 | 必填 | 描述 | 示例值 |
---|---|---|---|---|
AppName | string | 是 | 任务模板名称。允许数字、字母以及短划线(-)组合。必须以字母开始,不超过 36 个字符。 | test |
NamespaceId | string | 否 | SAE 命名空间 ID。仅支持名称为小写字母加短划线(-)的命名空间,必须以字母开始。 | cn-beijing:test |
AppDescription | string | 否 | 任务模板描述信息。不超过 1024 个字符。 | This is a test description. |
VpcId | string | 否 | SAE 命名空间对应的 VPC。在 SAE 中,一个命名空间只能对应一个 VPC,且不能修改。第一次在命名空间内创建 SAE 任务模板将形成绑定关系。多个命名空间可以对应一个 VPC。不填则默认为命名空间绑定的 VPC ID。 | vpc-bp1aevy8sofi8mh1q**** |
VSwitchId | string | 否 | 任务实例弹性网卡所在的虚拟交换机。该交换机必须位于上述 VPC 内。该交换机与 SAE 命名空间同样存在绑定关系。不填则默认为命名空间绑定的 vSwitch ID。 | vsw-bp12mw1f8k3jgygk9**** |
PackageType | string | 是 | 任务包类型。取值说明如下:
| FatJar |
PackageVersion | string | 否 | 部署包的版本号。当Package Type为 FatJar、War 或 PythonZip 时必填。 | 1.0.1 |
PackageUrl | string | 否 | 部署包地址。当Package Type为 FatJar、War 或 PythonZip 时必填。 | http://myoss.oss-cn-hangzhou.aliyuncs.com/my-buc/2019-06-30/****.jar |
ImageUrl | string | 否 | 镜像地址。当Package Type为 Image 时必填。 | registry.cn-hangzhou.aliyuncs.com/sae_test/ali_sae_test:0.0.1 |
Jdk | string | 否 | 部署包依赖的 JDK 版本。支持版本如下:
当Package Type为 Image 时不支持。 | Open JDK 8 |
WebContainer | string | 否 | 部署包依赖的 Tomcat 版本。支持版本如下:
当Package Type为 Image 时不支持。 | apache-tomcat-7.0.91 |
Cpu | integer | 否 | 每个实例所需的 CPU,单位为毫核,不能为 0。目前仅支持以下固定规格:
| 1000 |
Memory | integer | 否 | 每个实例所需的内存,单位为 MB,不能为 0。与 CPU 为一一对应关系,目前仅支持以下固定规格:
| 1024 |
Replicas | integer | 是 | 任务并发实例数。 | 3 |
Command | string | 否 | 镜像启动命令。该命令必须为容器内存在的可执行的对象。示例如下:
根据上述示例,则 | echo |
CommandArgs | string | 否 | 镜像启动命令参数。上述启动命令 Command 所需参数。格式如下:
在上述示例中, | ["a","b"] |
Envs | string | 否 | 容器环境变量参数。支持自定义或引用配置项。如需引用配置项,请先创建 ConfigMap 实例。更多信息,请参见 CreateConfigMap 。取值说明如下:
| [{"name":"envtmp","value":"0"}] |
CustomHostAlias | string | 否 | 容器内自定义 Host 映射。取值说明如下:
| [{"hostName":"samplehost","ip":"127.0.0.1"}] |
JarStartOptions | string | 否 | JAR 包启动任务选项。任务默认启动命令: | custom-option |
JarStartArgs | string | 否 | JAR 包启动任务参数。任务默认启动命令: | -Xms4G -Xmx4G |
EdasContainerVersion | string | 否 | HSF 框架中任务运行环境版本,例如 Ali-Tomcat 容器。 | 3.5.3 |
Timezone | string | 否 | 时区,默认为Asia/Shanghai。 | Asia/Shanghai |
SlsConfigs | string | 否 | 日志采集到 SLS 的配置。
参数说明如下:
多次部署时如果 SLS 采集配置没有变更,则不需要设置该参数(即请求中无需包含 SlsConfigs 字段);如果不再需要使用 SLS 采集功能,您需要在请求中将该字段的值设置为空字符串(即请求中 SlsConfigs 字段的值为"")。 说明
随任务模板自动创建的 Project 会随着任务模板删除而删除,因此在选择已有 Project 时,不能选择 SAE 自动创建的 Project。
| [{"logDir":"","logType":"stdout"},{"logDir":"/tmp/a.log"}] |
NasId | string | 否 | NAS 文件系统的 ID。部署时如果配置没有变更,则不需要设置该参数(即请求中无需包含 NasId 字段);如果需要清除 NAS 配置,您需要在请求中将该字段的值设置为空字符串(即请求中 NasId 字段的值为"")。 | 10d3b4**** |
MountHost | string | 否 | NAS 在任务模板 VPC 内的挂载点。部署时如果配置没有变更,则不需要设置该参数(即请求中无需包含 MountHost 字段);如果需要清除 NAS 配置,您需要在请求中将该字段的值设置为空字符串(即请求中 MountHost 字段的值为"")。 | 10d3b4bc9****.com |
MountDesc | string | 否 | NAS 挂载描述。部署时如果配置没有变更,则不需要设置该参数(即请求中无需包含 MountDesc 字段);如果需要清除 NAS 配置,您需要在请求中将该字段的值设置为空字符串(即请求中 MountDesc 字段的值为"")。 | [{mountPath: "/tmp", nasPath: "/"}] |
PreStop | string | 否 | 容器停止前执行脚本。在容器被删除前触发执行一段脚本,格式如: | {"exec":{"command":["sh","-c","echo hello"]}} |
PostStart | string | 否 | 容器启动后执行脚本。在容器被创建后立刻触发执行一段脚本,格式如: | {"exec":{"command":["sh","-c","echo hello"]}} |
WarStartOptions | string | 否 | 设置 WAR 包部署任务的启动命令,操作步骤与镜像部署的启动命令配置操作相同。更多信息,请参见设置启动命令。 | CATALINA_OPTS=\"$CATALINA_OPTS $Options\" catalina.sh run |
ConfigMapMountDesc | string | 否 | ConfigMap 挂载描述。使用在命名空间配置项页面创建的配置项来向容器中注入配置信息。参数说明如下:
说明
可通过传递 sae-sys-configmap-all 参数挂载所有键。
| [{"configMapId":16,"key":"test","mountPath":"/tmp"}] |
SecurityGroupId | string | 否 | 安全组 ID。 | sg-wz969ngg2e49q5i4**** |
AutoConfig | boolean | 否 | 是否自动配置网络环境。取值说明如下:
| false |
TerminationGracePeriodSeconds | integer | 否 | 优雅下线超时时间,默认为 30,单位为秒。取值范围为 1~300。 | 10 |
PhpConfigLocation | string | 否 | PHP 任务启动配置挂载路径,需要您保证 PHP 服务器会使用这个配置文件启动。 | /usr/local/etc/php/php.ini |
PhpConfig | string | 否 | PHP 配置文件内容。 | k1=v1 |
TomcatConfig | string | 否 | Tomcat 文件配置,设置为""或"{}"表示删除配置。取值说明如下:
| {"port":8080,"contextPath":"/","maxThreads":400,"uriEncoding":"ISO-8859-1","useBodyEncodingForUri":true} |
OssMountDescs | string | 否 | OSS 挂载描述信息。参数说明如下:
| [{"bucketName": "oss-bucket", "bucketPath": "data/user.data", "mountPath": "/usr/data/user.data", "readOnly": true}] |
OssAkId | string | 否 | OSS 读写的 AccessKey ID。 | xxxxxx |
OssAkSecret | string | 否 | OSS 读写的 AccessKey Secret。 | xxxxxx |
AcrInstanceId | string | 否 | ACR 企业版实例 ID。当 ImageUrl 为容器镜像服务企业版时必填。 | cri-xxxxxx |
AcrAssumeRoleArn | string | 否 | 跨账号拉取镜像时所需的 RAM 角色的 ARN。更多信息,请参见通过 RAM 角色实现跨云账号授权。 | acs:ram::123456789012****:role/adminrole |
ImagePullSecrets | string | 否 | 对应保密字典 ID。 | 10 |
EnableImageAccl | boolean | 否 | 是否开启镜像加速。取值说明如下:
| false |
Workload | string | 是 | Workload 需指定为 | job |
TriggerConfig | string | 否 | 任务触发配置,根据任务类型进行配置。
| {"type":"time","config":"0 1 */1 * ?","timezone":"GMT+8:00"} |
ConcurrencyPolicy | string | 否 | 任务并发策略。取值说明如下:
| Allow |
Timeout | long | 否 | 任务超时时间,单位为秒。 | 3600 |
BackoffLimit | long | 否 | 任务重试次数。 | 3 |
Slice | boolean | 否 | 启用任务分片。 | true |
SliceEnvs | string | 否 | 任务分片参数。 | [0,1,2] |
RefAppId | string | 否 | 引用的任务目标 ID。 | 7171a6ca-d1cd-4928-8642-7d5cfe69**** |
ProgrammingLanguage | string | 否 | 程序编程语言。支持 java、php、python 和 shell。 | java |
Python | string | 否 | Python 环境。支持PYTHON 3.9.15。 | PYTHON 3.9.15 |
PythonModules | string | 否 | 自定义安装模块依赖。默认安装根目录下 requirements.txt 定义的依赖项。如果未配置或自定义软件包,可以指定安装的依赖。 | Flask==2.0 |
返回参数
示例
正常返回示例
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 | 错误码 | 错误信息 | 描述 |
---|---|---|---|
400 | Application.MissingJdk | Your application must at least contain a JDK component. | 应用必须至少包含JDK组件。 |
400 | InvalidPackageType.NotFound | The package type must be War, FatJar, or Image. | 包类型必须为WAR、FatJAR或Image。 |
400 | InvalidParameter.FileName | The 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. | - |
400 | InvalidParameter.NotEmpty | You must specify the parameter %s. | 不合法的参数:%s不能为空。 |
400 | InvalidParameter.Obviously | The specified parameter is invalid {%s}. | 不合法的参数{%s}。 |
400 | JarApplication.MissingJdk | A FatJar application must contain JDK. | FatJar类型应用必须包含JDK。 |
400 | NoAvailableCluster.NotFound | No clusters are available for the current region. | 当前地域没有可用集群。 |
400 | NoComputeResourceQuota.Exceed | Your compute resource is insufficient. Please contact us to raise the quota. | - |
400 | PandoraApplication.MissingJdk | The Pandora application is missing a JDK component. | Pandora应用缺少JDK组件。 |
400 | PandoraApplication.OnlyJdk | A Pandora application only requires JDK component. | Pandora应用只需要JDK组件。 |
400 | InvalidParameter.WithMessage | The parameter is invalid {%s}: %s | 不合法的参数{%s}:%s。 |
400 | InvalidComponent.NotFound | The current component (such as JDK, Tomcat, or EDASWebContainer) does not exist. | 找不到当前组件(JDK、Tomcat、EDASWebContainer等)。 |
400 | InvalidHostnameIp.Invalid | The hostname and/or IP is invalid: Hostname [%s], IP [%s]. | 主机名或IP不合法:主机名[%s],IP[%s]。 |
400 | InvalidInstanceSpecification.Unsupported | The instance specification is not supported: CPU [%s], memory [%s]. | 不支持的实例规格。CPU[%s],Memory[%s]。 |
400 | InvalidServerlessRegion.Unsupported | The current region is not supported: %s | 不支持当前地域:%s。 |
400 | WarApplication.MissingJdkWebcontainer | A War application must contain JDK and Tomcat. | WAR类型应用必须包含JDK和Tomcat。 |
400 | InvalidNamespace.WithUppercase | This namespace does not support creating SAE apps because it contains uppercase letters. | 命名空间不支持创建SAE应用,因为它带有大写字母。 |
400 | LogService.ConfigQuotaExceed | The maximum number of Log Service configs is exceeded. | 日志服务配置个数超过配额限制,请加入钉群32874633联系技术产品专家进行咨询。 |
400 | LogService.InternalError | An exception occurred while calling Log Service. Please submit a ticket to solve the problem. | 调用日志服务异常,请加入钉群32874633联系技术产品专家进行咨询。 |
400 | LogService.LogDirInvalid | The log collection path is invalid. | 日志采集路径不合法。 |
400 | LogService.NotAvailable | Log Service is unavailable. Please activate Log Service first. | 日志服务不可用,请先开通日志服务。 |
400 | LogService.ProjectNumQuotaExceed | The maximum number of Log Service projects is exceeded. | 日志服务项目个数超过配额限制,请加入钉群32874633联系技术产品专家进行咨询。 |
400 | vswitch.not.exist | The specified VSwitch does not exist. | vSwitch不存在,请更换vSwitch。 |
400 | user.indebt | The user has an outstanding payment. | 当前用户处于欠费状态。 |
400 | NoComputeResourceQuota.App.Exceed | You can create %s instances for each application. Please submit a ticket to raise the quota. | 每个应用只允许创建%s个实例,请加入钉群32874633联系技术产品专家进行咨询。 |
400 | NoComputeResourceQuota.User.Exceed | Your account is limited to create %s instances. Please submit a ticket to raise the quota. | 您的账户限额%s个实例,请加入钉群32874633联系技术产品专家进行咨询。 |
400 | System.Upgrading | The system is being upgraded. Please try again later. | 系统正在升级,请稍后操作。 |
400 | VolumnPath.Conflict | Conflict between log collection directory and persistent storage directory. | 日志采集目录与持久化存储目录冲突。 |
400 | MountConflict.ConfigMap | Conflict detected for ConfigMap path %s. | ConfigMap挂载路径%s存在冲突。 |
400 | NotFound.ConfigMap | The ConfigMap object (ID: %s) does not exist. | 找不到ConfigMap对象(ID=%s)。 |
400 | NotFound.ConfigMapKey | The key %s of ConfigMap object (ID: %s) does not exist. | 找不到ConfigMap对象(ID=%s)的Key %s。 |
400 | Sls.Config.Mixed.Multi.Project | The specified Config contains multiple projects. | 您输入的SLS Config中指定了多个Project。 |
400 | Sls.Config.User.Defined.Missing.Logstore.Info | The specified Config is invalid. Both Project and Logstore must be specified. | 您输入的SLS Config为自定义SLS配置,但是只有Project配置,缺失Logstore配置。 |
400 | Sls.Config.User.Defined.Missing.Project.Info | The specified Config is invalid. Both Project and Logstore must be specified. | 您输入的SLS Config为自定义SLS配置,但是只有Logstore配置,缺失Project配置。 |
400 | Sls.Logstore.Name.Invalid | The specified name of Logstore is invalid. The Logstore name must not contain the prefix "sae-". | 您输入的SLS Logstore名称不合法,前缀包含了"sae-",会与SAE自动创建的Logstore混淆。 |
400 | Sls.Logstore.User.Defined.Not.Exist | The user defined Logstore does not exist. | 您输入的自建Logstore不存在。 |
400 | Sls.Project.Name.Invalid | The specified project name is invalid. The project name must not contain the prefix "sae-". | 您输入的SLS Project名称不合法,前缀包含了"sae-",会与SAE自动创建的Project混淆。 |
400 | Sls.Project.User.Defined.Not.Exist | The user defined project does not exist. | 您输入的自建Project不存在。 |
400 | InvalidImageUrl.AcrInstanceId.Domain.NotMatch | The specified domain of ImageUrl does not match AcrInstanceId domains. | 指定的镜像地址ImageUrl域名与AcrInstanceId域名不匹配。 |
400 | PhpApplication.MissingPhpRuntime | A PHP application must contain PHP Runtime. | PHP类型应用必须包含PHP运行时。 |
404 | Associate.Eip.Not.Enough | No sufficient EIPs are available. | 绑定EIP时,EIP不足,需要您购买。 |
404 | InvalidNamespaceId.NotFound | The specified NamespaceId does not exist. | 指定的NamespaceId不存在。 |
404 | InvalidVpcId.NotFound | The specified VpcId does not exist. | 指定的VpcId不存在。 |
404 | InvalidAcrInstanceId.NotFound | The specified AcrInstanceId does not exist. | 指定的 AcrInstanceId 不存在。 |
访问错误中心查看更多错误码。
变更历史
变更时间 | 变更内容概要 | 操作 |
---|