All Products
Search
Document Center

Serverless App Engine:CreateJob

Last Updated:Dec 26, 2025

Create a job template.

Debugging

You can run this interface directly in OpenAPI Explorer, saving you the trouble of calculating signatures. After running successfully, OpenAPI Explorer can automatically generate SDK code samples.

Authorization information

The following table shows the authorization information corresponding to the API. The authorization information can be used in the Action policy element to grant a RAM user or RAM role the permissions to call this API operation. Description:

  • Operation: the value that you can use in the Action element to specify the operation on a resource.
  • Access level: the access level of each operation. The levels are read, write, and list.
  • Resource type: the type of the resource on which you can authorize the RAM user or the RAM role to perform the operation. Take note of the following items:
    • For mandatory resource types, indicate with a prefix of * .
    • If the permissions cannot be granted at the resource level, All Resources is used in the Resource type column of the operation.
  • Condition Key: the condition key that is defined by the cloud service.
  • Associated operation: other operations that the RAM user or the RAM role must have permissions to perform to complete the operation. To complete the operation, the RAM user or the RAM role must have the permissions to perform the associated operations.
OperationAccess levelResource typeCondition keyAssociated operation
sae:CreateJobcreate
*All Resources
*
    none
none

Request syntax

POST /pop/v1/sam/job/createJob HTTP/1.1

Request parameters

ParameterTypeRequiredDescriptionExample
AppNamestringYes

The name of the job template. The name can contain digits, letters, and hyphens (-). The name must start with a letter and cannot exceed 36 characters in length.

test
NamespaceIdstringNo

The ID of the Serverless App Engine (SAE) namespace. The ID can contain only lowercase letters and hyphens (-). It must start with a lowercase letter.

cn-beijing:test
AppDescriptionstringNo

The description of the template. The description cannot exceed 1,024 characters in length.

This is a test description.
VpcIdstringNo

The ID of the virtual private cloud (VPC) that corresponds to the SAE namespace. In SAE, once correspondence is configured between a namespace and a VPC, the namespace cannot correspond to other VPCs. When the SAE application is created within the namespace, the application is bound with the VPC. Multiple namespaces can correspond to the same VPC. The default value is the ID of the VPC that is bound to the namespace.

vpc-bp1aevy8sofi8mh1q****
VSwitchIdstringNo

The vSwitch to which the elastic network interface (ENI) of the application instance is connected. The vSwitch must be located in the VPC specified by the VpcId parameter. The SAE namespace is bound with this vSwitch. The default value is the ID of the vSwitch that is bound to the namespace.

vsw-bp12mw1f8k3jgygk9****
PackageTypestringYes

The type of the deployment package. Take note of the following rules:

  • If you deploy the application by using a Java Archive (JAR) package, you can set this parameter to FatJar, War, or Image.
  • If you deploy the application by using a PHP package, you can set this parameter to one of the following values:

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

  • If you deploy the application by using a Python package, you can set this parameter to PythonZip or Image:
FatJar
PackageVersionstringNo

The version of the deployment package. This parameter is required if you set PackageType to FatJar, War, or PythonZip.

1.0.1
PackageUrlstringNo

The address of the deployment package. This parameter is required if you set PackageType to FatJar, War, or PythonZip.

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

The URL of the image. This parameter is returned only if the PackageType parameter is set to Image.

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

The version of the Java development kit (JDK) on which the deployment package of the application depends. The following versions are supported:

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

This parameter is not returned if the PackageType parameter is set to Image.

Open JDK 8
WebContainerstringNo

The version of the Tomcat container on which the deployment package depends. Valid values:

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

This parameter is not returned if the PackageType parameter is set to Image.

apache-tomcat-7.0.91
CpuintegerNo

The CPU specifications that are required for each instance. Unit: millicores. You cannot set this parameter to 0. Valid values:

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

The size of memory required by each instance. Unit: MB. You cannot set this parameter to 0. The values of this parameter correspond to the values of the Cpu parameter:

  • Set the value to 1024 when Cpu is set to 500 or 1000.
  • Set the value to 2048 when Cpu is set to 500, 1000 or 2000.
  • Set the value to 4096 when Cpu is set to 1000, 2000, or 4000.
  • Set the value to 8192 when Cpu is set to 2000, 4000, or 8000.
  • Set the value to 12288 when Cpu is set to 12000.
  • Set the value to 16384 when Cpu is set to 4000, 8000, or 16000.
  • Set the value to 24576 when Cpu is set to 12000.
  • Set the value to 32768 when Cpu is set to 16000.
  • Set the value to 65536 when Cpu is set to 8000, 16000, or 32000.
  • Set the value to 131072 when Cpu is set to 32000.
1024
ReplicasintegerYes

The number of concurrent instances.

3
CommandstringNo

The command that is used to start the image. The command must be an existing executable object in the container. Sample statements:

command:
      - echo
      - abc
      - >
      - file0

In this example, the Command parameter is set to Command="echo", CommandArgs=["abc", ">", "file0"].

echo
CommandArgsstringNo

The parameters of the image startup command. The CommandArgs parameter specifies the parameters that are required for the Command parameter. You can specify the name in one of the following formats:

["a","b"]

In the preceding example, the CommandArgs parameter is set to CommandArgs=["abc", ">", "file0"]. The data type of ["abc", ">", "file0"] must be an array of strings in the JSON format. This parameter is optional.

["a","b"]
EnvsstringNo

The environment variables. You can configure custom environment variables or reference a ConfigMap. If you want to reference a ConfigMap, you must first create a ConfigMap. For more information, see CreateConfigMap . Take note of the following rules:

  • Customize

    • name: the name of the environment variable.
    • value: the value of the environment variable.
  • Reference ConfigMap

    • name: the name of the environment variable. You can reference one or all keys. If you want to reference all keys, specify sae-sys-configmap-all-<ConfigMap name>. Example: sae-sys-configmap-all-test1.
    • valueFrom: the reference of the environment variable. Set the value to configMapRef.
    • configMapId: the ConfigMap ID.
    • key: the key. If you want to reference all keys, do not configure this parameter.
[{"name":"envtmp","value":"0"}]
CustomHostAliasstringNo

The custom mappings between hostnames and IP addresses in the container. Take note of the following rules:

  • hostName: the domain name or hostname.
  • ip: the IP address.
[{"hostName":"samplehost","ip":"127.0.0.1"}]
JarStartOptionsstringNo

The option settings in the JAR package. The settings are used to start the application container. The default startup command for application deployment is $JAVA_HOME/bin/java $JarStartOptions -jar $CATALINA_OPTS "$package_path" $JarStartArgs.

custom-option
JarStartArgsstringNo

The arguments in the JAR package. The arguments are used to start the application container. The default startup command is $JAVA_HOME/bin/java $JarStartOptions -jar $CATALINA_OPTS "$package_path" $JarStartArgs.

-Xms4G -Xmx4G
EdasContainerVersionstringNo

The version of the container, such as Ali-Tomcat, in which an application developed based on High-speed Service Framework (HSF) is deployed.

3.5.3
TimezonestringNo

The time zone. Default value: Asia/Shanghai.

Asia/Shanghai
SlsConfigsstringNo

The logging configurations of Log Service.

  • To use Log Service resources that are automatically created by SAE, set this parameter to [{"logDir":"","logType":"stdout"},{"logDir":"/tmp/a.log"}].
  • To use custom Log Service resources, set this parameter to [{"projectName":"test-sls","logType":"stdout","logDir":"","logstoreName":"sae","logtailName":""},{"projectName":"test","logDir":"/tmp/a.log","logstoreName":"sae","logtailName":""}].

The following table describes the parameters that are used in the preceding statements.

  • projectName: the name of the Log Service project.
  • logDir: the path in which logs are stored.
  • logType: the log type. stdout: the standard output log of the container. You can specify only one stdout value for this parameter. If you leave this parameter empty, file logs are collected.
  • logstoreName: the name of the Logstore in Log Service.
  • logtailName: the name of the Logtail configuration in Log Service. If you do not configure this parameter, a new Logtail configuration is created.

If you do not need to modify the logging configurations when you deploy the application, configure the SlsConfigs parameter only in the first request. You do not need to include this parameter in subsequent requests. If you no longer need to use Log Service, leave the SlsConfigs parameter empty in the request.

Note A Log Service project that is automatically created by SAE when you create an application is deleted when the application is deleted. Therefore, when you create an application, you cannot select a Log Service project that is automatically created by SAE for log collection.
[{"logDir":"","logType":"stdout"},{"logDir":"/tmp/a.log"}]
NasIdstringNo

The ID of the Apsara File Storage NAS file system. After the application is created, you may want to call other operations to manage the application. If you do not want to change the NAS configurations in these subsequent operations, you can omit the NasId parameter in the requests. If you want to unmount the NAS file system, you must set the NasId values in the subsequent requests to an empty string ("").

10d3b4****
MountHoststringNo

The mount target of the NAS file system in the VPC where the application is deployed. If you do not need to modify this configuration during the deployment, configure the MountHost parameter only in the first request. You do not need to include this parameter in subsequent requests. If you need to remove this configuration, leave the MountHost parameter empty in the request.

10d3b4bc9****.com
MountDescstringNo

The configurations for mounting the NAS file system. After the application is created, you may want to call other operations to manage the application. If you do not want to change the NAS configurations in these subsequent operations, you can omit the MountDesc parameter in the requests. If you want to unmount the NAS file system, you must set the MountDesc values in the subsequent requests to an empty string ("").

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

The script that is run before the container is stopped. Example: {"exec":{"command":\["sh","-c","echo hello"\]}}

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

The script that is run immediately after the container is started. Example: {"exec":{"command":\["sh","-c","echo hello"\]}}

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

The startup command of the WAR package. For information about how to configure the startup command, see Configure startup commands.

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

The description of the ConfigMap instance mounted to the application. Use configurations created on the Configuration Items page to configure containers. The following table describes the parameters that are used in the preceding statements.

  • congfigMapId: the ID of the ConfigMap instance. You can call the ListNamespacedConfigMaps operation to obtain the ID.
  • key: the key.
Note You can use the sae-sys-configmap-all key to mount all keys.
  • mountPath: the mount path in the container.
[{"configMapId":16,"key":"test","mountPath":"/tmp"}]
SecurityGroupIdstringNo

The ID of the security group.

sg-wz969ngg2e49q5i4****
AutoConfigbooleanNo

Specifies whether to automatically configure the network environment. Take note of the following rules:

  • true: The network environment is automatically configured by SAE when the application is created. In this case, the values of the NamespaceId, VpcId, vSwitchId, and SecurityGroupId parameters are ignored.
  • false: The network environment is manually configured based on your settings when the application is created.
false
TerminationGracePeriodSecondsintegerNo

The timeout period for a graceful shutdown. Default value: 30. Unit: seconds. Valid values: 1 to 300.

10
PhpConfigLocationstringNo

The path on which the PHP configuration file for application startup is mounted. Make sure that the PHP server uses this configuration file during the startup.

/usr/local/etc/php/php.ini
PhpConfigstringNo

The details of the PHP configuration file.

k1=v1
TomcatConfigstringNo

The Tomcat configuration. If you want to cancel this configuration, set this parameter to "" or "{}". The following variables are included in the configuration: Take note of the following rules:

  • port: the port number. The port number ranges from 1024 to 65535. Though the admin permissions are configured for the container, the root permissions are required to perform operations on ports whose number is smaller than 1024. Enter a value that ranges from 1025 to 65535 because the container has only the admin permissions. If you do not specify this parameter, the default port number 8080 is used.
  • contextPath: the path. Default value: /. This value indicates the root directory.
  • maxThreads: the maximum number of connections in the connection pool. Default value: 400.
  • uriEncoding: the URI encoding scheme in the Tomcat container. Valid values: UTF-8, ISO-8859-1, GBK, and GB2312.************ If you do not specify this parameter, the default value ISO-8859-1 is used.
  • useBodyEncoding: specifies whether to use the encoding scheme specified in the request body for URI query parameters. Default value: true.
{"port":8080,"contextPath":"/","maxThreads":400,"uriEncoding":"ISO-8859-1","useBodyEncodingForUri":true}
OssMountDescsstringNo

Information of the Object Storage Service (OSS) bucket mounted to the application. The following table describes the parameters that are used in the preceding statements.

  • bucketName: the name of the OSS bucket.

  • bucketPath: the directory or object in OSS. If the specified directory or object does not exist, an error is returned.

  • mountPath: the directory of the container in SAE. If the path already exists, the newly specified path overwrites the previous one. If the path does not exist, it is created.

  • readOnly: specifies whether to only allow the container path to read data from the OSS directory. Valid values:

    • true: The container path only has read permission on the OSS directory.
    • false: The application has read and write permissions.
[{"bucketName": "oss-bucket", "bucketPath": "data/user.data", "mountPath": "/usr/data/user.data", "readOnly": true}]
OssAkIdstringNo

The AccessKey ID that is used to read data from and write data to Object Storage Service (OSS) buckets.

xxxxxx
OssAkSecretstringNo

The AccessKey secret that is used to read data from and write data to OSS buckets.

xxxxxx
AcrInstanceIdstringNo

The ID of Container Registry Enterprise Edition instance N. This parameter is required when the ImageUrl parameter is set to the URL of an image in an ACR Enterprise Edition instance.

cri-xxxxxx
AcrAssumeRoleArnstringNo

The Alibaba Cloud Resource Name (ARN) required for a RAM role to obtain images across accounts. For more information, see Grant permissions across Alibaba Cloud accounts by using a RAM role.

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

The ID of the corresponding Secret.

10
WorkloadstringYes

Set the value to job.

job
TriggerConfigstringNo

The trigger configuration. Configure this parameter based on the job type.

  • Scheduled job: Set type to time, config to a CRON expression, and timezone to a specific time zone.

Example: {"type":"time","config":"0 1 */1 * ?","timezone":"GMT+8:00"}

  • One-time job: Set type to http and configure an HTTP trigger rule for config. For more information, see SourceHttpEventParameters .

Example: {"type":"http","config":{"type":"HTTPS","method"、["GET"],"ip":[],"referer":[],"securityConfig":"none"}}

{"type":"time","config":"0 1 */1 * ?","timezone":"GMT+8:00"}
ConcurrencyPolicystringNo

The concurrency policy of the job. Take note of the following rules:

  • Forbid: Prohibits concurrent running. If the previous job is not completed, no new job is created.
  • Allow: Allows concurrent running.
  • Replace: If the previous job is not completed when the time to create a new job is reached, the new job replaces the previous job.
Allow
TimeoutlongNo

The timeout period. Unit: seconds.

3600
BackoffLimitlongNo

The number of times the job is retried.

3
SlicebooleanNo

Specifies whether to enable job sharding.

true
SliceEnvsstringNo

The parameters of job sharding.

[0,1,2]
RefAppIdstringNo

The ID of the job that you reference.

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

The programming language. Valid values: java, php, python, and shell.

java
PythonstringNo

The Python environment. Set the value to PYTHON 3.9.15.

PYTHON 3.9.15
PythonModulesstringNo

The configurations for installing custom module dependencies. By default, the dependencies defined by the requirements.txt file in the root directory are installed. If the package does not contain this file and you do not configure custom dependencies in the package, specify the dependencies that you want to install in the text box.

Flask==2.0

Response parameters

ParameterTypeDescriptionExample
object

The information about the deployed application.

RequestIdstring

The ID of the request.

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

The additional information that is returned. Take note of the following rules:

  • success: If the call is successful, success is returned.
  • An error code: If the call fails, an error code is returned.
success
TraceIdstring

The trace ID that is used to query the details of the request.

ac1a0b2215622246421415014e****
Dataobject

The response.

ChangeOrderIdstring

The ID of the change order. It can be used to query the task status.

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

The application ID.

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

The error code returned if the request failed. Take note of the following rules:

  • The ErrorCode parameter is not returned if the request succeeds.
  • If the call fails, the ErrorCode parameter is returned. For more information, see the "Error codes" section of this topic.
Null
Codestring

The HTTP status code. Take note of the following rules:

  • 2xx: The call was successful.
  • 3xx: The call was redirected.
  • 4xx: The call failed.
  • 5xx: A server error occurred.
200
Successboolean

Indicates whether the application deployment is successful. Take note of the following rules:

  • true
  • false
true

Examples

Sample success responses

JSONformat

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

Error codes

HTTP status codeError codeError messageDescription
400Application.MissingJdkYour application must at least contain a JDK component.-
400InvalidPackageType.NotFoundThe package type must be War, FatJar, or 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.-
400InvalidParameter.ObviouslyThe specified parameter is invalid {%s}.-
400JarApplication.MissingJdkA FatJar application must contain 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.-
400PandoraApplication.OnlyJdkA Pandora application only requires JDK component.-
400InvalidParameter.WithMessageThe parameter is invalid {%s}: %s-
400InvalidComponent.NotFoundThe current component (such as JDK, Tomcat, or EDASWebContainer) does not exist.-
400InvalidHostnameIp.InvalidThe hostname and/or IP is invalid: Hostname [%s], IP [%s].-
400InvalidInstanceSpecification.UnsupportedThe instance specification is not supported: CPU [%s], memory [%s].-
400InvalidServerlessRegion.UnsupportedThe current region is not supported: %s-
400WarApplication.MissingJdkWebcontainerA War application must contain JDK and Tomcat.-
400InvalidNamespace.WithUppercaseThis namespace does not support creating SAE apps because it contains uppercase letters.-
400LogService.ConfigQuotaExceedThe maximum number of Log Service configs is exceeded.The maximum number of Log Service configs is exceeded, please join the DingTalk group 32874633 for technical support.
400LogService.InternalErrorAn exception occurred while calling Log Service. Please submit a ticket to solve the problem.An exception occurred while calling log service. please join the DingTalk group 32874633 for technical support.
400LogService.LogDirInvalidThe log collection path is invalid.The log collection path is invalid.
400LogService.NotAvailableLog Service is unavailable. Please activate Log Service first.The log service is not available. Please open the log service first.
400LogService.ProjectNumQuotaExceedThe maximum number of Log Service projects is exceeded.The maximum number of Log Service projects is exceeded, please join the DingTalk group 32874633 for technical support.
400vswitch.not.existThe specified VSwitch does not exist.The specified vSwitch does not exist. Please change the 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.You can create %s instances for each application. please join the DingTalk group 32874633 for technical support.
400NoComputeResourceQuota.User.ExceedYour account is limited to create %s instances. Please submit a ticket to raise the quota.Your account is limited to create %s instances. please join the DingTalk group 32874633 for technical support.
400System.UpgradingThe system is being upgraded. Please try again later.-
400VolumnPath.ConflictConflict between log collection directory and persistent storage directory.Conflict between log collection directory and persistent storage directory.
400MountConflict.ConfigMapConflict detected for ConfigMap path %s.-
400NotFound.ConfigMapThe ConfigMap object (ID: %s) does not exist.-
400NotFound.ConfigMapKeyThe key %s of ConfigMap object (ID: %s) does not exist.-
400Sls.Config.Mixed.Multi.ProjectThe specified Config contains multiple projects.-
400Sls.Config.User.Defined.Missing.Logstore.InfoThe specified Config is invalid. Both Project and Logstore must be specified.-
400Sls.Config.User.Defined.Missing.Project.InfoThe specified Config is invalid. Both Project and Logstore must be specified.-
400Sls.Logstore.Name.InvalidThe specified name of Logstore is invalid. The Logstore name must not contain the prefix "sae-".-
400Sls.Logstore.User.Defined.Not.ExistThe user defined Logstore does not exist.-
400Sls.Project.Name.InvalidThe specified project name is invalid. The project name must not contain the prefix "sae-".-
400Sls.Project.User.Defined.Not.ExistThe user defined project does not exist.-
400InvalidImageUrl.AcrInstanceId.Domain.NotMatchThe specified domain of ImageUrl does not match AcrInstanceId domains.-
400PhpApplication.MissingPhpRuntimeA PHP application must contain PHP Runtime.-
404Associate.Eip.Not.EnoughNo sufficient EIPs are available.-
404InvalidNamespaceId.NotFoundThe specified NamespaceId does not exist.-
404InvalidVpcId.NotFoundThe specified VpcId does not exist.-
404InvalidAcrInstanceId.NotFoundThe specified AcrInstanceId does not exist.-

For a list of error codes, visit the Service error codes.

Change history

Change timeSummary of changesOperation
2025-09-08The Error code has changed. The request parameters of the API has changedView Change Details