ALIYUN::ECS::InstanceGroupClone类型用于克隆一组ECS实例。
语法
{
"Type": "ALIYUN::ECS::InstanceGroupClone",
"Properties": {
"BackendServerWeight": Integer,
"SystemDiskAutoSnapshotPolicyId": String,
"DiskMappings": List,
"Period": Number,
"LaunchTemplateName": String,
"RamRoleName": String,
"ResourceGroupId": String,
"KeyPairName": String,
"SystemDiskDiskName": String,
"PeriodUnit": String,
"Description": String,
"Tags": List,
"AutoRenewPeriod": Number,
"ImageId": String,
"AutoRenew": String,
"SpotStrategy": String,
"SourceInstanceId": String,
"EniMappings": List,
"Password": String,
"PasswordInherit": Boolean,
"MaxAmount": Integer,
"AutoReleaseTime": String,
"SystemDiskCategory": String,
"LoadBalancerIdToAttach": String,
"LaunchTemplateId": String,
"LaunchTemplateVersion": String,
"ZoneId": String,
"InternetMaxBandwidthOut": Integer,
"InstanceName": String,
"DeletionProtection": Boolean,
"DeploymentSetId": String,
"Ipv6AddressCount": Integer,
"SecurityGroupId": String,
"SecurityGroupIds": List,
"SpotPriceLimit": String,
"HpcClusterId": String,
"SystemDiskDescription": String,
"Ipv6Addresses": List,
"SystemDiskProvisionedIops": Integer,
"SystemDiskBurstingEnabled": Boolean
}
}
属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
---|---|---|---|---|---|
ResourceGroupId | String | 否 | 否 | 实例所在的资源组ID。 | 无 |
HpcClusterId | String | 否 | 是 | 实例所属的EHPC集群ID。 | 无 |
SourceInstanceId | String | 是 | 否 | 需要克隆的ECS实例ID。 | 克隆实例规格、镜像、带宽收费方式、带宽限制、网络类型等。如果源ECS实例加入多个安全组,新的安全组会加入源实例的第一个安全组。 |
MaxAmount | Integer | 是 | 是 | 一次性创建ECS实例的个数。 | 取值范围:1~100。 |
BackendServerWeight | Integer | 否 | 否 | ECS实例在负载均衡器实例中的权重。 | 取值范围:0~100。
默认值:100。 |
LoadBalancerIdToAttach | String | 否 | 否 | ECS实例将加入到的负载均衡实例的ID。 | 无 |
Description | String | 否 | 是 | 描述信息。 | 最长256个字符。 |
ImageId | String | 否 | 是 | 用于启动ECS实例的镜像ID,包括公共镜像、自定义镜像和云市场镜像。 | 支持通过模糊的方式指定公共镜像ID,无需指定一个完整的公共镜像ID。例如:
|
InternetMaxBandwidthOut | Integer | 否 | 否 | 公网最大出网带宽。 | 单位:Mbps。
取值范围:
|
SecurityGroupId | String | 否 | 否 | 实例所属的安全组。 | 不支持同时指定SecurityGroupId和SecurityGroupIds。 |
SecurityGroupIds | List | 否 | 否 | 实例所属的安全组列表。 |
更多信息,请参见安全组。 不支持同时指定SecurityGroupId和SecurityGroupIds。 |
InstanceName | String | 否 | 否 | 实例名称。 | 最长为128个字符。可包含英文字母、汉字、数字、下划线(_)、半角句号(.)和短划线(-)。 |
Password | String | 否 | 是 | ECS实例登录密码。 | 长度为8~30个字符。必须同时包含英文字母、数字和特殊字符,支持特殊字符:( ) ‘ ~ ! @ # $ % ^ & * - + = | { } [ ] : ; ‘ < > , . ? / - 。
如果指定此参数,请使用HTTPS协议调用API,以避免密码泄露。 |
PasswordInherit | Boolean | 否 | 否 | 是否使用镜像预设的密码。 | 取值:
说明 使用该参数时,Password参数必须为空,同时您需要确保使用的镜像已经设置了密码。
|
DiskMappings | List | 否 | 是 | 需要挂载的磁盘。 | 最多支持16块磁盘。
更多信息,请参见DiskMappings属性。 |
Period | Number | 否 | 是 | 付费周期。 | 取值:1~9、12、24、36。
单位:月。 当InstanceChargeType取值为PrePaid时,此参数为必选参数;当InstanceChargeType取值为PostPaid时,此参数为可选参数。 |
Tags | List | 否 | 是 | 用户自定义标签。 | 最多支持20个标签,格式:[{"Key": "tagKey", "Value": "tagValue"},{"Key": "tagKey2", "Value": "tagValue2"}] 。
更多信息,请参见Tags属性。 |
ZoneId | String | 否 | 否 | 可用区ID。 | 无 |
KeyPairName | String | 否 | 是 | ECS实例绑定的密钥对名称。 | 如果是Windows ECS实例,则忽略该参数。如果已填写KeyPairName,Password的内容仍会被设置到实例中,但是Linux系统中的密码登录方式会被禁止。 |
RamRoleName | String | 否 | 是 | 实例RAM角色名称。 | 您可以调用ListRoles查询实例RAM角色名称,更多信息,请参见CreateRole和ListRoles。 |
SpotPriceLimit | String | 否 | 否 | 实例的每小时最高价格。 | 最大支持3位小数。当SpotStrategy为SpotWithPriceLimit时,SpotPriceLimit生效。 |
SpotStrategy | String | 否 | 否 | 后付费实例的竞价策略。 | 当InstanceChargeType取值为PostPaid时,此参数为必选参数。
取值:
|
SystemDiskDiskName | String | 否 | 是 | 系统盘名称。 | 长度为2~128个字符。必须以英文字母或汉字开头,不能以http:// 或https:// 开头。可包含数字、半角冒号(:)、下划线(_)和短划线(-)。
|
PeriodUnit | String | 否 | 是 | 购买资源的时长。 | 取值:
|
AutoRenewPeriod | Number | 否 | 是 | 每次自动续费的时长。 | 当AutoRenew为true时,该参数为必填参数。
取值:
|
AutoRenew | String | 否 | 是 | 是否自动续费。 | 取值:
|
EniMappings | List | 否 | 是 | 附加到实例的弹性网卡。 | 附加到实例的弹性网卡个数最多为1个。
更多信息,请参见EniMappings属性。 |
AutoReleaseTime | String | 否 | 否 | ECS实例自动释放的时间。 | 时间格式必须遵守ISO8601规范,例如:yyyy-MM-ddTHH:mm:ssZ 。释放时间不能超过三年。
|
SystemDiskCategory | String | 否 | 是 | 系统盘类型。 | 取值:
|
SystemDiskProvisionedIops | Integer | 否 | 是 | 系统盘预配的 IOPS。 | 无 |
SystemDiskBurstingEnabled | Boolean | 否 | 是 | 系统盘是否启用突发。 | 取值:
|
LaunchTemplateName | String | 否 | 是 | 启动模板的名称。 | 无 |
LaunchTemplateVersion | String | 否 | 是 | 启动模板的版本。 | 如果没有指定版本,则使用默认版本。 |
LaunchTemplateId | String | 否 | 是 | 启动模板ID。 | 无 |
SystemDiskDescription | String | 否 | 是 | 系统盘描述信息。 | 无 |
DeletionProtection | Boolean | 否 | 否 | 实例释放保护属性,指定是否支持通过控制台或DeleteInstance接口释放实例。 | 取值:
|
DeploymentSetId | String | 否 | 是 | 部署集ID。 | 无 |
Ipv6AddressCount | Integer | 否 | 是 | 为弹性网卡指定随机生成的IPv6地址数量。 | 不能同时指定Ipv6Addresses和Ipv6AddressCount。 |
Ipv6Addresses | List | 否 | 是 | 为弹性网卡指定的一个或多个IPv6地址。 | 列表最大长度为1。属性的更改不影响现有实例。不能同时指定Ipv6Addresses和Ipv6AddressCount。 |
SystemDiskAutoSnapshotPolicyId | String | 否 | 是 | 系统盘自动快照策略ID。 | 无 |
DiskMappings语法
"DiskMappings": [
{
"Category": String,
"DiskName": String,
"Description": String,
"Encrypted": String,
"KMSKeyId": String,
"Device": String,
"SnapshotId": String,
"Size": String,
"PerformanceLevel": String,
"AutoSnapshotPolicyId": String,
"ProvisionedIops": Integer,
"BurstingEnabled": Boolean
}
]
DiskMappings属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
---|---|---|---|---|---|
Size | String | 是 | 否 | 数据盘大小。 | 单位:GB。 |
Category | String | 否 | 否 | 数据盘的类型。 | 取值:
|
DiskName | String | 否 | 否 | 数据盘的名称。 | 最长128个字符。可包含英文字母、汉字、数字、下划线(_)、半角句号(.)和短划线(-)。 |
Description | String | 否 | 否 | 数据盘的描述。 | 长度为2~256个字符。不能以http:// 或https:// 开头。
|
Device | String | 否 | 否 | 数据盘在ECS中的名称。 | 取值示例:/dev/xvd[a-z] 。
|
SnapshotId | String | 否 | 否 | 快照ID。 | 无 |
Encrypted | String | 否 | 否 | 数据盘是否加密。 | 取值:
|
KMSKeyId | String | 否 | 否 | 数据盘对应的KMS密钥ID。 | 无 |
AutoSnapshotPolicyId | String | 否 | 否 | 自动快照策略ID。 | 无 |
PerformanceLevel | String | 否 | 否 | 创建ESSD云盘作为系统盘使用时,设置云盘的性能等级。 |
取值:
|
ProvisionedIops | Integer | 否 | 否 | 预配的IOPS。 | 无 |
BurstingEnabled | Boolean | 否 | 否 | 是否启用突发。 | 取值:
|
EniMappings语法
"EniMappings": [
{
"SecurityGroupId": String,
"VSwitchId": String,
"Description": String,
"NetworkInterfaceName": String,
"PrimaryIpAddress": String
}
]
EniMappings属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
---|---|---|---|---|---|
SecurityGroupId | String | 是 | 是 | 弹性网卡所属的安全组ID。 | 无 |
VSwitchId | String | 是 | 否 | 弹性网卡所属的交换机ID。 | 无 |
Description | String | 否 | 是 | 弹性网卡的描述。 | 长度为2~256个字符。不能以http:// 或https:// 开头。
|
NetworkInterfaceName | String | 否 | 是 | 弹性网卡名称。 | 无 |
PrimaryIpAddress | String | 否 | 否 | 弹性网卡的主IP地址。 | 无 |
Tags语法
"Tags": [
{
"Value": String,
"Key": String
}
]
Tags属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
---|---|---|---|---|---|
Key | String | 是 | 否 | 标签键。 | 长度为1~128个字符,不能以aliyun 和acs: 开头,不能包含http:// 或https:// 。
|
Value | String | 否 | 否 | 标签值。 | 长度为0~128个字符,不能以aliyun 和acs: 开头,不能包含http:// 或https:// 。
|
返回值
Fn::GetAtt
- InstanceIds:实例ID,是访问实例的唯一标识。由系统生成,全局唯一。
- PrivateIps:VPC类型实例的私网IP列表。当NetworkType为
vpc
时,此参数生效。例如:一个带有格式的JSON Array: [“172.16.XX.XX”, “172.16.XX.XX”, … “172.16.XX.XX”],最多100个IP,用半角逗号(,)隔开。 - InnerIps:Classic类型实例的私网IP列表。当NetworkType为
classic
时,此参数生效。例如:一个带有格式的JSON Array: [“10.1.XX.XX”, “10.1.XX.XX”, … “10.1.XX.XX”],最多100个IP,用半角逗号(,)隔开。 - PublicIps:Classic类型实例的公网IP列表。当NetworkType为
classic
时,此参数生效。例如:一个带有格式的JSON Array: [“42.1.XX.XX”, “42.1.XX.XX”, … “42.1.XX.XX”],最多100个IP,用半角逗号(,)隔开。 - HostNames:所有实例的主机名称列表。
- OrderId:实例的订单ID列表。
- ZoneIds:可用区ID。
- Ipv6AddressIds:已创建ECS实例的IPv6地址ID列表。注意:返回类型是两层列表。如果实例没有任何IPv6地址,则列表中相应位置的元素为空。如果所有实例都没有任何IP地址,则将返回null。
- Ipv6Addresses:已创建ECS实例的IPv6地址列表。注意:返回类型是两层列表。如果实例没有任何IPv6地址,则列表中相应位置的元素为null。如果所有实例都没有任何IP地址,则将返回null。
示例
JSON
格式
{
"ROSTemplateFormatVersion": "2015-09-01",
"Description": "According the existing ECS instance, clone a set of ECS instanes with the same configuration(InstanceType, ImageId, InternetChargeType, InternetMaxBandwidthOut, system disk, data disk configurations, VPC properties). The user only needs to specify SourceInstanceId.",
"Parameters": {
"SourceInstanceId": {
"Type": "String",
"Description": {
"en": "The source ECS instance ID to be cloned",
"zh-cn": "需要克隆的ECS实例ID"
},
"Label": {
"zh-cn": "源实例ID",
"en": "Source Instance ID"
}
},
"InstanceName": {
"Type": "String",
"Description": {
"en": "[2, 128] alphanumeric letters, underline, dot or hyphen",
"zh-cn": "实例名称。长度为2~128个字符,可包含英文、汉字、数字、下划线(_)、半角句号(.)和短划线(-)。"
},
"ConstraintDescription": {
"en": "[2, 128] characters, consists of uppercase letter, lowercase letter, number or special characters.",
"zh-cn": "长度为2~128个字符,可包含英文字母、数字或特殊字符。"
},
"Label": {
"zh-cn": "实例名称",
"en": "Instance Name"
},
"Default": "ClonedECS",
"MaxLength": 128,
"MinLength": 2
},
"MaxAmount": {
"Type": "Number",
"Description": {
"en": "The maximum of ECS instances, must be greater than or equal to the minimum.",
"zh-cn": "一次性创建ECS实例的最大个数,必须大于或等于一次性创建ECS实例的最小个数。"
},
"ConstraintDescription": {
"zh-cn": "1~100内的整数",
"en": "An integer within [1, 100]"
},
"Label": {
"zh-cn": "最大个数",
"en": "The Maximum of ECS Instances"
},
"MaxValue": 100,
"MinValue": 1,
"Default": 1
},
"Password": {
"Type": "String",
"Description": {
"en": "[8, 30] characters, consists of uppercase letter, lowercase letter, number or special characters such as ( ) ` ~ ! @ # $ % ^ * - + = | { } [ ] : ; ‘ , . ? / ",
"zh-cn": "长度为8~30个字符。必须同时包含大写英文字母、小写英文字母、数字和特殊字符中的三项,支持的特殊字符为:( ) ` ~ ! @ # $ % ^ * - + = | { } [ ] : ; ‘ , . ? /。"
},
"ConstraintDescription": {
"en": "Length 8-30, must contain upper case letters, lower case letters, Numbers, special symbols three; special characters include: ()`~!@#$%^*_-+=|{}[]:;',.?/",
"zh-cn": "长度为8~30个字符。必须同时包含大写英文字母、小写英文字母、数字和特殊字符中的三项,支持的特殊字符为()`~!@#$%^*_-+=|{}[]:;' ,.?/。"
},
"Label": {
"zh-cn": "ECS实例密码",
"en": "ECS Instance Password"
},
"MaxLength": 30,
"MinLength": 8,
"AllowedPattern": "[a-zA-Z0-9-\\(\\)\\`\\~\\!@\\#\\$%\\^\\*-+=\\|\\{\\}\\[\\]\\:\\;\\‘\\,\\.\\?\\/]*",
"NoEcho": true
}
},
"Metadata": {
"ALIYUN::ROS::Interface": {
"ParameterGroups": [
{
"Parameters": [
"InstanceName",
"SourceInstanceId",
"MaxAmount",
"Password"
],
"Label": {
"default": "ECS"
}
}
],
"TemplateTags": [
"acs:example:弹性计算:指定SourceInstanceId克隆出相同配置的一组ECS实例。"
]
}
},
"Resources": {
"ECSInstanceGroup": {
"Type": "ALIYUN::ECS::InstanceGroupClone",
"Properties": {
"SourceInstanceId": {
"Ref": "SourceInstanceId"
},
"MaxAmount": {
"Ref": "MaxAmount"
},
"Password": {
"Ref": "Password"
}
}
}
},
"Outputs": {
"InstanceIds": {
"Description": "The instance ID list of created ecs instance",
"Value": {
"Fn::GetAtt": [
"ECSInstanceGroup",
"InstanceIds"
]
}
},
"PublicIps": {
"Description": "Public IP address list of created ecs instance.",
"Value": {
"Fn::GetAtt": [
"ECSInstanceGroup",
"PublicIps"
]
}
},
"ZoneIds": {
"Description": "Zone ID of created instance.",
"Value": {
"Fn::GetAtt": [
"ECSInstanceGroup",
"ZoneIds"
]
}
}
}
}
更多示例,请参见创建一组相同配置的ECS实例、克隆一个ECS实例、新建云助手命令和为一台或多台ECS实例触发一条云助手命令的组合示例:JSON示例和YAML示例。