完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
摘要: ESS 伸缩配置定义了用于弹性伸缩的 ECS 实例的配置信息,包含了实例规格、网络、安全组、带宽等配置信息,您可灵活地搭配这些配置信息来为您的伸缩组创建伸缩配置。 本文将详细介绍 ESS 多实例规格的伸缩配置,并给出多实例规格伸缩配置相比单实例规格伸缩配置的优势所在,最后,本文将给出使用 ESS SDK 快速创建多实例规格伸缩配置的最佳实践。 ESS 伸缩配置多实例规格参数原 ESS 弹性伸缩服务限定,一个伸缩组内只能有一个生效的伸缩配置,一个伸缩配置只能配置一种实例规格。由于上述的限制,导致伸缩组内有效的实例规格只有一个,如果当前的实例规格由于库存不足等变得不可用,那么伸缩组将无法创建出 ECS 实例。您需要重新选择当前伸缩组内其它伸缩配置或创建新的伸缩配置来恢复伸缩组,使伸缩组能够正常工作。为了优化上述问题,提高伸缩组内伸缩配置的可用性,ESS 弹性伸缩服务为伸缩配置新增了多实例规格参数(InstanceTypes.N)。您在创建伸缩配置的时候可以使用该参数为您的伸缩配置设置多个实例规格,当某个实例规格由于库存等原因变得不可用时,ESS 弹性伸缩服务会为您自动切换到其它有效的实例规格来创建实例。当您创建的伸缩配置使用了多实例规格参数时,您需要注意以下几点:
本章将介绍如何使用 SDK 创建多实例规格的伸缩配置,这里以 Java 语言和 Python 语言为例进行介绍。 Java导入 ESS Java SDK首先,您需要下载 aliyun-java-sdk-core、aliyun-java-sdk-ess 两个依赖,您可以查看 maven-central 界面,搜索并下载相应的 jar 包,aliyun-java-sdk-ess 对应的 jar 包的版本号需要是 2.1.3 及以上版本才能使用多实例规格参数,aliyun-java-sdk-core 推荐使用最新的版本。 您可以选择使用 maven 来管理您 Java 项目的依赖库,在您的项目对应的 pom.xml 文件中加入下面的依赖项即可: 导入 ESS Java SDK 到您的 Java 工程以后,您就可以创建多实例规格伸缩配置了。使用 Java SDK 创建多实例规格伸缩配置的代码如下: public class EssSdkDemo { public static final String REGION_ID = "cn-hangzhou"; public static final String AK = "xxxxxxxxxxxxxx"; public static final String AKS = "xxxxxxxxxxxxxx"; /** * 排在最前面的实例规格优先级最高,实例规格优先级随着在数组中出现的次序依次递减 */ public static final String[] TYPE_ARRAY = { "instancetype1", "instancetype2" }; public static final List<String> INSTANCE_TYPES = Arrays.asList(TYPE_ARRAY); public static final String SCALING_GROUP_ID = "xxxxxxxxxxxxxx"; //ubuntu_16_0402_64_20G_alibase_20170818.vhd public static final String IMAGE_ID = "xxxxxxxxxxxxxx"; public static final String SECURITY_GROUP_ID = "xxxxxxxxxxxxxx"; public static void main(String[] args) throws Exception { IClientProfile clientProfile = DefaultProfile.getProfile(REGION_ID, AK, AKS); IAcsClient client = new DefaultAcsClient(clientProfile); System.out.println(createScalingConf(client)); } /** * 创建多实例规格伸缩配置 * * @param client * @Return * @throws Exception */ public static String createScalingConf(IAcsClient client) throws Exception { CreateScalingConfigurationRequest request = new CreateScalingConfigurationRequest(); request.setScalingGroupId(SCALING_GROUP_ID); request.setImageId(IMAGE_ID); request.setInstanceTypes(INSTANCE_TYPES); request.setSecurityGroupId(SECURITY_GROUP_ID); CreateScalingConfigurationResponse response = client.getAcsResponse(request); return response.getScalingConfigurationId(); }}注意:AK,SCALING_GROUP_ID,SECURITY_GROUP_ID 等参数需要您根据个人情况进行设置。 Python安装 ESS Python SDK同 Java 语言一样,在使用 ESS Python SDK 前,您需要先下载 aliyun-python-sdk-ess、aliyun-python-sdk-core 两个依赖。本文推荐使用 pip 的方式来安装 Python 依赖包,关于 pip 的安装您可以参数 Installation-Pip。 安装好 pip 以后,您可以使用命令 pip install aliyun-java-sdk-ess==2.1.3 pip install aliyun-java-sdk-core==3.5.0 安装两个所需的依赖。 使用 Python SDK 创建多实例规格伸缩配置导入 ESS Python SDK 依赖库以后,您就可以创建多实例规格伸缩配置了。使用 Python SDK 创建多实例规格伸缩配置的代码如下: #coding=utf-8import jsonimport loggingfrom aliyunsdkcore import clientfrom aliyunsdkess.request.v20140828.CreateScalingConfigurationRequest import CreateScalingConfigurationRequestlogging.basicConfig(level=logging.INFO, format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s', datefmt='%a, %d %b %Y %H:%M:%S')# 请替换自己的ak信息ak = 'ak'aks = 'aks'scaling_group_id = 'xxxxxxxxxxxxxxx'image_id = 'xxxxxxxxxxxxxxx'security_group_id = 'xxxxxxxxxxxxxxx'instance_types = ['instancetype1', 'instancetype2']region_id = 'cn-beijing'clt = client.AcsClient(ak, aks, region_id)def _create_scaling_conf():request = CreateScalingConfigurationRequest()request.set_ScalingGroupId(scaling_group_id)request.set_ImageId(image_id)request.set_SecurityGroupId(security_group_id)request.set_InstanceTypes(instance_types)response = _send_request(request)return response.get('ScalingConfigurationId')def _send_request(request):request.set_accept_format('json')try: response_str = clt.do_action(request) logging.info(response_str) response_detail = json.loads(response_str) return response_detailexcept Exception as e: logging.error(e)if __name__ == '__main__':scaling_group_id = _create_scaling_conf()print '创建伸缩配置成功,伸缩组ID:' + str(scaling_group_id)注意:ak,scaling_group_id,security_group_id 等参数需要您根据个人情况进行设置。 在使用 SDK 创建伸缩配置的时候,您可以参考 创建伸缩配置接口 来了解每个参数的意义。建议多实例规格伸缩配置和多可用区伸缩组结合使用,这样可以在最大程度上提高您的伸缩组的可用性。关于多可用区伸缩组的创建方法,您可以参考 使用 ESS SDK 快速创建多可用区伸缩组 。 写在最后ESS 伸缩配置多实例规格参数目前可通过 OpenApi 的方式来使用,弹性伸缩服务控制台近期也会支持多实例规格伸缩配置功能。 |
|
相关推荐 |
|
只有小组成员才能发言,加入小组>>
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-4 03:26 , Processed in 0.383955 second(s), Total 38, Slave 28 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号