调用InsertApplication接口在ECS集群中创建应用。

说明 如需要创建K8s集群应用,则需要使用EDAS提供的InsertK8sApplication接口。

调试

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

请求头

该接口使用公共请求头,无特殊请求头。请参见公共请求参数文档。

请求语法

POST /pop/v5/changeorder/co_create_app HTTPS|HTTP

请求参数

名称 类型 位置 是否必选 示例值 描述
ApplicationName String Query hello-edas-test-1

应用名称(仅允许使用数字、英文字母、短划线(-)、下划线(_) ,最长36个字符)。

ClusterId String Query 13136119-f384-4f50-b76e-xxxxxxxxxxx

向指定集群ID的ECS集群创建应用,不指定为默认集群(推荐指定)。

BuildPackId Integer Query 59

EDAS-Container构建包号(可通过容器版本列表接口ListBuildPack查询获取或者参见 “容器版本” 表格中的 “构建包序号” 列获取),当创建HSF应用时,该参数必须指定。

Description String Query create by edas pop api

应用描述信息。

ReservedPortStr String Query 8090

(废弃参数)应用预留端口号。

EcuInfo String Query 07bd417a-b863-477d-****-************

需要扩容机器ecu_id(导入EDAS的ECS实例在EDAS中的唯一身份),多个用英文逗号(,)分开(其中ecu_id可通过查询ListScaleOutEcu接口获取)。

Cpu Integer Query 2

(废弃参数)Swarm集群应用容器CPU核数。

Mem Integer Query 2048

(废弃参数)Swarm集群应用容器Memory大小。

HealthCheckURL String Query http://127.0.0.1:8080/_ehc.html

应用健康检查URL。

LogicalRegionId String Query cn-beijing:prod

命名空间ID,您可在EDAS控制台左侧菜单栏选择应用管理 > 命名空间,找到目标命名空间对应的命名空间ID,也可通过ListUserDefineRegion接口获取到命名空间ID。

说明
  • 如果指定的集群不在默认命名空间下,则需要指定该参数,否则会遇到 "application regionId is different with cluster regionId!" 的错误提示。
  • 如果在默认命名空间下,则不需要指定。该参数需要与指定的集群ID所在的命名空间保持一致。
Jdk String Query 8

(废弃参数) 用来指定应用使用的JDK版本。

WebContainer String Query 4

(废弃参数) 用于指定Apache Tomcat版本。

PackageType String Query war

应用包格式,可设置为war或者jar。

ComponentIds String Query 7

应用组件ID(可通过查询组件列表接口ListComponents接口获取到),当创建的应用运行环境使用Apache Tomcat(war包格式的Dubbo应用需要)或者标准Java应用(Jar包格式的Spring Boot/Spring Cloud应用需要)运行环境时需要指定。常用的应用组件ID及含义:

  • 4:Apache Tomcat 7.0.91
  • 7:Apache Tomcat 8.5.42
  • 5:表示OpenJDK 1.8.x
  • 6:表示 OpenJDK 1.7.x
说明 该参数需要更新Java或者Python SDK版本到2.57.3或以上版本才可以设置,未使用EDAS提供的SDK的(例如在使用aliyun-python-sdk-core、aliyun-java-sdk-core、aliyun cli等)用户可直接设置该参数。
Hooks String Query [{"ignoreFail":false,"name":"postprepareInstanceEnvironmentOnScaleOut","script":"ls"}]

挂载脚本配置,为一段JSON格式文本,如:

[{"ignoreFail":false,"name":"postprepareInstanceEnvironmentOnScaleOut","script":"ls"},{"ignoreFail":true,"name":"postdeleteInstanceDataOnScaleIn","script":""},{"ignoreFail":true,"name":"prestartInstance","script":""},{"ignoreFail":true,"name":"poststartInstance","script":""},{"ignoreFail":true,"name":"prestopInstance","script":""},{"ignoreFail":true,"name":"poststopInstance","script":""}]
JvmOptions String Query -Dproperty=value

自定义参数。

MinHeapSize Integer Query 500

初始化堆内存大小,单位M。

MaxPermSize Integer Query 200

持久代内存大小,单位M。

MaxHeapSize Integer Query 1000

最大堆内存大小,单位M。

返回数据

名称 类型 示例值 描述
ApplicationInfo Struct

应用创建成功后返回的应用对象。

AppId String 6c733bcd-6efb-47a1-8226-cf722c******

应用ID,EDAS应用的唯一标识。

AppName String hello-edas-test-1

应用名称。

ChangeOrderId String d0cf569e-dce3-4efb-****-08b70021****

变更流程ID。

Dockerize Boolean false

是否为 Docker 应用

Owner String 249763358688********

该应用拥有者,是应用创建时使用的 AK 对应的用户

Port Integer 8080

创建成功的应用默认端口号 8080,如需修改,请使用 UpdateContainerConfiguration 接口修改

RegionName String cn-hangzhou

地域名称,无效返回值参数值

UserId String tdy218@1362469756xxxxxx

应用拥有者的 USER_ID

Code Integer 200

状态码。

Message String The application name test-hsy-C5039-paas-6 had been created successfully.

返回信息。

RequestId String 4264F69C-686C-4107-B493-0599C8xxxxxx

请求ID。

示例

请求示例

POST /pop/v5/changeorder/co_create_app HTTP/1.1
公共请求头
{
"ApplicationName": "hello-edas-test-1"
}

正常返回示例

XML 格式

<RequestId>4264F69C-686C-4107-B493-0599C8xxxxxx</RequestId>
<Message>The application name test-hsy-C5039-paas-6 had been created successfully.</Message>
<ApplicationInfo>
    <Dockerize>false</Dockerize>
    <Owner>249763358688********</Owner>
    <AppId>6c733bcd-6efb-47a1-8226-cf722c******</AppId>
    <RegionName>cn-hangzhou</RegionName>
    <UserId>tdy218@1362469756xxxxxx</UserId>
    <Port>8080</Port>
    <ChangeOrderId>d0cf569e-dce3-4efb-****-08b70021****</ChangeOrderId>
    <AppName>hello-edas-test-1</AppName>
</ApplicationInfo>
<Code>200</Code>

JSON 格式

{
    "RequestId": "4264F69C-686C-4107-B493-0599C8xxxxxx",
    "Message": "The application name test-hsy-C5039-paas-6 had been created successfully.",
    "ApplicationInfo": {
        "Dockerize": false,
        "Owner": "249763358688********",
        "AppId": "6c733bcd-6efb-47a1-8226-cf722c******",
        "RegionName": "cn-hangzhou",
        "UserId": "tdy218@1362469756xxxxxx",
        "Port": 8080,
        "ChangeOrderId": "d0cf569e-dce3-4efb-****-08b70021****",
        "AppName": "hello-edas-test-1"
    },
    "Code": 200
}

错误码

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

常见应用的主要参数说明

1. 使用EDAS Java SDK 创建 Apache Tomcat 作为应用运行环境的原生 Dubbo、 Java Web 等类型应用主要参数:


    InsertApplicationRequest request = new InsertApplicationRequest();
    request.setApplicationName("hello-edas-test-1"); //应用名称
    request.setPackageType("war"); // 应用包类型,也可以不指定
    request.setComponentIds("7");  // 7 或者 4,7 表示 Apache Tomcat 8.5.42、4 表示 Apache Tomcat 7.0.91
    request.setLogicalRegionId("cn-hangzhou:prod");  // 命名空间ID,注意不是命名空间的名称,当指定的集群不在默认命名空间下时,该参数必填
    request.setClusterId("ebc364ca-1875-4266-ae1f-ad0e7c179417"); // 在指定 Cluster ID 的 ECS 集群下创建应用
    

2. 使用EDAS Java SDK 创建标准 Java 应用运行时环境的原生 Spring Boot/Spring Cloud 等 Fatjar 类型应用主要参数:


    InsertApplicationRequest request = new InsertApplicationRequest();
    request.setApplicationName("hello-edas-test-2"); //应用名称
    request.setPackageType("jar"); // 应用包类型,也可以不指定
    request.setComponentIds("5");  // 5 或者 6,5 表示 OpenJDK 1.8.0、6 表示 OpenJDK 1.8.0,也可以不指定该参数,默认将使用 OpenJDK 1.8.0
    request.setLogicalRegionId("cn-hangzhou:prod");  // 命名空间ID,注意不是命名空间的名称,当指定的集群不在默认命名空间下时,该参数必填
   request.setClusterId("ebc364ca-1875-4266-ae1f-ad0e7c179417"); // 在指定 Cluster ID 的 ECS 集群下创建应用
    

3. 使用EDAS Java SDK 创建 EDAS-Container 作为应用运行时环境的 HSF 应用主要参数:


    InsertApplicationRequest request = new InsertApplicationRequest();
    request.setBuildPackId(59); // EDAS-Container 构建包版本号,59 表示使用 edas-container 3.5.8
    request.setApplicationName("hello-edas-test-3"); //应用名称
    request.setPackageType("war"); // 应用包类型,war 或者 jar ,也可以不填写
    request.setLogicalRegionId("cn-hangzhou:prod");  // 命名空间ID,注意不是命名空间的名称,当指定的集群不在默认命名空间下时,该参数必填
    request.setClusterId("ebc364ca-1875-4266-ae1f-ad0e7c179417"); // 在指定 Cluster ID 的 ECS 集群下创建应用