ALIYUN::ECS::AutoProvisioningGroup is used to create an auto provisioning group.
Syntax
{
"Type": "ALIYUN::ECS::AutoProvisioningGroup",
"Properties": {
"SpotInstancePoolsToUseCount": Integer,
"AutoProvisioningGroupName": String,
"ValidUntil": String,
"Description": String,
"PayAsYouGoAllocationStrategy": String,
"MaxSpotPrice": Number,
"LaunchTemplateId": String,
"DefaultTargetCapacityType": String,
"SpotInstanceInterruptionBehavior": String,
"SpotTargetCapacity": String,
"SpotAllocationStrategy": String,
"PayAsYouGoTargetCapacity": String,
"TotalTargetCapacity": String,
"AutoProvisioningGroupType": String,
"LaunchTemplateVersion": String,
"ValidFrom": String,
"ExcessCapacityTerminationPolicy": String,
"TerminateInstances": Boolean,
"TerminateInstancesWithExpiration": Boolean,
"CheckExecutionStatus": Boolean,
"LaunchConfiguration": Map
"LaunchTemplateConfig": List
}
}
Properties
Property | Type | Required | Editable | Description | Constraint |
---|---|---|---|---|---|
SpotInstancePoolsToUseCount | Integer | No | No | The number of Elastic Compute Service (ECS) instances to be created. The auto provisioning group selects instance types of the lowest cost to create instances. | The value of this parameter must be smaller than the number of extended launch template
configurations specified by LaunchTemplateConfig.
This parameter takes effect only when the SpotAllocationStrategy parameter is set to lowest-price. |
AutoProvisioningGroupName | String | No | No | The name of the auto provisioning group. | The name must be 2 to 128 characters in length and can contain letters, digits, colons(:),
underscores (_), and hyphens (-). It must start with a letter and cannot start with
http:// or https:// .
|
ValidUntil | String | No | No | The time when the auto provisioning group expires. The period of time between this point in time and the point in time specified by the ValidFrom parameter is the effective time period of the auto provisioning group. | Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.
|
Description | String | No | No | The description of the auto provisioning group. | None |
PayAsYouGoAllocationStrategy | String | No | No | The scale-out policy for pay-as-you-go instances. | Default value: lowest-price. Valid values:
|
MaxSpotPrice | Number | No | Yes | The maximum price of preemptible instances in the auto provisioning group. | If both the MaxSpotPrice and LaunchTemplateConfig.N.MaxPrice parameters are specified, the maximum price is the smaller value of the two. |
LaunchTemplateId | String | No | No | The ID of the launch template that is associated with the auto provisioning group. You can call the DescribeLaunchTemplates operation to query available instance launch templates. | When both the LaunchConfiguration and LaunchConfiguration parameters are specified, the launch template is preferentially used. |
DefaultTargetCapacityType | String | No | Yes | The type of supplemental instances. When the total value of PayAsYouGoTargetCapacity and SpotTargetCapacity is smaller than the value of TotalTargetCapacity, the auto provisioning group creates instances of the specified type to meet the capacity requirements. | Default value: Spot. Valid values:
|
SpotInstanceInterruptionBehavior | String | No | No | The next action to take after the excess preemptible instances are shut down. | Default value: stop. Valid values:
|
SpotTargetCapacity | String | No | Yes | The expected capacity of preemptible instances in the auto provisioning group. | The value of this parameter must be smaller than that of the TotalTargetCapacity parameter. |
SpotAllocationStrategy | String | No | No | The scale-out policy for preemptible instances. | Default value: lowest-price. Valid values:
|
PayAsYouGoTargetCapacity | String | No | Yes | The expected capacity of pay-as-you-go instances in the auto provisioning group. | The value of this parameter must be smaller than that of the TotalTargetCapacity parameter. |
TotalTargetCapacity | String | Yes | Yes | The total expected capacity of the auto provisioning group. | Valid values: any non-zero positive integer. The expected capacity of the auto provisioning group must be at least the sum of the capacity of pay-as-you-go instances specified by the PayAsYouGoTargetCapacity parameter and the capacity of preemptible instances specified by the SpotTargetCapacity parameter. |
AutoProvisioningGroupType | String | No | No | The delivery type of the auto provisioning group. | Default value: maintain. Valid values:
|
LaunchTemplateVersion | String | No | No | The version of the instance launch template that is associated with the auto provisioning group. You can call the DescribeLaunchTemplateVersions operation to query available versions of instance launch templates. | None |
ValidFrom | String | No | No | The time when the auto provisioning group is started. The period of time between this point in time and the point in time specified by the ValidUntil parameter is the effective time period of the auto provisioning group. | Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.
|
ExcessCapacityTerminationPolicy | String | No | Yes | Specifies whether to stop excess preemptible instances when the total expected capacity of the specified auto provisioning group is reached. | Default value: no-termination. Valid values:
|
TerminateInstances | Boolean | No | No | Specifies whether to release instances in the auto provisioning group when the auto provisioning group is deleted. | Default value: false. Valid values:
|
TerminateInstancesWithExpiration | Boolean | No | Yes | Specifies whether to stop preemptible instances when the auto provisioning group expires. | Default value: false. Valid values:
|
CheckExecutionStatus | Boolean | No | No | Specifies whether to check the execution status. | Valid values:
|
LaunchConfiguration | Map | No | No | The launch configurations. | When both the LaunchConfiguration and LaunchConfiguration parameters are specified,
the launch template is preferentially used.
For more information, see LaunchConfiguration properties. |
LaunchTemplateConfig | List | No | No | The list of one or more extended configurations of the launch template. | A maximum of 20 extended configurations can be specified.
For more information, see LaunchTemplateConfig properties. |
LaunchTemplateConfig syntax
"LaunchTemplateConfig": [
{
"Priority": Integer,
"WeightedCapacity": Integer,
"VSwitchId": String,
"InstanceType": String,
"MaxPrice": Integer
}
]
LaunchTemplateConfig properties
Property | Type | Required | Editable | Description | Constraint |
---|---|---|---|---|---|
Priority | Integer | No | No | The priority of the instance type specified in extended configurations. A value of 0 indicates the highest priority. | Valid values: 0 or any positive integer. |
WeightedCapacity | Integer | No | No | The weight of the instance type specified in extended configurations. A greater weight indicates that the instance has more computing power, and as a result fewer instances are required. | Valid values: any non-zero positive integer. The weight is calculated based on the computing power of the specified instance type and the minimum computing power of a single node of the cluster. For example, if the minimum computing power of a single node is 8 vCPUs and 60 GiB, the weight of the instance type that has 8 vCPUs and 60 GiB can be set to 1. The weight of the instance type that has 16 vCPUs and 120 GiB can be set to 2. |
VSwitchId | String | Yes | No | The ID of the vSwitch in extended configurations. The zone of the ECS instances that are created from the extended configurations is determined by the vSwitch. | None |
InstanceType | String | No | No | The instance type that is specified in extended configurations. | None |
MaxPrice | Integer | No | No | The maximum price of preemptible instances in extended configurations. | None |
LaunchConfiguration syntax
"LaunchConfiguration": {
"InstanceDescription": String,
"SystemDiskName": String,
"RamRoleName": String,
"SystemDiskCategory": String,
"SecurityGroupId": String,
"CreditSpecification": String,
"HostName": String,
"SystemDiskDescription": String,
"InternetMaxBandwidthIn": Integer,
"SystemDiskPerformanceLevel": String,
"DataDisk": List,
"InternetMaxBandwidthOut": Integer,
"IoOptimized": String,
"Tag": List,
"ImageId": String,
"ResourceGroupId": String,
"KeyPairName": String,
"PasswordInherit": Boolean,
"UserData": String,
"InstanceName": String,
"SystemDiskSize": Integer,
"InternetChargeType": String,
"SecurityEnhancementStrategy": String
}
LaunchConfiguration properties
Property | Type | Required | Editable | Description | Constraint |
---|---|---|---|---|---|
InstanceDescription | String | No | No | The description of the instance. | The description must be 2 to 256 characters in length and cannot start with http:// or https:// .
|
SystemDiskName | String | No | No | The name of the system disk attached to the instance. | The name must be 2 to 128 characters in length and can contain letters, digits, periods
(.), colons (:), underscores (_), and hyphens (-). It must start with a letter and
cannot start with http:// or https:// .
|
RamRoleName | String | No | No | The RAM role name of the instance. | None |
SystemDiskCategory | String | No | No | The category of the system disk. | Valid values:
|
SecurityGroupId | String | Yes | No | The ID of the security group to which the instance belongs. | None |
CreditSpecification | String | No | No | The running mode of the burstable instance. | Valid values:
|
HostName | String | No | No | The hostname of the instance. |
The hostname cannot start or end with a period (.) or hyphen (-).It cannot contain consecutive periods (.) or hyphens (-).
|
SystemDiskDescription | String | No | No | The description of the system disk. | The description must be 2 to 256 characters in length and cannot start with http:// or https:// .
|
InternetMaxBandwidthIn | Integer | No | No | The maximum inbound public bandwidth. | Valid values:
Unit: Mbit/s. |
SystemDiskPerformanceLevel | String | No | No | The performance level of the ESSD that is used as the system disk. | Default value: PL0. Valid values:
|
DataDisk | List | No | No | The data disk attached to the instance. | A maximum of 16 data disks can be specified.
For more information, see DataDisk properties. |
InternetMaxBandwidthOut | Integer | No | No | The maximum outbound public bandwidth. | Valid values: 0 to 100.
Default value: 0 Unit: Mbit/s. |
IoOptimized | String | No | No | Specifies whether the instance is an I/O optimized instance. | Valid values:
|
Tag | List | No | No | The tags of the instance. | A maximum of 20 tags can be specified.
For more information, see Tag properties. |
ImageId | String | Yes | No | The ID of the image. | None |
ResourceGroupId | String | No | No | The ID of the enterprise resource group to which the instance belongs. | None |
KeyPairName | String | No | No | The name of the key pair. |
For Windows instances, this parameter is ignored. This parameter is empty by default. For Linux instances, the username and password authentication method is disabled by default. |
PasswordInherit | Boolean | No | No | Specifies whether to use the preset password in the image. | Valid values:
|
UserData | String | No | No | The user data provided to create the instance. | The user data must be encoded in Base64. The maximum size of the raw data is 16 KB. |
InstanceName | String | No | No | The name of the instance. | The default value of this parameter is the InstanceId value.
The name must be 2 to 128 characters in length and can contain letters, digits, colons
(:), underscores (_), periods (.), and hyphens (-). It must start with a letter and
cannot start with |
SystemDiskSize | Integer | No | No | The size of the system disk. | Valid values: 20 to 500. The size of the system disk must be greater than or equal
to that of the image.
Default value: 40 or image size. Unit: GiB. |
InternetChargeType | String | No | No | The billing method for network usage. | Valid values:
Note When the pay-by-traffic billing method is used, the maximum inbound and outbound bandwidths
are both the upper limits of bandwidths and for reference only. When resources are
insufficient, these maximum bandwidths cannot be guaranteed. If you want guaranteed
bandwidths for your instance, use the pay-by-bandwidth billing method.
|
SecurityEnhancementStrategy | String | No | No | Specifies whether to enable security enhancement. | Valid values:
|
DataDisk syntax
"DataDisk": [
{
"DiskName": String,
"Size": Integer,
"Category": String,
"Description": String,
"DeleteWithInstance": Boolean,
"SnapshotId": String,
"Encrypted": Boolean,
"KmsKeyId": String,
"InternetChargeType": String,
"PerformanceLevel": String
}
]
DataDisk properties
Property | Type | Required | Editable | Description | Constraint |
---|---|---|---|---|---|
DiskName | String | No | No | The name of the data disk. | The name must be 2 to 128 characters in length and can contain letters, digits, periods
(.), colons (:), underscores (_), and hyphens (-). It must start with a letter and
cannot start with http:// or https:// .
|
Size | Integer | No | No | The size of the data disk. | Valid values:
Unit: GiB. |
Category | String | No | No | The category of the data disk. | Valid values:
|
Description | String | No | No | The description of the data disk. | The description must be 2 to 256 characters in length and cannot start with http:// or https:// .
|
DeleteWithInstance | Boolean | No | No | Specifies whether to release the data disk along with the instance. | Default value: true. Valid values:
|
SnapshotId | String | No | No | The ID of the snapshot that is used to create the data disk. | If this parameter is specified, the Size parameter is ignored, and the disk is created with the size of the specified snapshot. Use snapshots created after July 15, 2013. Otherwise, an error is returned, and your request is rejected. |
Encrypted | Boolean | No | No | Specifies whether data disk N is encrypted. | Default value: false. Valid values:
|
KmsKeyId | String | No | No | The ID of the Key Management Service (KMS) key corresponding to the data disk. | None |
InternetChargeType | String | No | No | The billing method for network usage. | Valid values:
Note When the pay-by-traffic billing method is used, the maximum inbound and outbound bandwidths
are both the upper limits of bandwidths and for reference only. When resources are
insufficient, these maximum bandwidths cannot be guaranteed. If you want guaranteed
bandwidths for your instance, use the pay-by-bandwidth billing method.
|
PerformanceLevel | String | No | No | The performance level of the ESSD that is used as the data disk. | Default value: PL0. Valid values:
|
Tag syntax
"Tag": [
{
"Key": String,
"Value": String
}
]
Tag properties
Property | Type | Required | Editable | Description | Constraint |
---|---|---|---|---|---|
Key | String | Yes | No | The key of a tag. | The tag key must be 1 to 128 characters in length and cannot contain http:// or https:// . It cannot start with acs: or aliyun .
|
Value | String | No | No | The value of a tag. | The tag value must be 0 to 128 characters in length and cannot contain http:// or https:// . It cannot start with acs: or aliyun .
|
Response parameters
Fn::GetAtt
- AutoProvisioningGroupId: the ID of the auto provisioning group.
- AutoProvisioningGroupName: the name of the auto provisioning group.
Examples
JSON
format
{
"ROSTemplateFormatVersion": "2015-09-01",
"Parameters": {
"TotalTargetCapacity": {
"Type": "String",
"Description": "The total target capacity of the auto provisioning group. The target capacity consists\nof the following three parts:\nThe target capacity of pay-as-you-go instances specified by the PayAsYouGoTargetCapacity parameter\nThe target capacity of preemptible instances specified by the SpotTargetCapacity parameter\nThe supplemental capacity besides PayAsYouGoTargetCapacity and SpotTargetCapacity"
},
"AutoProvisioningGroupName": {
"Type": "String",
"Description": "The name of the auto provisioning group to be created. It must be 2 to 128 characters\nin length. It must start with a letter but cannot start with http:// or https://.\nIt can contain letters, digits, colons (:), underscores (_), and hyphens (-)."
},
"Description": {
"Type": "String",
"Description": "The description of the auto provisioning group."
},
"ExcessCapacityTerminationPolicy": {
"Type": "String",
"Description": "The shutdown policy for excess preemptible instances followed when the capacity of\nthe auto provisioning group exceeds the target capacity. Valid values:\nno-termination: Excess preemptible instances are not shut down.\ntermination: Excess preemptible instances are to be shut down. The action to be performed on these\nshutdown instances is specified by the SpotInstanceInterruptionBehavior parameter.\nDefault value: no-termination",
"AllowedValues": [
"no-termination",
"termination"
]
},
"LaunchTemplateConfig": {
"Type": "Json",
"Description": ""
},
"LaunchTemplateId": {
"Type": "String",
"Description": "The ID of the instance launch template associated with the auto provisioning group.\nYou can call the DescribeLaunchTemplates operation to query available instance launch templates.\nAn auto provisioning group can be associated with only one instance launch template.\nBut you can configure multiple extended configurations for the launch template through\nthe LaunchTemplateConfig parameter."
},
"CheckExecutionStatus": {
"Type": "Boolean",
"Description": "Whether check execution status. If set true, ROS will check the state of AutoProvisioningGroup to be fulfilled. Otherwise ROS will regard AutoProvisioningGroup create failed.",
"AllowedValues": [
"True",
"true",
"False",
"false"
]
},
"PayAsYouGoTargetCapacity": {
"Type": "String",
"Description": "The target capacity of pay-as-you-go instances in the auto provisioning group."
},
"AutoProvisioningGroupType": {
"Type": "String",
"Description": "The type of the auto provisioning group. Valid values:\nrequest: One-time delivery. After the auto provisioning group is started, it only attempts\nto create an instance cluster once. If the cluster fails to be created, the group\ndoes not try again.\nmaintain: The continuous delivery and maintain capacity type. After the auto provisioning group\nis started, it continuously attempts to create and maintain the instance cluster.\nThe auto provisioning group compares the real-time and target capacity of the cluster.\nIf the cluster does not meet the target capacity, the group will create instances\nuntil the cluster meets the target capacity.\nDefault value: maintain",
"AllowedValues": [
"maintain",
"request"
]
},
"SpotInstanceInterruptionBehavior": {
"Type": "String",
"Description": "The default behavior after preemptible instances are shut down. Value values:\nstop: stops preemptible instances.\nterminate: releases preemptible instances.\nDefault value: stop",
"AllowedValues": [
"stop",
"terminate"
]
},
"ValidUntil": {
"Type": "String",
"Description": "The time when the auto provisioning group expires. The period of time between this\npoint in time and the point in time specified by the ValidFrom parameter is the effective time period of the auto provisioning group.\nBy default, an auto provisioning group never expires."
},
"TerminateInstancesWithExpiration": {
"Type": "Boolean",
"Description": "The shutdown policy for preemptible instances when the auto provisioning group expires.\nValid values:\ntrue: shuts down preemptible instances. The action to be performed on these shutdown instances\nis specified by the SpotInstanceInterruptionBehavior parameter.\nfalse: does not shut down preemptible instances.\nDefault: false",
"AllowedValues": [
"True",
"true",
"False",
"false"
]
},
"DefaultTargetCapacityType": {
"Type": "String",
"Description": "The type of supplemental instances. When the total value of PayAsYouGoTargetCapacity and SpotTargetCapacity is smaller than the value of TotalTargetCapacity, the auto provisioning group will create instances of the specified type to meet\nthe capacity requirements. Valid values:\nPayAsYouGo: Pay-as-you-go instances.\nSpot: Preemptible instances.\nDefault value: Spot",
"AllowedValues": [
"PayAsYouGo",
"Spot"
]
},
"LaunchConfiguration": {
"Type": "Json",
"Description": ""
},
"SpotInstancePoolsToUseCount": {
"Type": "Number",
"Description": "This parameter takes effect when the SpotAllocationStrategy parameter is set to lowest-price. The auto provisioning group selects instance types of the lowest cost to create\ninstances."
},
"SpotTargetCapacity": {
"Type": "String",
"Description": "The target capacity of preemptible instances in the auto provisioning group."
},
"LaunchTemplateVersion": {
"Type": "String",
"Description": "The version of the instance launch template associated with the auto provisioning\ngroup. You can call the DescribeLaunchTemplateVersions operation to query the versions of available instance launch templates."
},
"ValidFrom": {
"Type": "String",
"Description": "The time when the auto provisioning group is started. The period of time between this\npoint in time and the point in time specified by the ValidUntil parameter is the effective time period of the auto provisioning group.\nBy default, an auto provisioning group is immediately started after creation."
},
"MaxSpotPrice": {
"Type": "Number",
"Description": "The global maximum price for preemptible instances in the auto provisioning group.\nIf both the MaxSpotPrice and LaunchTemplateConfig.N.MaxPrice parameters are specified, the maximum price is the lower value of the two."
},
"SpotAllocationStrategy": {
"Type": "String",
"Description": "The scale-out policy for preemptible instances. Valid values:\nlowest-price: The cost optimization policy the auto provisioning group follows to select instance\ntypes of the lowest cost to create instances.\ndiversified: The distribution balancing policy the auto provisioning group follows to evenly create\ninstances across zones specified in multiple extended template configurations.\nDefault value: lowest-price",
"AllowedValues": [
"diversified",
"lowest-price"
]
},
"TerminateInstances": {
"Type": "Boolean",
"Description": "Specifies whether to release instances of the auto provisioning group. Valid values:\ntrue\nfalse\nDefault: false",
"AllowedValues": [
"True",
"true",
"False",
"false"
]
},
"PayAsYouGoAllocationStrategy": {
"Type": "String",
"Description": "The scale-out policy for pay-as-you-go instances. Valid values:\nlowest-price: The cost optimization policy the auto provisioning group follows to select instance\ntypes of the lowest cost to create instances.\nprioritized: The priority-based policy the auto provisioning group follows to create instances.\nThe priority of an instance type is specified by the LaunchTemplateConfig.N.Priority parameter.\nDefault value: lowest-price",
"AllowedValues": [
"lowest-price",
"prioritized"
]
}
},
"Resources": {
"AutoProvisioningGroup": {
"Type": "ALIYUN::ECS::AutoProvisioningGroup",
"Properties": {
"TotalTargetCapacity": {
"Ref": "TotalTargetCapacity"
},
"AutoProvisioningGroupName": {
"Ref": "AutoProvisioningGroupName"
},
"Description": {
"Ref": "Description"
},
"ExcessCapacityTerminationPolicy": {
"Ref": "ExcessCapacityTerminationPolicy"
},
"LaunchTemplateConfig": {
"Ref": "LaunchTemplateConfig"
},
"LaunchTemplateId": {
"Ref": "LaunchTemplateId"
},
"CheckExecutionStatus": {
"Ref": "CheckExecutionStatus"
},
"PayAsYouGoTargetCapacity": {
"Ref": "PayAsYouGoTargetCapacity"
},
"AutoProvisioningGroupType": {
"Ref": "AutoProvisioningGroupType"
},
"SpotInstanceInterruptionBehavior": {
"Ref": "SpotInstanceInterruptionBehavior"
},
"ValidUntil": {
"Ref": "ValidUntil"
},
"TerminateInstancesWithExpiration": {
"Ref": "TerminateInstancesWithExpiration"
},
"DefaultTargetCapacityType": {
"Ref": "DefaultTargetCapacityType"
},
"LaunchConfiguration": {
"Ref": "LaunchConfiguration"
},
"SpotInstancePoolsToUseCount": {
"Ref": "SpotInstancePoolsToUseCount"
},
"SpotTargetCapacity": {
"Ref": "SpotTargetCapacity"
},
"LaunchTemplateVersion": {
"Ref": "LaunchTemplateVersion"
},
"ValidFrom": {
"Ref": "ValidFrom"
},
"MaxSpotPrice": {
"Ref": "MaxSpotPrice"
},
"SpotAllocationStrategy": {
"Ref": "SpotAllocationStrategy"
},
"TerminateInstances": {
"Ref": "TerminateInstances"
},
"PayAsYouGoAllocationStrategy": {
"Ref": "PayAsYouGoAllocationStrategy"
}
}
}
},
"Outputs": {
"AutoProvisioningGroupName": {
"Description": "The name of the auto provisioning group.",
"Value": {
"Fn::GetAtt": [
"AutoProvisioningGroup",
"AutoProvisioningGroupName"
]
}
},
"AutoProvisioningGroupId": {
"Description": "The ID of the auto provisioning group.",
"Value": {
"Fn::GetAtt": [
"AutoProvisioningGroup",
"AutoProvisioningGroupId"
]
}
}
}
}
YAML
format
ROSTemplateFormatVersion: '2015-09-01'
Parameters:
AutoProvisioningGroupName:
Description: 'The name of the auto provisioning group to be created. It must be
2 to 128 characters
in length. It must start with a letter but cannot start with http:// or https://.
It can contain letters, digits, colons (:), underscores (_), and hyphens (-).'
Type: String
AutoProvisioningGroupType:
AllowedValues:
- maintain
- request
Description: 'The type of the auto provisioning group. Valid values:
request: One-time delivery. After the auto provisioning group is started, it
only attempts
to create an instance cluster once. If the cluster fails to be created, the
group
does not try again.
maintain: The continuous delivery and maintain capacity type. After the auto
provisioning group
is started, it continuously attempts to create and maintain the instance cluster.
The auto provisioning group compares the real-time and target capacity of the
cluster.
If the cluster does not meet the target capacity, the group will create instances
until the cluster meets the target capacity.
Default value: maintain'
Type: String
CheckExecutionStatus:
AllowedValues:
- 'True'
- 'true'
- 'False'
- 'false'
Description: Whether check execution status. If set true, ROS will check the state
of AutoProvisioningGroup to be fulfilled. Otherwise ROS will regard AutoProvisioningGroup
create failed.
Type: Boolean
DefaultTargetCapacityType:
AllowedValues:
- PayAsYouGo
- Spot
Description: 'The type of supplemental instances. When the total value of PayAsYouGoTargetCapacity
and SpotTargetCapacity is smaller than the value of TotalTargetCapacity, the
auto provisioning group will create instances of the specified type to meet
the capacity requirements. Valid values:
PayAsYouGo: Pay-as-you-go instances.
Spot: Preemptible instances.
Default value: Spot'
Type: String
Description:
Description: The description of the auto provisioning group.
Type: String
ExcessCapacityTerminationPolicy:
AllowedValues:
- no-termination
- termination
Description: 'The shutdown policy for excess preemptible instances followed when
the capacity of
the auto provisioning group exceeds the target capacity. Valid values:
no-termination: Excess preemptible instances are not shut down.
termination: Excess preemptible instances are to be shut down. The action to
be performed on these
shutdown instances is specified by the SpotInstanceInterruptionBehavior parameter.
Default value: no-termination'
Type: String
LaunchConfiguration:
Description: ''
Type: Json
LaunchTemplateConfig:
Description: ''
Type: Json
LaunchTemplateId:
Description: 'The ID of the instance launch template associated with the auto
provisioning group.
You can call the DescribeLaunchTemplates operation to query available instance
launch templates.
An auto provisioning group can be associated with only one instance launch template.
But you can configure multiple extended configurations for the launch template
through
the LaunchTemplateConfig parameter.'
Type: String
LaunchTemplateVersion:
Description: 'The version of the instance launch template associated with the
auto provisioning
group. You can call the DescribeLaunchTemplateVersions operation to query the
versions of available instance launch templates.'
Type: String
MaxSpotPrice:
Description: 'The global maximum price for preemptible instances in the auto provisioning
group.
If both the MaxSpotPrice and LaunchTemplateConfig.N.MaxPrice parameters are
specified, the maximum price is the lower value of the two.'
Type: Number
PayAsYouGoAllocationStrategy:
AllowedValues:
- lowest-price
- prioritized
Description: 'The scale-out policy for pay-as-you-go instances. Valid values:
lowest-price: The cost optimization policy the auto provisioning group follows
to select instance
types of the lowest cost to create instances.
prioritized: The priority-based policy the auto provisioning group follows to
create instances.
The priority of an instance type is specified by the LaunchTemplateConfig.N.Priority
parameter.
Default value: lowest-price'
Type: String
PayAsYouGoTargetCapacity:
Description: The target capacity of pay-as-you-go instances in the auto provisioning
group.
Type: String
SpotAllocationStrategy:
AllowedValues:
- diversified
- lowest-price
Description: 'The scale-out policy for preemptible instances. Valid values:
lowest-price: The cost optimization policy the auto provisioning group follows
to select instance
types of the lowest cost to create instances.
diversified: The distribution balancing policy the auto provisioning group follows
to evenly create
instances across zones specified in multiple extended template configurations.
Default value: lowest-price'
Type: String
SpotInstanceInterruptionBehavior:
AllowedValues:
- stop
- terminate
Description: 'The default behavior after preemptible instances are shut down.
Value values:
stop: stops preemptible instances.
terminate: releases preemptible instances.
Default value: stop'
Type: String
SpotInstancePoolsToUseCount:
Description: 'This parameter takes effect when the SpotAllocationStrategy parameter
is set to lowest-price. The auto provisioning group selects instance types of
the lowest cost to create
instances.'
Type: Number
SpotTargetCapacity:
Description: The target capacity of preemptible instances in the auto provisioning
group.
Type: String
TerminateInstances:
AllowedValues:
- 'True'
- 'true'
- 'False'
- 'false'
Description: 'Specifies whether to release instances of the auto provisioning
group. Valid values:
true
false
Default: false'
Type: Boolean
TerminateInstancesWithExpiration:
AllowedValues:
- 'True'
- 'true'
- 'False'
- 'false'
Description: 'The shutdown policy for preemptible instances when the auto provisioning
group expires.
Valid values:
true: shuts down preemptible instances. The action to be performed on these
shutdown instances
is specified by the SpotInstanceInterruptionBehavior parameter.
false: does not shut down preemptible instances.
Default: false'
Type: Boolean
TotalTargetCapacity:
Description: 'The total target capacity of the auto provisioning group. The target
capacity consists
of the following three parts:
The target capacity of pay-as-you-go instances specified by the PayAsYouGoTargetCapacity
parameter
The target capacity of preemptible instances specified by the SpotTargetCapacity
parameter
The supplemental capacity besides PayAsYouGoTargetCapacity and SpotTargetCapacity'
Type: String
ValidFrom:
Description: 'The time when the auto provisioning group is started. The period
of time between this
point in time and the point in time specified by the ValidUntil parameter is
the effective time period of the auto provisioning group.
By default, an auto provisioning group is immediately started after creation.'
Type: String
ValidUntil:
Description: 'The time when the auto provisioning group expires. The period of
time between this
point in time and the point in time specified by the ValidFrom parameter is
the effective time period of the auto provisioning group.
By default, an auto provisioning group never expires.'
Type: String
Resources:
AutoProvisioningGroup:
Properties:
AutoProvisioningGroupName:
Ref: AutoProvisioningGroupName
AutoProvisioningGroupType:
Ref: AutoProvisioningGroupType
CheckExecutionStatus:
Ref: CheckExecutionStatus
DefaultTargetCapacityType:
Ref: DefaultTargetCapacityType
Description:
Ref: Description
ExcessCapacityTerminationPolicy:
Ref: ExcessCapacityTerminationPolicy
LaunchConfiguration:
Ref: LaunchConfiguration
LaunchTemplateConfig:
Ref: LaunchTemplateConfig
LaunchTemplateId:
Ref: LaunchTemplateId
LaunchTemplateVersion:
Ref: LaunchTemplateVersion
MaxSpotPrice:
Ref: MaxSpotPrice
PayAsYouGoAllocationStrategy:
Ref: PayAsYouGoAllocationStrategy
PayAsYouGoTargetCapacity:
Ref: PayAsYouGoTargetCapacity
SpotAllocationStrategy:
Ref: SpotAllocationStrategy
SpotInstanceInterruptionBehavior:
Ref: SpotInstanceInterruptionBehavior
SpotInstancePoolsToUseCount:
Ref: SpotInstancePoolsToUseCount
SpotTargetCapacity:
Ref: SpotTargetCapacity
TerminateInstances:
Ref: TerminateInstances
TerminateInstancesWithExpiration:
Ref: TerminateInstancesWithExpiration
TotalTargetCapacity:
Ref: TotalTargetCapacity
ValidFrom:
Ref: ValidFrom
ValidUntil:
Ref: ValidUntil
Type: ALIYUN::ECS::AutoProvisioningGroup
Outputs:
AutoProvisioningGroupId:
Description: The ID of the auto provisioning group.
Value:
Fn::GetAtt:
- AutoProvisioningGroup
- AutoProvisioningGroupId
AutoProvisioningGroupName:
Description: The name of the auto provisioning group.
Value:
Fn::GetAtt:
- AutoProvisioningGroup
- AutoProvisioningGroupName
For more examples, visit LaunchTemplate.json and LaunchTemplate.yml. In the examples, the ALIYUN::ECS::LaunchTemplate and ALIYUN::ECS::AutoProvisioningGroup resource types are involved.