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

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

调试

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

请求头

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

请求语法

POST /pop/v5/changeorder/co_create_app HTTP/1.1

请求参数

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

应用名称。仅允许使用数字、英文字母、短划线(-)和下划线(_) ,而且必须以英文字母开头,最长36个字符。

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

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

BuildPackId Integer Query 59

EDAS-Container构建包号,当创建HSF应用时,该参数必须指定。有以下两种获取方式:

  • 通过容器版本列表接口ListBuildPack获取,请参见ListBuildPack
  • 在参见容器版本表格中的构建包序号列获取。
Description String Query create by edas pop api

应用描述信息。

ReservedPortStr String Query 8090

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

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

需要扩容的ECS实例的ecu_id(导入EDAS的ECS实例在EDAS中的唯一身份),多个ecu_id用英文逗号(,)分开。ecu_id可通过查询ListScaleOutEcu接口获取,请参见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,请参见ListUserDefineRegion

  • 如果指定的集群不在默认命名空间下,则需要指定该参数,否则会遇到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接口获取,请参见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

<note>该参数需要更新Java或者Python SDK版本到2.57.3或以上版本才可以设置,未使用EDAS提供的SDK的(例如在使用aliyun-python-sdk-core、aliyun-java-sdk-core、aliyun cli等)用户可直接设置该参数。</note>

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。

EnableUrlCheck Boolean Query true

是否启用健康检查URL,取值如下:

  • true:启用
  • false:不启用
EnablePortCheck Boolean Query true

是否启用端口健康检查,取值如下:

  • true:启用
  • false:不启用
HealthCheckUrl String Query http://127.0.0.1:8080/_ehc.html

应用健康检查URL(等价于HealthCheckURL参数)。

返回数据

名称 类型 示例值 描述
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应用,取值如下:

  • true:是
  • false:否
Owner String 249763358688********

该应用拥有者,即应用创建者。

Port Integer 8080

创建成功的应用默认端口号8080。可以使用UpdateContainerConfiguration接口修改,请参见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集群下创建应用。