在容器服务K8s集群或Serverless K8s集群中创建应用。
调试
您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

授权信息
操作 |
访问级别 |
资源类型 |
条件关键字 |
关联操作 |
edas:CreateApplication |
create |
*全部资源
|
无 | 无 |
请求语法
POST /pop/v5/k8s/acs/create_k8s_app HTTP/1.1
请求参数
名称 |
类型 |
必填 |
描述 |
示例值 |
IntranetTargetPort |
integer |
否 |
内网 SLB 后端端口,也是应用的服务端口,范围为 1~65535。 |
80 |
IntranetSlbPort |
integer |
否 |
内网 SLB 前端端口,范围为 1~65535。 |
80 |
ImageUrl |
string |
否 |
镜像地址,当设置 |
registry.cn-beijing.aliyuncs.com/****_test/****-cons****:1.0 |
ApplicationDescription |
string |
否 |
应用描述信息。 |
生产环境应用 |
RepoId |
string |
否 |
镜像的仓库 ID。 |
ced******** |
Replicas |
integer |
否 |
应用实例数。 |
4 |
LimitCpu |
integer |
否 |
应用运行过程中,应用实例的 CPU 限额,单位:核数。如果 LimitmCpu 不为空,则忽略该参数。 |
4 |
LimitMem |
integer |
否 |
应用运行过程中,应用实例的内存限额,单位:MB。LimitMem 取值要不小于 RequestsMem。 |
2 |
RequestsCpu |
integer |
否 |
应用创建时,应用实例的 CPU 限额,单位:核数。设置为 0 时表示不限制。如果 RequestsmCpu,则使用 RequestsmCpu,忽略该参数。 |
0 |
RequestsMem |
integer |
否 |
应用创建时,应用实例的内存限额,单位:MB。设置为 0 时表示不限制。RequestsMem 的取值不能大于 LimitMem 的取值。 |
0 |
Command |
string |
否 |
应用启动命令。如果设置该参数,镜像在启动时,会替代镜像中的原有的启动命令。 |
ls |
CommandArgs |
string |
否 |
与命令组合使用,命令的参数是 JsonArray 字符串,格式如: |
[{"argument":"-lh"}] |
AppName |
string |
是 |
应用名称。必须以字母开头,支持数字、字母和短划线(-),最多支持 36 个字符。 |
doc-test |
IntranetSlbProtocol |
string |
否 |
私网 SLB 协议,支持 TCP、HTTP 和 HTTPS 协议。 |
TCP |
IntranetSlbId |
string |
否 |
私网 SLB ID,不配置时,EDAS 会自动为用户新购 SLB。 |
ae93******** |
ClusterId |
string |
是 |
集群 ID,可调用 ListCluster 接口获取,详情请参见 ListCluster 。 |
c9cd**** |
InternetSlbId |
string |
否 |
公网 SLB ID,不配置时,EDAS 会自动为用户新购 SLB。 |
a3d4******** |
InternetSlbProtocol |
string |
否 |
公网 SLB 协议,支持 TCP、HTTP 和 HTTPS 协议。 |
TCP |
InternetSlbPort |
integer |
否 |
公网 SLB 前端端口,范围为 1~65535。 |
80 |
InternetTargetPort |
integer |
否 |
私网 SLB 后端端口,也是应用的服务端口,范围为 1~65535。 |
8080 |
Envs |
string |
否 |
部署环境变量,格式需要符合 JSON 对象数组。支持三种类型的环境变量,分别是普通环境变量,K8s ConfigMap 环境变量,K8s Secret 环境变量。普通环境变量格式如下所示:
ConfigMap 环境变量配置可以将指定的 ConfigMap 中对应的 key 的值注入到容器的环境变量中,配置的格式如下所示:
Secret 环境变量配置可以将指定的 Secret 中对应的 key 的值注入到容器的环境变量中,配置的格式如下所示:
说明
如果要取消该配置,需设置一个空 JSON 数组“[]”来表示不做配置。 |
[{"name":"x1","value":"y1"},{"name":"x2","valueFrom":{"configMapKeyRef":{"name":"my-config","key":"y2"}}},{"name":"x3","valueFrom":{"secretKeyRef":{"name":"my-secret","key":"y3"}}}] |
PreStop |
string |
否 |
停止前执行脚本,示例格式: 如果设置为 |
{\"exec\":{\"command\":[\"ls\",\"/\"]}}" |
PostStart |
string |
否 |
启动后执行脚本,格式如: 如果设置为 |
{\"exec\":{\"command\":[\"ls\",\"/\"]}}" |
Liveness |
string |
否 |
容器存活状态监测 ,格式如 如果设置为 |
{"failureThreshold": 3,"initialDelaySeconds": 5,"successThreshold": 1,"timeoutSeconds": 1,"tcpSocket":{"host":"", "port":8080}} |
Readiness |
string |
否 |
容器业务状态检查,如果检查失败,经过 K8s Service 的流量将不转入到该容器,格式如: 如果设置为 |
{"failureThreshold": 3,"initialDelaySeconds": 5,"successThreshold": 1,"timeoutSeconds": 1,"httpGet": {"path": "/consumer","port": 8080,"scheme": "HTTP","httpHeaders": [{"name": "test","value": "testvalue"}]}} |
NasId |
string |
否 |
挂载的 NAS 的 ID。如果不填,且存在 mountDescs 字段,则默认将自动购买一个 NAS 并挂载到 VPC 内的交换机上。 |
dfs23**** |
MountDescs |
string |
否 |
挂载配置描述,为一个序列化的 JSON。例如: |
[{"nasPath": "/k8s","mountPath": "/mnt"},{"nasPath": "/files","mountPath": "/app/files"}] |
StorageType |
string |
否 |
NAS 存储类型,包括:
目前只支持 Performance 类型。 |
Performance |
LocalVolume |
string |
否 |
宿主机文件挂载到容器内的配置。例如:
|
[{"type":"","nodePath":"/localfiles","mountPath":"/app/files"},{"type":"Directory","nodePath":"/mnt","mountPath":"/app/storage"}] |
Namespace |
string |
否 |
K8s 集群的命名空间,它将决定您的应用部署在哪个 K8s 命名空间。默认为 default。 |
default |
LogicalRegionId |
string |
否 |
EDAS 命名空间对应 ID,非默认命名空间须填写。 |
cn-shenzhen:beta**** |
PackageType |
string |
否 |
应用包类型。可选参数值包含:FatJar、WAR 和 Image。 |
WAR |
PackageUrl |
string |
否 |
部署包地址。通过 FatJar 或 WAR 包部署的应用需要配置部署包地址。 说明
EDAS POP API 的 Java 或者 Python SDK 需要 2.44.0 或以上版本。 |
https://e***.oss-cn-beijing.aliyuncs.com/s***-1.0-SNAPSHOT-spring-boot.jar |
PackageVersion |
string |
否 |
部署包的版本号,WAR 和 FatJar 类型必填。请自定义它的含义。 说明
EDAS POP API 的 Java 或者 Python SDK 需要 2.44.0 或以上版本。 |
20200720 |
JDK |
string |
否 |
部署的包依赖的 JDK 版本。可选的参数值为 Open JDK 7、Open JDK 8 或 Custom OpenJDK。镜像部署方式不支持此参数。当使用 Custom OpenJDK 时,还需配置 UserBaseImageUrl 字段。 |
Open JDK 8 |
WebContainer |
string |
否 |
部署包依赖的 Tomcat 版本。适用于通过 WAR 包部署的 Spring Cloud 和 Dubbo 应用,镜像不支持此参数。 |
apache-tomcat-7.0.91 |
EdasContainerVersion |
string |
否 |
部署的包依赖的 说明
使用镜像部署时不支持此参数。 |
3.5.9 |
UriEncoding |
string |
否 |
URI 编码方式,支持 ISO-8859-1、GBK、GB2312 和 UTF-8。 说明
应用配置不设置该参数,使用 Tomcat 默认值。 |
GBK |
UseBodyEncoding |
boolean |
否 |
useBodyEncodingForURI 是否启用。 说明
应用配置不设置该参数,使用默认值 false。 |
false |
RequestsmCpu |
integer |
否 |
应用创建时,应用实例的 CPU 限额,单位:毫核数。 |
500 |
LimitmCpu |
integer |
否 |
应用运行过程中,应用实例的 CPU 限额。 单位:毫核数,设置为 0 表示不限制。 |
1000 |
RuntimeClassName |
string |
否 |
容器运行时类型,仅适用于使用安全沙箱容器的集群。 |
runc |
DeployAcrossZones |
string |
否 |
是否将应用实例分布到多可用区。 |
true |
Timeout |
integer |
否 |
变更流程超时时间,单位:秒。取值范围为 1~1800 秒,不填默认为 1800 秒。 |
60 |
EnableAhas |
boolean |
否 |
是否接入 AHAS:
|
true |
WebContainerConfig |
string |
否 |
Tomcat 容器配置,设置为""或"{}"表示删除配置:
|
{"useDefaultConfig":false,"contextInputType":"custom","contextPath":"hello","httpPort":8088,"maxThreads":400,"uriEncoding":"UTF-8","useBodyEncoding":true,"useAdvancedServerXml":false} |
JavaStartUpConfig |
string |
否 |
Java 启动参数用于在 Java 应用启动时配置启动参数。可配置:内存配置、应用、GC 策略、工具、服务注册和发现配置和自定义等配置,正确配置这些参数有助于降低垃圾回收(GC)开销,从而缩短服务器响应时间并提高吞吐量。参数格式为 JSON 字符串:original 为配置值,startup 为启动参数,系统将自动拼接所有的 startup 作为应用程序的 Java 启动参数。设置为
|
{"InitialHeapSize":{"original":512,"startup":"-Xms512m"},"MaxHeapSize":{"original":1024,"startup":"-Xmx1024m"},"CustomParams":{"original":"-Dcustom.property.sample=false","startup":"-Dcustom.property.sample=false"}} |
SlsConfigs |
string |
否 |
Logstore 配置,设置为
|
[{"logstore":"thisisanotherfilelog","type":"file","logDir":"/var/log/*"},{"logstore":"","type":"stdout","logDir":"stdout.log"},{"logstore":"thisisafilelog","type":"file","logDir":"/tmp/log/*"}] |
IsMultilingualApp |
boolean |
否 |
是否为多语言应用。 |
true |
DeployAcrossNodes |
string |
否 |
是否将应用实例分布到多个节点。 |
true |
PvcMountDescs |
string |
否 |
配置 K8s PVC(PersistentVolumeClaim)挂载,支持将 K8s PVC 卷挂载到指定的容器目录。PvcMountDescs 的配置参数说明如下:
|
[{"pvcName":"nas-pvc-1","mountPaths":[{"mountPath":"/usr/share/nginx/data"},{"mountPath":"/usr/share/nginx/html","readOnly":true}]}] |
ConfigMountDescs |
string |
否 |
配置 K8s ConfigMap 和 Secret 挂载,支持将 ConfigMap 和 Secret 挂载到指定的容器目录。ConfigMountDescs 的配置参数说明如下:
|
[{"name":"nginx-config","type":"ConfigMap","mountPath":"/etc/nginx"},{"name":"tls-secret","type":"secret","mountPath":"/etc/ssh"}] |
CsClusterId |
string |
否 |
只有在用户使用一个从未导入的集群来创建应用时,才需要指定 csClusterId。 |
abcdefg |
EnableAsm |
boolean |
否 |
只有在用户使用一个从未导入的集群来创建应用,同时开启 ASM 时,才需要设置这个值为 true。 |
false |
EnvFroms |
string |
否 |
配置 K8s EnvFrom 类型的环境变量,将指定的 ConfigMap 或 Secret 挂载到指定目录,每个 key 对应目录下的一个文件,文件的内容为该 key 对应的 value。 EnvFroms 的配置参数说明如下:
|
[{"name":"appname","valueFrom":{"configMapKeyRef":{"name":"appconf","key":"name"}}}] |
EmptyDirs |
string |
否 |
配置 K8s emptyDir 挂载,支持将 emptyDir 卷挂载到指定的容器目录。EmptyDirs 的配置参数说明如下:
|
[{"mountPath":"/app-log","subPathExpr":"$(POD_IP)"},{"readOnly":true,"mountPath":"/etc/nginx"}] |
BuildPackId |
string |
否 |
配置 |
-1 |
CustomAffinity |
string |
否 |
自定义关联。 |
demo |
CustomTolerations |
string |
否 |
自定义公差。 |
demo |
ResourceGroupId |
string |
否 |
资源组 ID。 |
461 |
Annotations |
string |
否 |
应用 Pod 注解。 |
{"annotation-name-1":"annotation-value-1","annotation-name-2":"annotation-value-2"} |
Labels |
string |
否 |
应用 Pod 标签。 |
{"label-name-1":"label-value-1","label-name-2":"label-value-2"} |
EnableEmptyPushReject |
boolean |
否 |
是否开启推空保护:
|
false |
EnableLosslessRule |
boolean |
否 |
是否启用无损上线规则:
|
true |
LosslessRuleWarmupTime |
integer |
否 |
服务预热时长,单位:秒。取值范围为 0~86400 秒。 |
120 |
LosslessRuleDelayTime |
integer |
否 |
服务延迟注册时长,单位:秒。取值范围为 0~86400 秒。 |
0 |
LosslessRuleFuncType |
integer |
否 |
服务预热曲线。取值范围 0~20。默认为 2(适合于一般预热场景),表示在预热周期内服务提供者的流量接收曲线形状呈 2 次曲线形状。 |
2 |
LosslessRuleAligned |
boolean |
否 |
是否启用无损滚动发布模式配置通过就绪检查前完成服务注册:
|
false |
LosslessRuleRelated |
boolean |
否 |
是否启用无损滚动发布模式配置通过就绪检查前完成服务预热:
|
false |
ServiceConfigs |
string |
否 |
K8s 服务 Service 配置。 |
[{"name": "test-svc-create","serviceType":"ClusterIP","portMappings":[{"servicePort": {"targetPort":8080,"port":80,"protocol":"TCP"}}]}] |
AppTemplateName |
string |
否 |
创建应用使用的应用模版名称,若创建应用时指定应用模版,则将优先使用应用模版和 AppConfig 参数确定应用配置,忽略其他配置。 |
app-template001 |
AppConfig |
string |
否 |
使用应用模版时的应用配置,JSON 格式字符串。 |
{} |
LimitEphemeralStorage |
integer |
否 |
临时存储资源需求上限,单位:GB。设置 0 表示不限制。 |
4 |
RequestsEphemeralStorage |
integer |
否 |
临时存储最小资源需求,单位:GB。设置 0 表示不限制。 |
2 |
SecretName |
string |
否 |
用户指定的镜像拉取凭证名,需要自行创建相关 Secret 配置。 |
edas-app-01-image-secret |
ContainerRegistryId |
string |
否 |
构建镜像仓库使用的仓库 ID,留空表示使用 EDAS 提供的默认仓库。当前只支持 EDAS 提供的默认仓库。 |
留空 |
WorkloadType |
string |
否 |
创建应用时 Workload 的类型,目前仅支持 Deployment 类型。 |
Deployment |
Sidecars |
string |
否 |
为应用 Pod 设置 Sidecar 容器。支持设置容器配置的格式 YAML,其值为 Sidecar 容器 YAML 配置 base64 编码后的值。 |
[{"yamlEncoded":"Y29tbWFuZDoKICAtIHRhaWwKICAtICctZicKICAtIC9kZXYvbnVsbAppbWFnZTogJ2J1c3lib3g6bGF0ZXN0JwpuYW1lOiBidXN5Ym94Cg=="}] |
InitContainers |
string |
否 |
为应用 Pod 设置初始化容器。支持设置容器配置的格式 YAML,其值为 Init 容器 YAML 配置 base64 编码后的值。 |
[ { "yamlEncoded": "Y29tbWFuZDoKICAtIHNsZWVwCiAgLSAnNjAnCmltYWdlOiAnYnVzeWJveDpsYXRlc3QnCm5hbWU6IGluaXQtYnVzeWJveAo=" } ] |
UserBaseImageUrl |
string |
否 |
使用自定义 JDK 运行时,需要配置基础镜像地址。该地址需要可公开访问,EDAS 服务端会拉取该镜像,用于构建应用镜像。 |
openjdk:8u302 |
TerminateGracePeriod |
integer |
否 |
设置应用优雅停止超时时间。单位:秒。 |
120 |
ImagePlatforms |
string |
否 |
镜像目标平台架构,当使用 war、jar 部署时有效,输入样例:
|
linux/arm64,linux/amd64 |
Startup |
string |
否 |
启动探针可以用于对慢启动容器进行存活性检测,避免它们在启动运行之前就被杀掉,格式如:{"failureThreshold": 3,"initialDelaySeconds": 5,"successThreshold": 1,"timeoutSeconds": 1,"httpGet": {"path": "/consumer","port": 8080,"scheme": "HTTP","httpHeaders": [{"name": "test","value": "testvalue"}]}}。 如果设置为""或者{}表示删除,不设置表示忽略。 |
{"failureThreshold": 3,"initialDelaySeconds": 5,"successThreshold": 1,"timeoutSeconds": 1,"tcpSocket":{"host":"", "port":8080}} |
FeatureConfig |
string |
否 |
自定义监控与治理方案配置 |
{"features":[{"name":"base.combination.arms","enable":true},{"name":"base.combination.mse","enable":true}]} |
CustomAgentVersion |
string |
否 |
支持指定 Agent 版本 |
2.8.3、3.2.10、 4.3.1 |
返回参数
名称 |
类型 |
描述 |
示例值 |
object |
接口响应。 |
||
Code |
integer |
接口状态或 POP 错误码。 |
200 |
Message |
string |
附加信息。 |
success |
RequestId |
string |
请求 ID。 |
b197-40ab-9155-**** |
ApplicationInfo |
object |
应用详情。 |
|
ChangeOrderId |
string |
变更流程 ID,可调用 GetChangeOrderInfo 接口获取,详情请参见 GetChangeOrderInfo 。 |
cd65b247-****-475b-ad4b-7039040d625c |
AppName |
string |
应用名称。 |
test |
Dockerize |
boolean |
是否为 Docker 应用。
|
true |
Owner |
string |
负责人。 |
zp |
EdasId |
string |
用户账号 ID。 |
1172****6608**** |
ClusterType |
integer |
应用集群环境类型如下:
|
5 |
AppId |
string |
应用 ID,可通过调用 ListApplication 接口获取,详情请参见 ListApplication 。 |
e83acea6-****-47e1-96ae-c0e95377**** |
UserId |
string |
用户主账号。 |
edas_test****@aliyun****.com |
RegionId |
string |
地域 ID。 |
cn-beijing |
示例
正常返回示例
JSON
格式
{
"Code": 200,
"Message": "success",
"RequestId": "b197-40ab-9155-****",
"ApplicationInfo": {
"ChangeOrderId": "cd65b247-****-475b-ad4b-7039040d625c",
"AppName": "test",
"Dockerize": true,
"Owner": "zp",
"EdasId": "1172****6608****",
"ClusterType": 5,
"AppId": "e83acea6-****-47e1-96ae-c0e95377****",
"UserId": "edas_test****@aliyun****.com",
"RegionId": "cn-beijing"
}
}
错误码
访问错误中心查看更多错误码。
变更历史
更多信息,参考变更详情。