弹性伸缩配置管理
引导式阅读
Java
弹性伸缩配置管理
作者
C***
上架时间
2021-07-02 07:28:05

版本说明

本示例基于华为云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个伸缩配置。

创建所需部分参数

名称 类型 描述
disk Array of Disk objects 磁盘组信息,系统盘必选,数据盘可选。
build Bandwidth object IP地址带宽参数。
eip Eip object 配置云服务器自动分配弹性IP时,创建弹性IP的配置参数。
publicIp PublicIp object 配置云服务器的弹性IP信息,弹性IP有两种配置方式。不使用(无该字段);自动分配,需要指定新创建弹性IP的信息。
instaceConfig InstanceConfig object 实例配置信息。

代码展示

// 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、可以根据伸缩配置名称,镜像ID,起始行号,记录条数进行条件过滤查询。
  • 2、若不加过滤条件默认最多查询租户下20条伸缩配置信息。
  • 3、更多信息请参考API Explorer

删除弹性伸缩配置

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