Creates an application.
Try it now
Test
RAM authorization
|
Action |
Access level |
Resource type |
Condition key |
Dependent action |
|
sae:CreateApplication |
create |
*All Resource
|
None | None |
Request syntax
POST /pop/v1/sam/app/createApplication HTTP/1.1
Request parameters
|
Parameter |
Type |
Required |
Description |
Example |
| AppName |
string |
Yes |
The application name. The name can contain digits, letters, and hyphens (-). The name must start with a letter and cannot end with a hyphen (-). The name can be up to 36 characters in length. |
test |
| NamespaceId |
string |
No |
The SAE namespace ID. Only namespaces whose names contain lowercase letters and hyphens (-) are supported. The name must start with a letter. You can obtain namespaces by calling the DescribeNamespaceList operation. |
cn-beijing:test |
| AppDescription |
string |
No |
The application description. The description can be up to 1024 characters in length. |
This is a test description. |
| VpcId |
string |
No |
The VPC that corresponds to the SAE namespace. In SAE, a namespace can correspond to only one VPC, and the mapping cannot be modified. The binding relationship is established when the first SAE application is created in the namespace. Multiple namespaces can correspond to the same VPC. If you leave this parameter empty, the VPC bound to the namespace is used by default. |
vpc-bp1aevy8sofi8mh1q**** |
| VSwitchId |
string |
No |
The vSwitch where the elastic network interface controller (NIC) of the application instance resides. The vSwitch must be in the specified VPC. The vSwitch also has a binding relationship with the SAE namespace. If you leave this parameter empty, the vSwitch attached to the namespace is used by default. |
vsw-bp12mw1f8k3jgygk9**** |
| PackageType |
string |
Yes |
The type of the application deployment package. Valid values:
|
FatJar |
| PackageVersion |
string |
No |
The version of the deployment package. This parameter is required when Package Type is set to FatJar, War, or PythonZip. |
1.0.0 |
| PackageUrl |
string |
No |
The address of the deployment package. This parameter is required when Package Type is set to FatJar, War, or PythonZip. |
http://myoss.oss-cn-****.aliyuncs.com/my-buc/2019-06-30/****.jar |
| ImageUrl |
string |
No |
The image address. This parameter is required when Package Type is set to Image. |
registry.cn-hangzhou.aliyuncs.com/sae_test/ali_sae_test:0.0.1 |
| Jdk |
string |
No |
The JDK version on which the deployment package depends. Valid values:
This parameter is not supported when Package Type is set to Image. |
Open JDK 8 |
| WebContainer |
string |
No |
The version of Tomcat on which the WebContainer deployment package depends. Valid values:
This parameter is not supported when Package Type is set to Image. |
apache-tomcat-7.0.91 |
| Cpu |
integer |
No |
The CPU specifications required for each instance, in millicores. This parameter cannot be set to 0. Only the following defined specifications are supported:
|
1000 |
| Memory |
integer |
No |
The memory required for each instance, in MB. This parameter cannot be set to 0. The memory has a one-to-one mapping with CPU. Only the following defined specifications are supported:
|
1024 |
| Replicas |
integer |
Yes |
The initial number of instances. |
1 |
| Command |
string |
No |
The command that is used to start the image. The command must be an executable object in the container. Example:
In the preceding example, Important This parameter is required when PackageType is set to DotnetZip. |
echo |
| CommandArgs |
string |
No |
The arguments of the image startup command. These are the arguments required by the startup command specified in Command. Format:
In the preceding example, Important This parameter is required when PackageType is set to DotnetZip. |
["a","b"] |
| Envs |
string |
No |
The container environment variable parameters. You can customize environment variables or reference a ConfigMap. To reference a ConfigMap, create a ConfigMap instance first. For more information, see CreateConfigMap. Valid values:
|
[ { "name": "sae-sys-configmap-all-hello", "valueFrom": { "configMapRef": { "configMapId": 100, "key": "" } } }, { "name": "hello", "valueFrom": { "configMapRef": { "configMapId": 101, "key": "php-fpm" } } }, { "name": "envtmp", "value": "newenv" } ] |
| CustomHostAlias |
string |
No |
The custom host mapping in the container. Valid values:
|
[{"hostName":"samplehost","ip":"127.0.0.1"}] |
| JarStartOptions |
string |
No |
The options for starting the JAR package application. The default startup command for the application: |
-Xms4G -Xmx4G |
| JarStartArgs |
string |
No |
The arguments for starting the JAR package application. The default startup command for the application: |
custom-args |
| Liveness |
string |
No |
The container health check. Containers that fail the health check are shutdown and recovered. The following methods are supported:
Note
You can use only one method for health checks. Parameter description:
|
{"exec":{"command":["sh","-c","cat /home/admin/start.sh"]},"initialDelaySeconds":30,"periodSeconds":30,"timeoutSeconds":2} |
| Readiness |
string |
No |
The application startup status check. Containers that fail multiple health checks are shut down and restarted. Containers that do not pass the health check do not receive SLB traffic. The exec, httpGet, and tcpSocket methods are supported. For specific examples, see the Liveness parameter. Note
You can use only one method for health checks. |
{"exec":{"command":["sh","-c","cat /home/admin/start.sh"]},"initialDelaySeconds":30,"periodSeconds":30,"timeoutSeconds":2} |
| Deploy |
boolean |
No |
Specifies whether to immediately deploy the application. Valid values:
|
true |
| EdasContainerVersion |
string |
No |
The version of the application runtime environment in the HSF framework, such as the Ali-Tomcat container. |
3.5.3 |
| Timezone |
string |
No |
The time zone. Default value: Asia/Shanghai. |
Asia/Shanghai |
| SlsConfigs |
string |
No |
The configurations for log collection to Simple Log Service.
Parameter description:
If the SLS collection configuration does not change during multiple deployments, you do not need to set this parameter (that is, the SlsConfigs field does not need to be included in the request). If you no longer need the SLS collection feature, set the value of this field to an empty string (that is, set the value of the SlsConfigs field to "" in the request). Note
Projects that are automatically created with the application are deleted when the application is deleted. Therefore, do not select a project that is automatically created by SAE when you select an existing project. |
[{"logDir":"","logType":"stdout"},{"logDir":"/tmp/a.log"}] |
| NasId |
string |
No |
We recommend that you do not set this parameter. Set NasConfigs instead. The ID of the mounted NAS file system. The NAS file system must be in the same region as the cluster. The NAS file system must have available mount target creation quota, or its mount target must already be on a vSwitch in the VPC. If this parameter is left empty and the mountDescs field exists, a NAS file system is automatically purchased and mounted to a vSwitch in the VPC. If the configuration does not change during deployment, you do not need to set this parameter (that is, the NASId field does not need to be included in the request). To clear the NAS configuration, set the value of this field to an empty string (that is, set the value of the NASId field to "" in the request). |
KSAK**** |
| MountHost |
string |
No |
We recommend that you do not set this parameter. Set NasConfigs instead. The mount target of the NAS file system in the VPC of the application. If the configuration does not change during deployment, you do not need to set this parameter (that is, the MountHost field does not need to be included in the request). To clear the NAS configuration, set the value of this field to an empty string (that is, set the value of the MountHost field to "" in the request). |
example.com |
| MountDesc |
string |
No |
We recommend that you do not set this parameter. Set NasConfigs instead. The NAS mount description. If the configuration does not change during deployment, you do not need to set this parameter (that is, the MountDesc field does not need to be included in the request). To clear the NAS configuration, set the value of this field to an empty string (that is, set the value of the MountDesc field to "" in the request). |
[{mountPath: "/tmp", nasPath: "/"}] |
| PreStop |
string |
No |
The script that is run before the container is stopped. A script is triggered and run before the container is deleted. Format: |
{"exec":{"command":["cat","/etc/group"]}} |
| PostStart |
string |
No |
The script that is run after the container is started. A script is triggered and run immediately after the container is created. Format: |
{"exec":{"command":["cat","/etc/group"]}} |
| WarStartOptions |
string |
No |
The startup command for deploying a WAR package application. The configuration procedure is the same as that for the startup command of an image deployment. For more information, see Configure a startup command. |
CATALINA_OPTS=\"$CATALINA_OPTS $Options\" catalina.sh run |
| ConfigMapMountDesc |
string |
No |
The ConfigMap mount description. Use a ConfigMap created on the namespace configuration items page to inject configuration information into the container. Parameter description:
Note
You can mount all keys by passing the
|
[{"configMapId":16,"key":"test","mountPath":"/tmp"}] |
| SecurityGroupId |
string |
No |
The security group ID. |
sg-wz969ngg2e49q5i4**** |
| AutoConfig |
boolean |
No |
Specifies whether to automatically configure the network environment. Valid values:
Note
If this parameter is set to true, any other NamespaceId value that is passed is ignored. |
true |
| TerminationGracePeriodSeconds |
integer |
No |
The timeout period for graceful shutdown. Default value: 30. Unit: seconds. Valid values: 1 to 300. |
30 |
| PhpArmsConfigLocation |
string |
No |
The mount path for PHP application monitoring. Make sure that the PHP server loads the configuration file from this path. You do not need to manage the configuration content. SAE automatically renders the correct configuration file. |
/usr/local/etc/php/conf.d/arms.ini |
| PhpConfigLocation |
string |
No |
The mount path for the PHP application startup configuration. Make sure that the PHP server uses this configuration file to start. |
/usr/local/etc/php/php.ini |
| PhpConfig |
string |
No |
The content of the PHP configuration file. |
k1=v1 |
| TomcatConfig |
string |
No |
The Tomcat configuration. Set this parameter to "" or "{}" to delete the configuration:
|
{"port":8080,"contextPath":"/","maxThreads":400,"uriEncoding":"ISO-8859-1","useBodyEncodingForUri":true} |
| OssMountDescs |
string |
No |
The OSS mount description. Parameter description:
|
[{"bucketName": "oss-bucket", "bucketPath": "data/user.data", "mountPath": "/usr/data/user.data", "readOnly": true}] |
| OssAkId |
string |
No |
The AccessKey ID for OSS read and write operations. |
xxxxxx |
| OssAkSecret |
string |
No |
The AccessKey Secret for OSS read and write operations. |
xxxxxx |
| Php |
string |
No |
The PHP version on which the deployment package depends. Not supported for images. |
PHP-FPM 7.0 |
| AcrInstanceId |
string |
No |
The instance ID of the Container Registry Enterprise instance. This parameter is required when ImageUrl is set to a Container Registry Enterprise Edition image. |
cri-xxxxxx |
| AcrAssumeRoleArn |
string |
No |
The ARN of the RAM role required for cross-account image pulling. For more information, see Grant permissions across Alibaba Cloud accounts by using a RAM role. |
acs:ram::123456789012****:role/adminrole |
| ImagePullSecrets |
string |
No |
The corresponding secret ID. |
10 |
| AssociateEip |
boolean |
No |
Specifies whether to associate an EIP. Valid values:
|
true |
| ProgrammingLanguage |
string |
No |
The programming language of the technology stack used to create the application. Valid values:
|
java |
| KafkaConfigs |
string |
No |
The summary of configurations for log collection to Kafka. Valid values:
|
{"kafkaEndpoint":"10.0.X.XXX:XXXX,10.0.X.XXX:XXXX,10.0.X.XXX:XXXX","kafkaInstanceId":"alikafka_pre-cn-7pp2l8kr****","kafkaConfigs":[{"logType":"file_log","logDir":"/tmp/a.log","kafkaTopic":"test2"},{"logType":"stdout","logDir":"","kafkaTopic":"test"}]} |
| PvtzDiscoverySvc |
string |
No |
Enables K8s Service-based service registration and discovery. Valid values:
|
{"serviceName":"bwm-poc-sc-gateway-cn-beijing-front","namespaceId":"cn-beijing:front","portAndProtocol":{"18012":"TCP"},"enable":true,"portProtocols":[{"port":18012,"protocol":"TCP"}]} |
| MicroRegistration |
string |
No |
Specifies the Nacos registry. Valid values:
|
"0" |
| MicroRegistrationConfig |
string |
No |
The registry configuration. |
{\"instanceId\":\"mse-cn-zvp2bh6h70r\",\"namespace\":\"4c0aa74f-57cb-423c-b6af-5d9f2d0e3dbd\"} |
| NasConfigs |
string |
No |
The NAS mount configuration. Valid values:
|
[{"mountPath":"/test1","readOnly":false,"nasId":"nasId1","mountDomain":"nasId1.cn-shenzhen.nas.aliyuncs.com","nasPath":"/test1"},{"nasId":"nasId2","mountDomain":"nasId2.cn-shenzhen.nas.aliyuncs.com","readOnly":false,"nasPath":"/test2","mountPath":"/test2"}] |
| Python |
string |
No |
The Python environment. PYTHON 3.9.15 is supported. |
PYTHON 3.9.15 |
| PythonModules |
string |
No |
The custom installation module dependencies. By default, the dependencies defined in the requirements.txt file in the root folder are installed. If the file is not configured or you need custom packages, specify the dependencies to install. |
Flask==2.0 |
| Dotnet |
string |
No |
The version of the .NET framework:
|
.NET 3.1 |
| EnableEbpf |
string |
No |
Specifies whether to enable application monitoring for non-Java applications based on eBPF technology. Valid values:
|
false |
| SaeVersion |
string |
No |
The SAE version. Valid values:
|
v1 |
| AppSource |
string |
No |
Set this parameter to micro_service to create a microservice application. |
micro_service |
| BaseAppId |
string |
No |
The base application ID. |
ee99cce6-1c8e-4bfa-96c3-3e2fa9de8a41 |
| ServiceTags |
string |
No |
The canary release tags configured for the application. |
{\"alicloud.service.tag\":\"g1\"} |
| EnableNewArms |
boolean |
No |
Specifies whether to enable the new ARMS feature:
|
false |
| EnableCpuBurst |
boolean |
No |
Specifies whether to enable the CPU Burst feature:
|
true |
| OidcRoleName |
string |
No |
Specifies the RAM role for identity authentication. Note
Create an OIDC identity provider and an identity provider role in the same region in advance. For more information, see CreateOIDCProvider and CreateSAMLProvider. |
sae-test |
| SidecarContainersConfig |
array |
No |
The sidecar container configuration. |
|
| SidecarContainerConfig |
No |
The sidecar container configuration. |
||
| SecretMountDesc |
string |
No |
The Secret mount description. Use a secret created on the namespace secrets page to inject sensitive information into the container. Parameter description:
Note
You can mount all keys by passing the
|
[{“secretId":10,”key":"test","mountPath":"/tmp"}] |
| EnableSidecarResourceIsolated |
boolean |
No |
Specifies whether to enable sidecar resource isolation:
|
true |
| CustomImageNetworkType |
string |
No |
The custom image type. Set this parameter to an empty string if the image is not a custom image:
|
internet |
| ResourceType |
string |
No |
The resource type. Valid values: NULL (default), default, and haiguang (Hygon server). |
NULL |
| NewSaeVersion |
string |
No |
The application version:
|
pro |
| MicroserviceEngineConfig |
string |
No |
Configures the microservice governance feature.
|
{"enable": true,"mseLosslessRule": {"delayTime": 0,"enable": false,"notice": false,"warmupTime": 120}} |
| DiskSize |
integer |
No |
The disk storage size, in GB. |
50 |
| InitContainersConfig |
array |
No |
The init container configuration. |
|
| InitContainerConfig |
No |
The init container configuration. |
||
| GpuConfig |
string |
No |
||
| StartupProbe |
string |
No |
Enables the application startup probe.
Note
|
{"exec":{"command":["sh","-c","cat /home/admin/start.sh"]},"initialDelaySeconds":30,"periodSeconds":30,"timeoutSeconds":2} |
| IsStateful |
boolean |
No |
Specifies whether the application is stateful. |
|
| EnablePrometheus |
boolean |
No |
Specifies whether to enable Prometheus custom metric collection. |
false |
| HeadlessPvtzDiscoverySvc |
string |
No |
The K8s Headless Service-based service registration and discovery.
|
{\"serviceName\":\"leaf-test-headless\",\"namespaceId\":\"cn-zhangjiakou:prod\"} |
| Html |
string |
No |
The Nginx version.
|
nginx 1.28 |
| EmptyDirDesc |
string |
No |
The shared ephemeral storage configuration. |
[{\"name\":\"workdir\",\"mountPath\":\"/usr/local/tomcat/webapps\"}] |
| AgentVersion |
string |
No |
Specifies whether to reuse the namespace agent version configuration. |
4.4.2 |
| EnableNamespaceAgentVersion |
boolean |
No |
The AliyunAgent version. |
true |
| EnableNamespaceSlsConfig |
boolean |
No |
Specifies whether to reuse the namespace SLS log configuration. |
true |
| SlsLogEnvTags |
string |
No |
sls log tags |
|
| LokiConfigs |
string |
No |
||
| Labels |
object |
No |
||
|
string |
No |
Response elements
|
Element |
Type |
Description |
Example |
|
object |
The information about the created application. |
||
| RequestId |
string |
The request ID. |
91F93257-7A4A-4BD3-9A7E-2F6EAE6D**** |
| Message |
string |
The additional information. Valid values:
|
success |
| TraceId |
string |
The trace ID, which is used to query the details of a request. |
0a98a02315955564772843261e**** |
| Data |
object |
The returned result. |
|
| ChangeOrderId |
string |
The returned change order ID, which is used to query the task execution status. |
01db03d3-3ee9-48b3-b3d0-dfce2d88**** |
| AppId |
string |
The ID of the application that is created. |
017f39b8-dfa4-4e16-a84b-1dcee4b1**** |
| ErrorCode |
string |
The error code. Valid values:
|
空 |
| Code |
string |
The API status or POP error code. Valid values:
|
200 |
| Success |
boolean |
Indicates whether the application is created. Valid values:
|
true |
Examples
Success response
JSON format
{
"RequestId": "91F93257-7A4A-4BD3-9A7E-2F6EAE6D****",
"Message": "success",
"TraceId": "0a98a02315955564772843261e****",
"Data": {
"ChangeOrderId": "01db03d3-3ee9-48b3-b3d0-dfce2d88****",
"AppId": "017f39b8-dfa4-4e16-a84b-1dcee4b1****"
},
"ErrorCode": "空",
"Code": "200",
"Success": true
}
Error codes
|
HTTP status code |
Error code |
Error message |
Description |
|---|---|---|---|
| 400 | Application.MissingJdk | Your application must at least contain a JDK component. | |
| 400 | InvalidPackageType.NotFound | The package type must be War, FatJar, or Image. | |
| 400 | InvalidParameter.NotEmpty | You must specify the parameter %s. | |
| 400 | InvalidParameter.Obviously | The specified parameter is invalid {%s}. | |
| 400 | JarApplication.MissingJdk | A FatJar application must contain 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. | |
| 400 | PandoraApplication.OnlyJdk | A Pandora application only requires JDK component. | |
| 400 | InvalidParameter.WithMessage | The parameter is invalid {%s}: %s | |
| 400 | InvalidComponent.NotFound | The current component (such as JDK, Tomcat, or EDASWebContainer) does not exist. | |
| 400 | InvalidHostnameIp.Invalid | The hostname and/or IP is invalid: Hostname [%s], IP [%s]. | |
| 400 | InvalidInstanceSpecification.Unsupported | The instance specification is not supported: CPU [%s], memory [%s]. | |
| 400 | InvalidServerlessRegion.Unsupported | The current region is not supported: %s | |
| 400 | WarApplication.MissingJdkWebcontainer | A War application must contain JDK and Tomcat. | |
| 400 | InvalidNamespace.WithUppercase | This namespace does not support creating SAE apps because it contains uppercase letters. | |
| 400 | LogService.ConfigQuotaExceed | The 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. |
| 400 | LogService.InternalError | An 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. |
| 400 | LogService.LogDirInvalid | The log collection path is invalid. | The log collection path is invalid. |
| 400 | LogService.NotAvailable | Log Service is unavailable. Please activate Log Service first. | The log service is not available. Please open the log service first. |
| 400 | LogService.ProjectNumQuotaExceed | The 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. |
| 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. | You can create %s instances for each application. please join the DingTalk group 32874633 for technical support. |
| 400 | NoComputeResourceQuota.User.Exceed | Your 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. |
| 400 | System.Upgrading | The system is being upgraded. Please try again later. | |
| 400 | VolumnPath.Conflict | Conflict between log collection directory and persistent storage directory. | Conflict between log collection directory and persistent storage directory. |
| 400 | MountConflict.ConfigMap | Conflict detected for ConfigMap path %s. | |
| 400 | NotFound.ConfigMap | The ConfigMap object (ID: %s) does not exist. | |
| 400 | NotFound.ConfigMapKey | The key %s of ConfigMap object (ID: %s) does not exist. | |
| 400 | Sls.Config.Mixed.Multi.Project | The specified Config contains multiple projects. | |
| 400 | Sls.Config.User.Defined.Missing.Logstore.Info | The specified Config is invalid. Both Project and Logstore must be specified. | |
| 400 | Sls.Config.User.Defined.Missing.Project.Info | The specified Config is invalid. Both Project and Logstore must be specified. | |
| 400 | Sls.Logstore.Name.Invalid | The specified name of Logstore is invalid. The Logstore name must not contain the prefix "sae-". | |
| 400 | Sls.Logstore.User.Defined.Not.Exist | The user defined Logstore does not exist. | |
| 400 | Sls.Project.Name.Invalid | The specified project name is invalid. The project name must not contain the prefix "sae-". | |
| 400 | Sls.Project.User.Defined.Not.Exist | The user defined project does not exist. | |
| 400 | InvalidImageUrl.AcrInstanceId.Domain.NotMatch | The specified domain of ImageUrl does not match AcrInstanceId domains. | |
| 400 | PhpApplication.MissingPhpRuntime | A PHP application must contain PHP Runtime. | |
| 400 | InvalidParameter.FileName | The application deployment package name is invalid. This name can contain only alphanumeric characters, hyphens (-), and underscores (_). For deploying java package, you can upload JAR files only if the selected deployment version supports JAR file. Otherwise, upload WAR files only. For deploying php package, you can upload ZIP files only if the selected deployment version supports ZIP file. | |
| 400 | Sls.Logtail.Name.Invalid | The specified name of Logtail is invalid. The Logtail name must not contain the prefix sae-. | |
| 400 | vswitch.not.exist | The specified vSwitch does not exist. | The specified vSwitch does not exist. Please change the vSwitch. |
| 400 | InvalidImageUrl.MissingAcrInstanceId | The specified domain of ImageUrl is from ACREE, but you are not specified AcrInstanceId. | |
| 400 | EnvFromSecretIdConflict.AlreadyExist | The specified SecretId [%s] already exist in the specified Envs. | |
| 400 | MountConflict.Secret | Conflict detected for Secret path %s. | Secret mount path% s has conflict. |
| 404 | Associate.Eip.Not.Enough | No sufficient EIPs are available. | |
| 404 | InvalidNamespaceId.NotFound | The specified NamespaceId does not exist. | |
| 404 | InvalidVpcId.NotFound | The specified VpcId does not exist. | |
| 404 | InvalidAcrInstanceId.NotFound | The specified AcrInstanceId does not exist. |
See Error Codes for a complete list.
Release notes
See Release Notes for a complete list.