全部产品
Search
文档中心

企业级分布式应用服务 EDAS:InsertApplication - 创建 ECS 集群的应用

更新时间:Oct 18, 2022

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

接口说明

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

调试

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

调试

授权信息

下表是API对应的授权信息,可以在RAM权限策略语句的Action元素中使用,用来给RAM用户或RAM角色授予调用此API的权限。具体说明如下:

  • 操作:是指具体的权限点。
  • 访问级别:是指每个操作的访问级别,取值为写入(Write)、读取(Read)或列出(List)。
  • 资源类型:是指操作中支持授权的资源类型。具体说明如下:
    • 对于必选的资源类型,用加粗字体表示。
    • 对于不支持资源级授权的操作,用全部资源表示。
  • 条件关键字:是指云产品自身定义的条件关键字。
  • 关联操作:是指成功执行操作所需要的其他权限。操作者必须同时具备关联操作的权限,操作才能成功。
操作访问级别资源类型条件关键字关联操作
edas:CreateApplicationWrite
  • EDAS
    acs:edas:{#regionId}:{#accountId}:namespace/{#NameSpaceId}

请求参数

名称类型必填描述示例值
ClusterIdstring

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

13136119-f384-4f50-b76e-xxxxxxxxxxx
BuildPackIdinteger

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

  • 通过容器版本列表接口ListBuildPack获取,请参见ListBuildPack

  • 在参见容器版本表格中的构建包序号列获取。

59
Descriptionstring

应用描述信息。

create by edas pop api
ApplicationNamestring

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

hello-edas-test-1
ReservedPortStrstring

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

8090
EcuInfostring

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

07bd417a-b863-477d-****-************
Cpuinteger

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

2
Meminteger

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

2048
HealthCheckURLstring

应用健康检查URL。

http://127.0.0.1:8080/_ehc.html
LogicalRegionIdstring

微服务空间ID,您可在EDAS控制台左侧菜单栏选择资源管理 > 微服务空间,找到目标微服务空间对应的微服务空间ID,也可通过ListUserDefineRegion接口获取到微服务空间ID,请参见ListUserDefineRegion

  • 如果指定的集群不在默认微服务空间下,则需要指定该参数,否则会遇到application regionId is different with cluster regionId!的错误提示。
  • 如果在默认微服务空间下,则不需要指定。该参数需要与指定的集群ID所在的微服务空间保持一致。
cn-beijing:prod
Jdkstring

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

8
WebContainerstring

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

4
PackageTypestring

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

war
ComponentIdsstring

应用组件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

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

7
Hooksstring

挂载脚本配置,为一段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":""}]

[{"ignoreFail":false,"name":"postprepareInstanceEnvironmentOnScaleOut","script":"ls"}]
JvmOptionsstring

自定义参数。

-Dproperty=value
MinHeapSizeinteger

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

500
MaxPermSizeinteger

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

200
MaxHeapSizeinteger

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

1000
EnableUrlCheckboolean

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

  • true:启用

  • false:不启用

true
EnablePortCheckboolean

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

  • true:启用

  • false:不启用

true
HealthCheckUrlstring

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

http://127.0.0.1:8080/_ehc.html
ResourceGroupIdstring

资源组ID。

rg-aek24j4s4b*****

返回参数

名称类型描述示例值
object
Codeinteger

状态码。

200
Messagestring

返回信息。

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

请求ID。

4264F69C-686C-4107-B493-0599C8xxxxxx
ApplicationInfoobject

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

ChangeOrderIdstring

变更流程ID。

d0cf569e-dce3-4efb-****-08b70021****
AppNamestring

应用名称。

hello-edas-test-1
Ownerstring

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

249763358688********
Dockerizeboolean

是否为Docker应用,取值如下:

  • true:是

  • false:否

false
RegionNamestring

地域名称。

cn-hangzhou
AppIdstring

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

6c733bcd-6efb-47a1-8226-cf722c******
UserIdstring

应用拥有者的USER_ID。

tdy218@1362469756xxxxxx
Portinteger

创建成功的应用默认端口号8080。可以使用UpdateContainerConfiguration接口修改,请参见UpdateContainerConfiguration

8080

示例

正常返回示例

JSON格式

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

错误码

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

变更历史

变更时间变更内容概要操作
2022-09-14 OpenAPI InsertApplication 已下线
变更项变更内容
2022-09-14 OpenAPI InsertApplication 已下线
变更项变更内容

常见应用的主要参数说明

  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集群下创建应用。