全部产品
Search
文档中心

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

更新时间:Jan 08, 2024

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

接口说明

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

调试

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

调试

授权信息

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

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

请求语法

POST /pop/v5/changeorder/co_create_app

请求参数

名称类型必填描述示例值
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": false,
    "RegionName": "cn-hangzhou",
    "AppId": "6c733bcd-6efb-47a1-8226-cf722c******",
    "UserId": "tdy218@1362469756xxxxxx",
    "Port": 8080
  }
}

错误码

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

变更历史

变更时间变更内容概要操作
暂无变更历史

常见应用的主要参数说明

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