弹性伸缩配置管理
初始化客户端
参数获取可参照准备工作中token认证方式。
Copied!
String user = "replace-with-your-username";
String password = "replace-with-your-password";
String projectId = "replace-with-your-projectId";
String userDomainId = "replace-with-your-domainId";
String authUrl = "https://iam.example.com/v3";
OSClientV3 osclient = OSFactory.builderV3().endpoint(authUrl)
.credentials(user, password, Identifier.byId(userDomainId))
.scopeToProject(Identifier.byId(projectId)).authenticate();
创建弹性伸缩配置
创建弹性伸缩配置。
1、伸缩配置是伸缩组内实例(弹性云服务器)的模板,定义了伸缩组内待添加的实例的规格数据。
2、伸缩配置与伸缩组是解耦的,同一伸缩配置可以被多个伸缩组使用。
3、默认最多可以创建100个伸缩配置。
创建所需部分参数
名称 |
类型 |
描述 |
disk |
Array of Disk objects |
磁盘组信息,系统盘必选,数据盘可选。 |
build |
Bandwidth object |
IP地址带宽参数。 |
eip |
Eip object |
配置云服务器自动分配弹性IP时,创建弹性IP的配置参数。 |
publicIp |
PublicIp object |
配置云服务器的弹性IP信息,弹性IP有两种配置方式。不使用(无该字段);自动分配,需要指定新创建弹性IP的信息。 |
instaceConfig |
InstanceConfig object |
实例配置信息。 |
代码展示
Copied!
public String creatConfig() {
String keyname = "******";
Disk disk = Disk.builder().size(40).volumeType(VolumeType.SATA).diskType(DiskType.SYS).build();
Bandwidth build = Bandwidth.builder().chargingMode(Bandwidth.ChargingMode.TRAFFIC)
.shareType(Bandwidth.ShareType.PER).size("100").build();
Eip eip = Eip.builder().ipType("5_sbgp").bandwidth(build).build();
PublicIp publicIp = PublicIp.builder().eip(eip).build();
InstanceConfig instaceConfig = InstanceConfig.builder().flavorRef("c2.medium").imageRef("******")
.disks(Lists.newArrayList(disk)).keyName(keyname).publicIp(publicIp).userData("MTlz").build();
ASAutoScalingConfigCreate config =
ASAutoScalingConfigCreate.builder().configName("test-config").instanceConfig(instaceConfig).build();
String configId = osclient.autoScaling().configs().create(config);
if (null != configId) {
System.out.println("create scalingConfig success, id = " + configId);
return configId;
} else {
System.out.println("create scalingConfig failed");
return null;
}
}
说明
:创建时所涉及具体参数及其他参数请参考API Explorer。
查询弹性伸缩配置详情
根据伸缩配置ID查询一个弹性伸缩配置的详细信息
Copied!
public void getConfig(String configId) {
ScalingConfig config = osclient.autoScaling().configs().get(configId);
if (null != config) {
System.out.print("get scalingConfig success, id = " + config.toString());
} else {
System.out.println("get scalingConfig failed");
}
}
说明
:更多信息请参考API Explorer。
查询弹性伸缩配置列表
根据输入条件过滤查询弹性伸缩配置。查询结果分页显示。
Copied!
public void listConfigs() {
List< ? extends ScalingConfig> configlist = osclient.autoScaling().configs().list();
if (null != configlist) {
System.out.println("List all scalingConfigs success, size is = " + configlist.size());
} else {
System.out.println("get scalingConfigs failed");
}
}
说明
:
- 1、可以根据伸缩配置名称,镜像ID,起始行号,记录条数进行条件过滤查询。
- 2、若不加过滤条件默认最多查询租户下20条伸缩配置信息。
- 3、更多信息请参考API Explorer。
删除弹性伸缩配置
1、删除一个指定弹性伸缩配置
Copied!
public void deleteConfig(String configId) {
ActionResponse resp = osclient.autoScaling().configs().delete(configId);
if (resp.isSuccess()) {
System.out.println("Delete scalingConfig success");
}
}
说明
:被伸缩组使用的伸缩配置不能被删除。更多信息请参考API Explorer。
2、批量删除指定弹性伸缩配置
Copied!
public void batchDeleteConfig(String configId) {
ArrayList<String> configs = Lists.newArrayList();
configs.add(configId);
resp = osclient.autoScaling().configs().delete(configs);
}
说明
:被伸缩组使用的伸缩配置不能被删除。单次最多删除伸缩配置个数为50。更多信息请参考API Explorer。
版本说明
本示例基于华为云SDK V1.0版本开发,高版本示例正在开发中。
功能介绍
伸缩配置用于定义伸缩组资源扩展时的云服务器的规格。包括云服务器的操作系统镜像、系统盘大小等。可以通过已有的伸缩配置快速创建一个伸缩实例。通过本示例可以了解伸缩配置的相关操作,如创建、删除等。
准备工作
弹性伸缩配置管理
初始化客户端
参数获取可参照准备工作中token认证方式。
String user = "replace-with-your-username"; String password = "replace-with-your-password"; String projectId = "replace-with-your-projectId"; String userDomainId = "replace-with-your-domainId"; String authUrl = "https://iam.example.com/v3"; // endpointUrl OSClientV3 osclient = OSFactory.builderV3().endpoint(authUrl) .credentials(user, password, Identifier.byId(userDomainId)) .scopeToProject(Identifier.byId(projectId)).authenticate();
创建弹性伸缩配置
创建弹性伸缩配置。
1、伸缩配置是伸缩组内实例(弹性云服务器)的模板,定义了伸缩组内待添加的实例的规格数据。
2、伸缩配置与伸缩组是解耦的,同一伸缩配置可以被多个伸缩组使用。
3、默认最多可以创建100个伸缩配置。
创建所需部分参数
代码展示
// Create scalingConfig public String creatConfig() { String keyname = "******"; Disk disk = Disk.builder().size(40).volumeType(VolumeType.SATA).diskType(DiskType.SYS).build(); Bandwidth build = Bandwidth.builder().chargingMode(Bandwidth.ChargingMode.TRAFFIC) .shareType(Bandwidth.ShareType.PER).size("100").build(); Eip eip = Eip.builder().ipType("5_sbgp").bandwidth(build).build(); PublicIp publicIp = PublicIp.builder().eip(eip).build(); InstanceConfig instaceConfig = InstanceConfig.builder().flavorRef("c2.medium").imageRef("******") .disks(Lists.newArrayList(disk)).keyName(keyname).publicIp(publicIp).userData("MTlz").build(); ASAutoScalingConfigCreate config = ASAutoScalingConfigCreate.builder().configName("test-config").instanceConfig(instaceConfig).build(); String configId = osclient.autoScaling().configs().create(config); if (null != configId) { System.out.println("create scalingConfig success, id = " + configId); return configId; } else { System.out.println("create scalingConfig failed"); return null; } }
说明
:创建时所涉及具体参数及其他参数请参考API Explorer。查询弹性伸缩配置详情
根据伸缩配置ID查询一个弹性伸缩配置的详细信息
// Get scalingConfig public void getConfig(String configId) { ScalingConfig config = osclient.autoScaling().configs().get(configId); if (null != config) { System.out.print("get scalingConfig success, id = " + config.toString()); } else { System.out.println("get scalingConfig failed"); } }
说明
:更多信息请参考API Explorer。查询弹性伸缩配置列表
根据输入条件过滤查询弹性伸缩配置。查询结果分页显示。
// List all scalingConfigs public void listConfigs() { List< ? extends ScalingConfig> configlist = osclient.autoScaling().configs().list(); if (null != configlist) { System.out.println("List all scalingConfigs success, size is = " + configlist.size()); } else { System.out.println("get scalingConfigs failed"); } }
说明
:删除弹性伸缩配置
1、删除一个指定弹性伸缩配置
public void deleteConfig(String configId) { // Delete scalingConfig ActionResponse resp = osclient.autoScaling().configs().delete(configId); if (resp.isSuccess()) { System.out.println("Delete scalingConfig success"); } }
说明
:被伸缩组使用的伸缩配置不能被删除。更多信息请参考API Explorer。2、批量删除指定弹性伸缩配置
public void batchDeleteConfig(String configId) { // Batch Delete ScalingConfig ArrayList<String> configs = Lists.newArrayList(); configs.add(configId); resp = osclient.autoScaling().configs().delete(configs); }
说明
:被伸缩组使用的伸缩配置不能被删除。单次最多删除伸缩配置个数为50。更多信息请参考API Explorer。参考
更多信息请参考弹性伸缩 AS。