ALIYUN::ESS::ScalingConfiguration

ALIYUN::ESS::ScalingConfiguration类型用于为伸缩组创建伸缩配置。

语法

{
  "Type": "ALIYUN::ESS::ScalingConfiguration",
  "Properties": {
    "PasswordInherit": Boolean,
    "DiskMappings": List,
    "RamRoleName": String,
    "IoOptimized": String,
    "InternetChargeType": String,
    "KeyPairName": String,
    "InstanceId": String,
    "InstanceTypes": List,
    "ImageId": String,
    "ResourceGroupId": String,
    "SpotStrategy": String,
    "InstanceType": String,
    "SystemDiskCategory": String,
    "SystemDiskSize": Integer,
    "SystemDiskAutoSnapshotPolicyId": String,
    "SystemDiskPerformanceLevel": String,
    "InternetMaxBandwidthOut": Integer,
    "InstanceName": String,
    "InternetMaxBandwidthIn": Integer,
    "ScalingConfigurationName": String,
    "UserData": String,
    "DeploymentSetId": String,
    "SecurityGroupId": String,
    "SpotPriceLimit": Number,
    "HpcClusterId": String,
    "ScalingGroupId": String,
    "SpotPriceLimitForInstanceType": Map,
    "TagList": List,
    "Ipv6AddressCount": Integer,
    "LoadBalancerWeight": Integer,
    "CreditSpecification": String,
    "ImageFamily": String,
    "HostName": String,
    "Password": String,
    "SystemDiskBurstingEnabled": Boolean,
    "ImageOptionsLoginAsNonRoot": Boolean,
    "SystemDiskEncrypted": Boolean,
    "SystemDiskEncryptAlgorithm": String,
    "ZoneId": String,
    "Cpu": Integer,
    "SystemDiskProvisionedIops": Integer,
    "SystemDiskKMSKeyId": String,
    "InstancePatternInfos": List,
    "SpotInterruptionBehavior": String,
    "ImageName": String,
    "SystemDiskDescription": String,
    "SystemDiskDiskName": String,
    "InstanceTypeOverrides": List,
    "SystemDiskCategories": List,
    "Memory": Integer,
    "InstanceDescription": String,
    "SecurityGroupIds": List,
    "SpotDuration": Integer,
    "SecurityEnhancementStrategy": String,
    "Affinity": String,
    "Tenancy": String,
    "PrivatePoolOptions": Map,
    "DedicatedHostId": String
  }
}

属性

属性名称

类型

必须

允许更新

描述

约束

ResourceGroupId

String

实例所在的资源组ID。

DeploymentSetId

String

部署集ID。

HpcClusterId

String

实例所属的EHPC集群ID。

ScalingGroupId

String

伸缩配置所属的伸缩组ID。

DiskMappings

List

需要挂载的磁盘。

最多支持16块磁盘。

更多信息,请参见DiskMappings属性

InternetChargeType

String

公网访问带宽计费方式。

取值:

  • PayByBandwidth:按固定带宽计费。

  • PayByTraffic(默认值):按流量计费。

InternetMaxBandwidthIn

Integer

公网最大入网带宽。

单位:Mbps。

取值范围:1~200。

如果您没有指定该参数,则入带宽将自动被设置为200 Mbps。实例的入数据流量免费,该参数在任何情况下都不涉及计费。

InternetMaxBandwidthOut

Integer

公网最大出网带宽。

取值范围:

  • 按固定带宽计费:0~100。默认值:0。

  • 按流量计费:0~100。此时,该参数为必选参数。

单位:Mbps。

InstanceId

String

伸缩配置的实例ID。

SystemDiskCategory

String

系统盘类型。

取值:

  • cloud:普通云盘。

  • cloud_efficiency:高效云盘。

  • cloud_ssd:SSD云盘。

  • ephemeral_ssd:本地SSD盘。

  • cloud_essd:ESSD云盘。

当InstanceType为I系列的实例规格且实例属于非I/O优化实例时,默认值为cloud,否则,默认值为cloud_efficiency。

ImageId

String

实例的镜像ID,包括公共镜像、自定义镜像和云市场镜像。

更多信息,请参见公共镜像概述

InstanceType

String

实例规格。

更多信息,请参见实例规格族

SecurityGroupId

String

实例所属的安全组。

IoOptimized

String

是否创建I/O优化实例。

取值:

  • none(默认值):非I/O优化。

  • optimized:I/O优化。

ScalingConfigurationName

String

伸缩配置的名称。

长度为2~64个字符,以数字、英文字母或汉字开头,可包含数字、英文字母、汉字、下划线(_)、短划线(-)和半角句号(.)。

在同一地域下同一伸缩组内伸缩配置名称唯一。

如果您没有指定本参数,则默认使用伸缩配置的ID。

KeyPairName

String

实例绑定的密钥对名称。

  • 如果实例类型为Windows实例,则此参数将被忽略,默认值为空。

  • 如果实例类型为Linux实例,则密码登录方式会被初始化成禁止。

RamRoleName

String

实例RAM角色名称。

您可以使用RAM API ListRoles查询实例RAM角色名称。更多信息,请参见CreateRole - 创建角色ListRoles - 获取角色列表

SystemDiskSize

Integer

系统盘大小。

取值范围:20~500。

默认值:40。

单位:GiB。

如果使用自定义镜像创建系统盘,则系统盘大小必须大于等于自定义镜像大小。

SystemDiskPerformanceLevel

String

创建ESSD云盘作为系统盘使用时,设置云盘的性能等级。

取值:

  • PL1(默认值):单盘最高随机读写IOPS为5万。

  • PL2:单盘最高随机读写IOPS为10万。

  • PL3:单盘最高随机读写IOPS为100万。

有关如何选择ESSD性能等级,请参见ESSD云盘

UserData

String

创建实例时传递的用户数据。

内容需要限制在16KB以内,无需Base64转码,特殊字符需要使用反斜线(\)转义。

InstanceTypes

List

多实例规格参数。

如果指定了InstanceTypes,则InstanceType无效。

一个伸缩配置内最多可以设置10种实例规格,优先级按列表元素的顺序依次降低。当无法根据优先级较高的实例规格创建出实例时,弹性伸缩服务会自动选择下一优先级的实例规格来创建实例。

PasswordInherit

Boolean

是否使用镜像预设的密码。

如果使用镜像预设的密码,您需要确保所用镜像已经预设了密码。

TagList

List

实例标签。

标签以键值对方式传入,最多可以使用5组标签,格式为{"key1": "value1", "key2": "value2", ... "key5": "value5"}

更多信息,请参见TagList属性

Ipv6AddressCount

Integer

为弹性网卡指定随机生成的IPv6地址数量。

LoadBalancerWeight

Integer

ECS实例作为负载均衡后端服务器时的权重。

取值范围:1~100。

默认值:50。

CreditSpecification

String

突发性能实例的运行模式。

取值:

  • Unlimited(默认值):无性能约束模式。

  • Standard:标准模式。

关于实例性能的更多信息,请参见性能模式

ImageFamily

String

镜像族系名称。

通过设置该参数来获取当前镜像族系内最新可用镜像,用于创建实例。如果已经设置了参数ImageId,则不能设置该参数。

SpotStrategy

String

后付费实例的抢占策略。

取值:

  • NoSpot(默认值):正常按量付费实例。

  • SpotWithPriceLimit:设置上限价格的抢占式实例。

  • SpotAsPriceGo:系统自动出价,跟随当前市场实际价格。

InstanceName

String

基于当前伸缩配置创建的实例的名称。

SpotPriceLimit

Number

实例每小时的最高价格。

支持最多3位小数。

当SpotStrategy取值为SpotWithPriceLimit时该参数生效,且取值会被SpotPriceLimitForInstanceType的取值所覆盖。

SpotPriceLimitForInstanceType

Map

抢占式实例的实例规格和对应的出价。

格式:{"<instance_type_1>": <price_limit_1>, ..., {"<instance_type_10>": <price_limit_10>}

当SpotStrategy取值为SpotWithPriceLimit时该参数生效。

最多可设置10组实例和价格。

SystemDiskAutoSnapshotPolicyId

String

系统盘使用的自动快照策略ID。

HostName

String

云服务器的主机名。

半角句号(.)或短划线(-)不能作为首尾字符,不能连续使用半角句号(.)或短划线(-)。

不同类型实例的命名要求如下:

  • Windows实例:主机名长度为2~15,可以包含大小写字母、数字和短划线(-)。不能包含半角句号(.),不能全是数字。

  • 其他类型实例(Linux等):主机名长度为2~64,可以包含多个半角句号(.)。两个半角句号(.)之间为一段,每段可以包含大小写字母、数字和短划线(-)。

Password

String

ECS实例的密码。

长度为8至30个字符,必须同时包含大小写英文字母、数字和特殊符号中的三类字符。特殊符号可以是:

()` ~!@#$%^&*-_+=\|{}[]:;'<>,.?/

Windows实例不能以斜线号(/)为密码首字符。

说明

如果传入Password参数,建议您使用HTTPS协议发送请求,避免密码泄露。

SystemDiskBurstingEnabled

Boolean

系统盘是否开启Burst(性能突发)。

取值:

  • true:开启。

  • false:未开启。

ImageOptionsLoginAsNonRoot

Boolean

ECS 实例是否使用ecs-user用户登录。

取值:

  • true:是。

  • false:否。

SystemDiskEncrypted

Boolean

系统盘是否加密。

取值:

  • true:加密。

  • false:不加密。

SystemDiskEncryptAlgorithm

String

系统盘采用的加密算法。

取值:

  • AES-256。

  • SM4-128。

ZoneId

String

实例所属的可用区ID。

Cpu

Integer

vCPU个数。

同时指定CPU和Memory可以定义实例规格范围,例如,CPU=2且Memory=16可以定义配置为2 vCPU和16 GiB的所有实例规格。弹性伸缩会结合IO优化、可用区等因素确定可用实例规格集合,并根据价格排序为您创建价格最低的实例。

SystemDiskProvisionedIops

Integer

系统盘预配置的IOPS(Input/Output Operations Per Second)性能指标。

SystemDiskKMSKeyId

String

系统盘使用的KMS密钥ID。

InstancePatternInfos

List

智能配置的信息集合。

更多信息,请参见InstancePatternInfos属性。

SpotInterruptionBehavior

String

抢占实例中断模式。

ImageName

String

镜像文件名称。

SystemDiskDescription

String

系统盘的描述。

SystemDiskDiskName

String

系统盘的名称。

InstanceTypeOverrides

List

用于指定的实例规格相关信息。

更多信息,请参见InstanceTypeOverrides属性

SystemDiskCategories

List

系统盘的多磁盘类型。

当无法使用高优先级的磁盘类型时,弹性伸缩自动尝试下一优先级的磁盘类型创建系统盘。取值范围:

  • cloud:普通云盘。

  • cloud_efficiency:高效云盘。

  • cloud_ssd:SSD云盘。

  • cloud_essd:ESSD云盘。

Memory

Integer

内存大小。

单位:GiB。

同时指定CPU和Memory可以定义实例规格范围。例如,CPU=2且Memory=16可以定义配置为2 vCPU和16 GiB的所有实例规格。弹性伸缩会结合IO优化、可用区等因素确定可用实例规格集合,并根据价格排序为您创建价格最低的实例。

InstanceDescription

String

ECS实例的描述。

长度为2~256个英文或中文字符,不能以http://https://开头。

SecurityGroupIds

List

将ECS实例同时加入多个安全组。

说明

不支持同时指定SecurityGroupId和SecurityGroupIds。

SpotDuration

Integer

抢占式实例的保留时长。

单位为小时。取值范围:

  • 1:创建后阿里云会保证实例运行1小时不会被自动释放;超过1小时后,系统会自动比较出价与市场价格、检查资源库存,来决定实例的保留或回收。

  • 0:创建后,阿里云不能保证实例运行1小时,系统会自动比较出价与市场价格、检查资源库存,来决定实例的保留或回收。

SecurityEnhancementStrategy

String

是否开启安全加固。

取值范围:

  • Active:启用安全加固,只对公共镜像生效。

  • Deactive:不启用安全加固,对所有镜像类型生效。

Affinity

String

专有宿主机实例是否与专有宿主机关联。

取值范围:

  • default:实例不与专有宿主机关联。已启用节省停机模式的实例,停机后再次启动时,若原专有宿主机可用资源不足,则实例被放置在自动部署资源池的其它专有宿主机上。

  • host:实例与专有宿主机关联。已启用节省停机模式的实例,停机后再次启动时,仍放置在原专有宿主机上。若原专有宿主机可用资源不足,则实例重启失败。

Tenancy

String

是否在专有宿主机上创建实例。

取值范围:

  • default:创建非专有宿主机实例。

  • host:创建专有宿主机实例。若您不指定 DedicatedHostId,则由阿里云自动选择专有宿主机放置实例。

PrivatePoolOptions

Map

实例启动的私有池配置

更多信息,请参见PrivatePoolOptions属性

DedicatedHostId

String

是否在专有宿主机上创建ECS实例。

由于专有宿主机不支持创建抢占式实例,指定DedicatedHostId参数后,会自动忽略请求中的SpotStrategy和SpotPriceLimit设置。

您可以调用DescribeDedicatedHosts 接口查询专有宿主机ID列表。

DiskMappings语法

"DiskMappings": [
  {
    "Category": String,
    "DiskName": String,
    "Description": String,
    "AutoSnapshotPolicyId": String,
    "PerformanceLevel": String,
    "Encrypted": String,
    "KMSKeyId": String,
    "Device": String,
    "SnapshotId": String,
    "Size": String,
    "DeleteWithInstance": Boolean,
    "ProvisionedIops": Integer,
    "Categories": List,
    "BurstingEnabled": Boolean
  }
]

DiskMappings属性

属性名称

类型

必须

允许更新

描述

约束

Size

String

数据盘磁盘大小。

取值:

  • cloud:5~2000。

  • cloud_efficiency:20~32,768。

  • cloud_ssd:20~32,768。

  • cloud_essd:20~32,768。

  • ephemeral_ssd:5~800。

单位:GB。

指定该参数后,磁盘大小必须大于等于快照大小(快照通过SnapshotId指定)。

Category

String

数据盘类型。

取值:

  • cloud:普通云盘。

  • cloud_efficiency(默认值):高效云盘。

  • cloud_ssd:SSD云盘。

  • ephemeral_ssd:本地SSD盘。

  • cloud_essd:ESSD云盘。

对于I/O优化实例,默认值为cloud_efficiency;对于非I/O优化实例,默认值为cloud。

DiskName

String

数据盘名称。

长度为2~128个字符。

必须以英文字母或汉字开头,不能以http://https:// 开头。

可以包含数字、英文字母、汉字、半角冒号(:)、下划线(_)和短划线(-)。

PerformanceLevel

String

创建ESSD云盘作为数据盘使用时,设置云盘的性能等级。

取值:

  • PL1(默认值):单盘最高随机读写IOPS为5万。

  • PL2:单盘最高随机读写IOPS为10万。

  • PL3:单盘最高随机读写IOPS为100万。

有关如何选择ESSD性能等级,请参见ESSD云盘

Description

String

数据盘描述。

长度为2~256个字符。不能以http://https://开头。

Device

String

数据盘挂载点。

如果该参数值未指定,则默认将在自动创建ECS实例时由系统分配,取值从/dev/xvdb开始,到/dev/xvdz结束。

SnapshotId

String

创建数据盘时使用的快照。

指定该参数后,Size会被忽略,实际创建的磁盘大小为指定快照的大小。如果快照创建于2013年7月15日或之前,调用快照会被拒绝,返回参数中会提示InvalidSnapshot.TooOld。

Encrypted

String

数据盘是否加密。

取值:

  • true:加密。

  • false(默认值):不加密。

KMSKeyId

String

数据盘对应的KMS密钥ID。

AutoSnapshotPolicyId

String

数据盘使用的自动快照策略ID。

DeleteWithInstance

Boolean

数据盘是否随实例释放。

取值范围:

  • true:释放实例时,该磁盘随实例一起释放。

  • false:释放实例时,该磁盘保留不释放。

ProvisionedIops

Integer

数据盘预配置的 IOPS(Input/Output Operations Per Second)性能指标。

说明

IOPS(Input/Output Operations Per Second)指每秒能处理的 I/O 个数,表示块存储处理读写(输出/输入)的能力,单位为次。

Categories

List

数据盘的多磁盘类型。

第一个磁盘类型优先级最高,其他磁盘类型的优先级依次递减。当无法使用高优先级的磁盘类型时,弹性伸缩自动尝试下一优先级的磁盘类型创建数据盘。取值范围:

  • cloud:普通云盘。随实例创建的普通云盘的 DeleteWithInstance 属性为 true。

  • cloud_efficiency:高效云盘。

  • cloud_ssd:SSD 云盘。

  • cloud_essd:ESSD 云盘。

BurstingEnabled

Boolean

数据盘是否开启 Burst(性能突发)。

可能值:

  • true:开启。

  • false:未开启。

PrivatePoolOptions语法

"PrivatePoolOptions": 
  {
    "MatchCriteria": String,
    "Id": String
  }

PrivatePoolOptions属性

属性名称

类型

必须

允许更新

描述

约束

MatchCriteria

String

实例启动的私有池容量选项。

弹性保障服务或容量预定服务在生效后会生成私有池容量,供实例启动时选择。取值范围:

  • Open:开放模式。将自动匹配开放类型的私有池容量。如果没有符合条件的私有池容量,则使用公共池资源启动。该模式下无需设置PrivatePoolOptions.Id参数。

  • Target:指定模式。使用指定的私有池容量启动实例,如果该私有池容量不可用,则实例会启动失败。该模式下必须指定私有池ID,即PrivatePoolOptions.Id 参数为必填项。

  • None:不使用模式。实例启动将不使用私有池容量。

Id

String

私有池ID。

即弹性保障服务ID或容量预定服务ID。

InstanceTypeOverrides语法

"InstanceTypeOverrides": [
  {
    "InstanceType": String,
    "WeightedCapacity": Integer
  }
]

InstanceTypeOverrides属性

属性名称

类型

必须

允许更新

描述

约束

InstanceType

String

指定实例规格。

当您需要伸缩组按照实例规格容量进行伸缩时,请同时指定本参数和 WeightedCapacity。

WeightedCapacity

Integer

指定实例规格的权重。

由于每个实例规格的vCPU 个数、内存大小等性能指标会有差异,您可以根据自身需求,给不同的实例规格配置不同的权重。

例如:

  • 当前容量:0。

  • 期望容量:6。

  • ecs.c5.xlarge 规格容量:4。

为满足期望容量,伸缩组将为用户扩容2台ecs.c5.xlarge实例。

InstancePatternInfos语法

"InstancePatternInfos": [
  {
    "BurstablePerformance": String,
    "Architectures": List,
    "InstanceFamilyLevel": String,
    "Memory": Number,
    "MaxPrice": Number,
    "ExcludedInstanceTypes": List,
    "Cores": Integer
  }
]

InstancePatternInfos属性

属性名称

类型

必须

允许更新

描述

约束

BurstablePerformance

String

是否为性能突发实例规格。

取值范围:

  • Exclude:不包含性能突发实例规格。

  • Include:包含性能突发实例规格。

  • Required:只包含性能突发实例规格。

默认值:Include。

Architectures

List

实例规格所属的架构类型。

取值范围:

  • X86:X86计算。

  • Heterogeneous:异构计算,例如GPU或FPGA等。

  • BareMental:弹性裸金属服务器。

  • Arm:Arm计算。

  • SuperComputeCluster:超级计算集群。

默认值:包含所有架构类型。

InstanceFamilyLevel

String

实例规格族级别。

用于筛选符合要求的实例规格范围,当CostOptimization开启时生效。取值范围:

  • EntryLevel:入门级,即共享型实例规格。成本更低,但是无法保证实例计算性能的稳定。适用于平时CPU使用率低的业务场景。更多信息,请参见共享型

  • EnterpriseLevel:企业级。性能稳定且资源独享,适用于对稳定性要求高的业务场景。更多信息,请参见实例规格族

  • CreditEntryLevel:积分入门级,即突发性能实例。通过CPU积分来保证计算性能,适用于平时CPU使用率低、偶有突发CPU使用率的业务场景。更多信息,请参见突发性能实例概述

Memory

Number

智能配置模式下,实例规格的内存大小。

单位为GiB,用于筛选符合要求的实例规格范围。

MaxPrice

Number

智能配置模式下,按量付费实例或者抢占式实例可接受的每小时最高价格。

无。

ExcludedInstanceTypes

List

需要排除的实例规格。

通过使用通配符(*)可以排除单个规格或者整个规格族。例如:

  • ecs.c6.large:表示排除 ecs.c6.large 实例规格。

  • ecs.c6.*:表示排除整个 c6 规格族的实例规格。

Cores

Integer

智能配置模式下,实例规格的vCPU内核数目。

用于筛选符合要求的实例规格范围。更多信息,请参见实例规格族

请注意以下信息:

  • InstancePatternInfos 参数仅适用于伸缩组的网络类型为专有网络。

  • InstancePatternInfos 参数必须同时配置InstancePatternInfos.Cores和InstancePatternInfos.Memory。

  • 如果您已经通过InstanceType或InstanceTypes参数指定了实例规格,弹性伸缩优先使用您指定的实例规格扩容,当指定的实例规格无库存时,再从符合InstancePatternInfos参数值的实例规格中优先使用价格最低的实例规格扩容。

TagList语法

"TagList": [
  {
    "Key": String,
    "Value": String
  }
]

TagList属性

属性名称

类型

必须

允许更新

描述

约束

Key

String

标签键。

长度为1~64个字符,不能以aliyunacs:开头,不能包含http://https://

Value

String

标签值。

长度为0~128个字符,不能以aliyunacs:开头,不能包含http://https://

返回值

Fn::GetAtt

  • ScalingConfigurationId:伸缩配置的ID。由系统生成,全局唯一。

  • ScalingGroupId:伸缩配置所属的伸缩组ID。

示例

YAML格式

ROSTemplateFormatVersion: '2015-09-01'
Description: Test ESS ScalingConfiguration
Parameters:
  AutoScalingGroupId:
    Type: String
    AssociationProperty: ALIYUN::ESS::AutoScalingGroup::AutoScalingGroupId
  SecurityGroupId:
    Type: String
    AssociationProperty: ALIYUN::ECS::SecurityGroup::SecurityGroupId
    Label:
      zh-cn: 安全组ID
      en: Security Group ID
  ImageId:
    Type: String
    AssociationProperty: ALIYUN::ECS::Image::ImageId
    AssociationPropertyMetadata:
      SupportedImageOwnerAlias:
        - system
        - self
        - others
Resources:
  ScalingConfiguration:
    Type: ALIYUN::ESS::ScalingConfiguration
    Properties:
      InstanceType: ecs.c5.large
      ImageId:
        Ref: ImageId
      SystemDiskCategory: cloud_essd
      SystemDiskSize: 40
      ScalingConfigurationName: mytest
      ScalingGroupId:
        Ref: AutoScalingGroupId
      SecurityGroupId:
        Ref: SecurityGroupId
Outputs: {}

JSON格式

{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Description": "Test ESS ScalingConfiguration",
  "Parameters": {
    "AutoScalingGroupId": {
      "Type": "String",
      "AssociationProperty": "ALIYUN::ESS::AutoScalingGroup::AutoScalingGroupId"
    },
    "SecurityGroupId": {
      "Type": "String",
      "AssociationProperty": "ALIYUN::ECS::SecurityGroup::SecurityGroupId",
      "Label": {
        "zh-cn": "安全组ID",
        "en": "Security Group ID"
      }
    },
    "ImageId": {
      "Type": "String",
      "AssociationProperty": "ALIYUN::ECS::Image::ImageId",
      "AssociationPropertyMetadata": {
        "SupportedImageOwnerAlias": ["system", "self", "others"]
      }
    }
  },
  "Resources": {
    "ScalingConfiguration": {
      "Type": "ALIYUN::ESS::ScalingConfiguration",
      "Properties": {
        "InstanceType": "ecs.c5.large",
        "ImageId": {
          "Ref": "ImageId"
        },
        "SystemDiskCategory": "cloud_essd",
        "SystemDiskSize": 40,
        "ScalingConfigurationName": "mytest",
        "ScalingGroupId": {
          "Ref": "AutoScalingGroupId"
        },
        "SecurityGroupId": {
          "Ref": "SecurityGroupId"
        }
      }
    }
  },
  "Outputs": {
  }
}

当伸缩组中仅定义了一个伸缩组配置,且伸缩组配置中包含依赖的其他资源,您需要在定义资源模板时为伸缩组设置DependsOn属性,对伸缩组配置依赖的其他资源设置资源依赖关联。

伸缩组ScalingGroup设置DependsOn依赖关系到安全组SecurityGroup,因为伸缩组配置ScalingConfiguration依赖安全组SecurityGroup资源。

ROSTemplateFormatVersion: '2015-09-01'
Parameters:
  VpcId:
    AssociationProperty: ALIYUN::ECS::VPC::VPCId
    Type: String
  VSwitchId:
    AssociationProperty: ALIYUN::ECS::VSwitch::VSwitchId
    Type: String
    AssociationPropertyMetadata:
      VpcId: VpcId
Resources:
  ScalingGroupEnable:
    Type: ALIYUN::ESS::ScalingGroupEnable
    Properties:
      ScalingConfigurationId:
        Ref: ScalingConfiguration
      ScalingGroupId:
        Ref: ScalingGroup
      ScalingRuleArisExecuteVersion: 0
  SecurityGroup:
    Type: ALIYUN::ECS::SecurityGroup
    Properties:
      SecurityGroupName:
        Ref: ALIYUN::StackName
      VpcId:
        Ref: VpcId
      SecurityGroupIngress:
        - PortRange: '-1/-1'
          Priority: 1
          SourceCidrIp: 0.0.X.X/0
          IpProtocol: all
          NicType: internet
      SecurityGroupEgress:
        - PortRange: '-1/-1'
          Priority: 1
          IpProtocol: all
          DestCidrIp: 0.0.X.X/0
          NicType: internet
        - PortRange: '-1/-1'
          Priority: 1
          IpProtocol: all
          DestCidrIp: 0.0.X.X/0
          NicType: intranet
  ScalingConfiguration:
    Type: ALIYUN::ESS::ScalingConfiguration
    DependsOn: ScalingGroup
    Properties:
      InstanceType: ecs.g6e.large
      ImageId: centos_7_04_64_20G_alibase_201701015.vhd
      SystemDiskCategory: cloud_essd
      SystemDiskSize: 100
      ScalingConfigurationName:
        Ref: ALIYUN::StackName
      ScalingGroupId:
        Ref: ScalingGroup
      SecurityGroupId:
        Ref: SecurityGroup
  ScalingGroup:
    Type: ALIYUN::ESS::ScalingGroup
    DependsOn: SecurityGroup
    Properties:
      MaxSize: 3
      MinSize: 0
      DefaultCooldown: 15
      VpcId:
        Ref: VpcId
      VSwitchId:
        Ref: VSwitchId
Outputs: {}