ALIYUN::ESS::ScalingConfiguration is used to create a scaling configuration for a scaling group.
Syntax
{
"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
}
}
Properties
Property | Type | Required | Editable | Description | Constraint |
ResourceGroupId | String | No | Yes | The ID of the resource group to which the instances belong. | None. |
DeploymentSetId | String | No | No | The ID of the deployment set. | None. |
HpcClusterId | String | No | No | The ID of the Elastic High Performance Computing (E-HPC) cluster to which the instances belong. | None. |
ScalingGroupId | String | Yes | No | The ID of the scaling group to which the scaling configuration belongs. | None. |
DiskMappings | List | No | Yes | The disks that you want to attach to the instances. | You can attach up to 16 disks. For more information, see DiskMappings properties. |
InternetChargeType | String | No | Yes | The metering method for Internet usage. | Valid values:
|
InternetMaxBandwidthIn | Integer | No | No | The maximum inbound public bandwidth. | Unit: Mbit/s. Valid values: 1 to 200. If you leave this property empty, the system sets the maximum inbound public bandwidth to 200 Mbit/s. This property is not used for billing because the inbound traffic of instances is free of charge. |
InternetMaxBandwidthOut | Integer | No | Yes | The maximum outbound public bandwidth. |
Unit: Mbit/s. |
InstanceId | String | No | No | The ID of the instance that is created based on the scaling configuration. | None. |
SystemDiskCategory | String | No | Yes | The category of the system disk. | Valid values:
For non-I/O optimized instances of Generation I instance families, the default value is cloud. For instances of other categories, the default value is cloud_efficiency. |
ImageId | String | No | Yes | The ID of the image that is used to create the instances. You can use a public image, a custom image, or an Alibaba Cloud Marketplace image. | For more information, see Overview. |
InstanceType | String | No | Yes | The instance type. | For more information, see Overview of instance families. |
SecurityGroupId | String | No | Yes | The ID of the security group to which the instances belong. | None. |
IoOptimized | String | No | Yes | Specifies whether to create an I/O optimized instance. | Valid values:
|
ScalingConfigurationName | String | No | Yes | The name of the scaling configuration. | The name must be 2 to 64 characters in length and can contain digits, letters, underscores (_), hyphens (-), and periods (.). It must start with a digit or letter. The name of the scaling configuration must be unique in a scaling group in a region. If you leave this property empty, the ID of the scaling configuration is used. |
KeyPairName | String | No | Yes | The name of the key pair that is used to connect to the instances. |
|
RamRoleName | String | No | Yes | The name of the Resource Access Management (RAM) role for the instances. | You can call the ListRoles operation of RAM to query the role name. For more information, see CreateRole and ListRoles. |
SystemDiskSize | Integer | No | Yes | The size of the system disk. | Valid values: 20 to 500. Default value: 40. Unit: GiB. If you use a custom image to create the system disk, make sure that the size of the system disk is greater than or equal to the size of the custom image. |
SystemDiskPerformanceLevel | String | No | Yes | The performance level (PL) of the ESSD that you want to use as the system disk. | Valid values:
For more information about how to select the PL of the ESSD, see ESSDs. |
UserData | String | No | Yes | The user data that you want to pass when you create the instances. | The user data can be up to 16 KB in size. You do not need to convert the data into Base64-encoded strings. If the data contains special characters, you must add the escape character (\) before each special character. |
InstanceTypes | List | No | Yes | The instance types. | If you specify InstanceTypes, InstanceType is ignored. You can specify up to 10 instance types in a scaling configuration. The instance types are sorted in descending order of priority based on the specified sequence. Auto Scaling creates instances based on the priorities of the instance types. If Auto Scaling cannot create instances by using the instance type that has the highest priority, Auto Scaling creates instances by using the instance type that has the next highest priority. |
PasswordInherit | Boolean | No | Yes | Specifies whether to use the preset password of the image. | If you want to use the preset password, make sure that the specified image has a preset password. |
TagList | List | No | Yes | The tags of the instance. | You can specify up to five tags. Specify tags in the following key-value format: For more information, see TagList properties. |
Ipv6AddressCount | Integer | No | Yes | The number of randomly generated IPv6 addresses that you want to assign to the elastic network interface (ENI). | None. |
LoadBalancerWeight | Integer | No | Yes | The weight of the ECS instance that is used as the backend server of a Server Load Balancer (SLB) instance. | Valid values: 1 to 100. Default value: 50. |
CreditSpecification | String | No | Yes | The performance mode of the burstable instance. | Valid values:
For more information about performance modes, see Performance modes. |
ImageFamily | String | No | Yes | The name of the image family. | You can use this property to query the latest available images that belong to the specified image family. If you specify ImageId, you cannot specify ImageFamily. |
SpotStrategy | String | No | Yes | The preemption policy for the pay-as-you-go instance. | Valid values:
|
InstanceName | String | No | Yes | The name of the instance that is created based on the scaling configuration. | None. |
SpotPriceLimit | Number | No | Yes | The maximum hourly price for the instance. | The value of this property can contain up to 3 decimal places. This property takes effect when SpotStrategy is set to SpotWithPriceLimit. If you specify SpotPriceLimit and SpotPriceLimitForInstanceType, the value of SpotPriceLimit is overwritten by the value of SpotPriceLimitForInstanceType. |
SpotPriceLimitForInstanceType | Map | No | Yes | The instance types and the bidding prices for preemptible instances. | Specify the value in the This property takes effect when SpotStrategy is set to SpotWithPriceLimit. You can configure up to 10 sets of instance types and bidding prices. |
SystemDiskAutoSnapshotPolicyId | String | No | Yes | The ID of the automatic snapshot policy that you want to apply to the system disk. | None. |
HostName | String | No | Yes | The hostname of the ECS instance. | The hostname cannot start or end with a period (.) or hyphen (-) and cannot contain consecutive periods (.) or hyphens (-). The hostname that you can specify for an ECS instance varies based on the category of the instance:
|
Password | String | No | Yes | The password that you want to use to connect to the ECS instance. | The password must be 8 to 30 characters in length and must contain at least three of the following character types: uppercase letters, lowercase letters, digits, and special characters. The following special characters are supported:
Passwords of Windows instances cannot start with a forward slash (/). Note If you specify Password, we recommend that you use HTTPS to send requests for security purposes. |
DiskMappings syntax
"DiskMappings": [
{
"Category": String,
"DiskName": String,
"Description": String,
"AutoSnapshotPolicyId": String,
"PerformanceLevel": String,
"Encrypted": String,
"KMSKeyId": String,
"Device": String,
"SnapshotId": String,
"Size": String
}
]
DiskMappings properties
Property | Type | Required | Editable | Description | Constraint |
Size | String | No | No | The size of the data disk. | Valid values:
Unit: GB. The value of this property must be greater than or equal to the size of the snapshot that is specified by using SnapshotId. |
Category | String | No | No | The category of the data disk. | Valid values:
For I/O optimized instances, the default value is cloud_efficiency. For non-I/O optimized instances, the default value is cloud. |
DiskName | String | No | No | The name of the data disk. | The name must be 2 to 128 characters in length and can contain digits, letters, colons (:), underscores (_), and hyphens (-). It must start with a letter and cannot start with
|
PerformanceLevel | String | No | No | The PL of the ESSD that you want to use as the data disk. | Valid values:
For more information about how to select the PL of the ESSD, see ESSDs. |
Description | String | No | No | The description of the data disk. | The description must be 2 to 256 characters in length. It cannot start with |
Device | String | No | No | The mount target of the data disk. | If you do not specify this property, the system assigns a mount target in alphabetical order from |
SnapshotId | String | No | No | The ID of the snapshot that you want to use to create the data disk. | If you specify this property, Size is ignored. The actual size of the created data disk is the size of the specified snapshot. If you specify a snapshot that was created on or before July 15, 2013, the snapshot cannot be requested and the InvalidSnapshot.TooOld error message is returned. |
Encrypted | String | No | No | Specifies whether to encrypt the data disk. | Valid values:
|
KMSKeyId | String | No | No | The ID of the Key Management Service (KMS) key that you want to use for the data disk. | None. |
AutoSnapshotPolicyId | String | No | No | The ID of the automatic snapshot policy that you want to apply to the data disk. | None. |
TagList syntax
"TagList": [
{
"Key": String,
"Value": String
}
]
TagList properties
Property | Type | Required | Editable | Description | Constraint |
Key | String | Yes | No | The tag key. | The tag key must be 1 to 64 characters in length. It cannot start with |
Value | String | No | No | The tag value. | The tag value must be up to 128 characters in length. It cannot start with |
Return values
Fn::GetAtt
ScalingConfigurationId: the ID of the scaling configuration. The ID is a GUID that is generated by the system for the scaling configuration.
ScalingGroupId: the ID of the scaling group to which the scaling configuration belongs.
Examples
If you define only one scaling configuration that contains dependencies in a scaling group, you must specify DependsOn for the scaling group in the Resources section of a template. This way, the dependencies of the scaling configuration are associated with the scaling group.
In this example, DependsOn in ScalingGroup is set to SecurityGroup because SecurityGroup is the dependency of ScalingConfiguration.
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: {}
For more examples, visit ScalingGroupEnable.json and ScalingGroupEnable.yml. In the examples, the ALIYUN::ESS::ScalingConfiguration and ALIYUN::ESS::ScalingGroupEnable resource types are used.