ALIYUN::ECS::InstanceGroup类型用于创建一组相同配置的ECS实例。

语法

{
  "Type": "ALIYUN::ECS::InstanceGroup",
  "Properties": {
    "DedicatedHostId": String,
    "ResourceGroupId": String,
    "SystemDiskDescription": String,
    "InstanceChargeType": String,
    "RamRoleName": String,
    "SystemDiskPerformanceLevel": String,
    "ImageId": String,
    "SystemDiskDiskName": String,
    "Tags": List,
    "HostName": String,
    "LaunchTemplateName": String,
    "VSwitchId": String,
    "Period": Number,
    "ZoneIds": List,
    "LaunchTemplateId": String,
    "DeletionProtection": "Boolean",
    "SecurityGroupIds": List,
    "SecurityEnhancementStrategy": String,
    "InternetChargeType": String,
    "InstanceName": String,
    "DeploymentSetId": String,
    "InternetMaxBandwidthOut": Integer,
    "VpcId": String,
    "LaunchTemplateVersion": String,
    "PeriodUnit": String,
    "AutoReleaseTime": String,
    "PrivateIpAddress": String,
    "Description": String,
    "DiskMappings": List,
    "SystemDiskSize": Number,
    "UserData": String,
    "AutoRenew": String,
    "Ipv6Addresses": List,
    "MaxAmount": Integer,
    "SystemDiskAutoSnapshotPolicyId": String,
    "Ipv6AddressCount": Integer,
    "NetworkType": String,
    "SpotPriceLimit": String,
    "InstanceType": String,
    "AllocatePublicIP": "Boolean",
    "SpotStrategy": String,
    "Password": String,
    "PasswordInherit": Boolean,
    "AutoRenewPeriod": Number,
    "KeyPairName": String,
    "IoOptimized": String,
    "ZoneId": String,
    "HpcClusterId": String,
    "SecurityGroupId": String,
    "SystemDiskCategory": String,
    "EniMappings": List,
    "SystemDiskProvisionedIops": Integer,
    "SystemDiskBurstingEnabled": Boolean,
    "SpotInterruptionBehavior": String,
    "SpotDuration": Integer
  }
}

属性

属性名称 类型 必须 允许更新 描述 约束
ResourceGroupId String 实例所在的资源组ID。
SpotInterruptionBehavior String 抢占实例中断模式。 目前仅支持Terminate(默认)直接释放实例。
SpotDuration Integer 抢占式实例的保留时长。 取值范围:0~6。

单位:小时。

取值:
  • 0:无保护期模式。
  • 2~6:正在邀测中,如需开通请提交工单。
  • 1(默认值)。
HpcClusterId String 实例所属的HPC集群ID。 更新该参数仅对新增ECS实例生效。
MaxAmount Integer 一次性创建ECS实例的个数。 取值范围:1~1000。
说明 当更新资源栈时,如果MaxAmount取值增加(或减少),将新增(或减少)对应数量的ECS实例。例如:MaxAmount取值从2增加为5,将新增3个ECS实例。
Description String 描述信息。 最长256个字符。
说明 更新该参数仅对新增ECS实例生效。
InstanceType String ECS实例规格。 更多信息,请参见实例规格族
ImageId String 用于启动ECS实例的镜像ID。包括公共镜像、自定义镜像和云市场镜像。 支持通过模糊的方式指定公共镜像ID,而不需要指定一个完整的公共镜像ID。例如:
  • 指定Ubuntu,最终会匹配ubuntu_16_0402_64_20G_alibase_20170818.vhd。
  • 指定ubuntu1432,最终会匹配ubuntu_14_0405_32_40G_alibase_20170711.vhd。
更多信息,请参见请求参数
SecurityGroupId String 新创建实例所属的安全组ID,同一个安全组内的实例之间可以互相访问。 不支持同时指定SecurityGroupId和SecurityGroupIds。
SecurityGroupIds List 新创建实例所属的安全组ID列表。 不支持同时指定SecurityGroupId和SecurityGroupIds。

更多信息,请参见安全组

SecurityEnhancementStrategy String 是否启用安全加固。 取值:
  • Active:启用安全加固,只对公共镜像生效。
  • Deactive:禁用安全加固,对所有镜像类型生效。
InstanceName String 实例名称。 最长为128个字符。可包含英文字母、汉字、数字、下划线(_)、半角句号(.)和短划线(-)。

通过name_prefix[begin_number,bits]name_suffix格式为各个ECS实例指定不同的实例名。更多信息,请参见请求参数

Password String ECS实例登录密码。 长度为8~30个字符。必须同时包含大写英文字母、小写英文字母、数字和特殊字符其中三项,支持的特殊字符为::( ) ` ~ ! @ # $ % ^ & * - + = | { } [ ] : ; ‘ < > , . ? /

如果指定Password参数,请使用HTTPS协议调用API,以免发生密码泄露。

PasswordInherit Boolean 是否使用镜像预设的密码。 取值:
  • true:使用。
  • false:不使用。
说明 使用该参数时,Password参数必须为空,同时您需要确保使用的镜像已经设置了密码。
ZoneIds List 可用区列表。
HostName String 主机名称。 长度最少2个字符。半角句号(.)和短划线(-)不能作为hostname的首尾字符,且不能连续使用。

更多信息,请参见请求参数

AllocatePublicIP Boolean 是否创建公网IP。 如果InternetMaxBandwidthOut为0,则不会创建公网IP。

取值:

  • true(默认值):创建。
  • false:不创建。
AutoReleaseTime String ECS实例自动释放的时间。 时间格式必须遵守ISO8601规范,例如"yyyy-MM-ddTHH:mm:ssZ"。释放时间不能超过三年。
PrivateIpAddress String 实例私网IP地址。 专有网络类型ECS实例设置私网IP地址时,必须从交换机的空闲网段中选择。
说明 如果设置PrivateIpAddress,MaxAmount取值只能为1。
DiskMappings List 为ECS实例创建的数据盘。 最多创建16块数据盘。

修改该参数,不会影响已创建的实例,新创建的实例会使用修改后的值。

更多信息,请参见DiskMappings属性

说明 更新该参数仅对新增ECS实例生效。
InternetChargeType String 公网访问带宽计费方式。 取值:
  • PayByBandwidth:按固定带宽计费。
  • PayByTraffic(默认值):按流量计费。
InternetMaxBandwidthOut Integer 公网出带宽最大值。

取值范围:0~100。

单位:Mbps。

默认值:0。

SystemDiskProvisionedIops Integer 系统盘预配的IOPS。
SystemDiskBurstingEnabled Boolean 系统盘是否启用突发。 取值:
  • true:启用。
  • false(默认值):禁用。
IoOptimized String 是否创建I/O优化实例。 取值:
  • none:非I/O优化。
  • optimized(默认值):I/O优化。
SystemDiskCategory String 系统盘类型。 取值:
  • cloud:普通云盘。
  • cloud_efficiency:高效云盘。
  • cloud_ssd:SSD云盘。
  • cloud_essd:ESSD云盘。
  • ephemeral_ssd:本地SSD盘。
说明 更新该参数仅对新增ECS实例生效。
SystemDiskDescription String 系统盘描述信息。 更新该参数仅对新增ECS实例生效。
SystemDiskDiskName String 系统盘名称。 更新该参数仅对新增ECS实例生效。
SystemDiskSize Number 系统盘大小。 取值范围:40~500。

单位:GB。

如果使用自定义镜像创建系统盘,需要保证系统盘大于自定义镜像大小。

Tags List 用户自定义标签。 最多支持20个标签,格式:[{"Key":"tagKey","Value":"tagValue"},{"Key":"tagKey2","Value":"tagValue2"}]

更多信息,请参见Tags属性

UserData String 创建ECS实例时传递的用户数据。 内容需要限制在16KB以内。无需用Base64转码,特殊字符需要使用转义符。
ZoneId String 可用区ID。
VpcId String 专有网络ID。
VSwitchId String 交换机ID。
KeyPairName String ECS实例绑定的密钥对名称。

如果是Windows ECS实例,则忽略该参数。默认为空。

如果已填写KeyPairName,Password的内容仍会被设置到实例中,但是Linux系统中的密码登录方式会被禁止。
说明 更新该参数仅对新增ECS实例生效。
RamRoleName String 实例RAM角色名称。 您可以调用ListRoles查询实例RAM角色名称,更多信息,请参见CreateRoleListRoles
SpotPriceLimit String 实例的每小时最高价格。 最大支持3位小数。当SpotStrategy为SpotWithPriceLimit时,该参数生效。
SpotStrategy String 后付费实例的竞价策略。

当InstanceChargeType为PostPaid时,该参数生效。

取值:
  • NoSpot(默认值):正常按量付费实例。
  • SpotWithPriceLimit:设置上限价格的竞价实例。
  • SpotAsPriceGo:系统自动出价,最高按量付费价格。
DedicatedHostId String 专有宿主机ID。
LaunchTemplateName String 启动模板名称。
PeriodUnit String 购买资源的时长周期。 取值:
  • Week:周。
  • Month(默认值):月。
说明 更新该参数仅对新增ECS实例生效。
AutoRenewPeriod Number 每次自动续费的时长。 当AutoRenew为True时,该参数为必填参数。

取值:

  • 1(默认值)
  • 2
  • 3
  • 6
  • 12
说明 更新该参数仅对新增ECS实例生效。
AutoRenew String 是否自动续费。

当InstanceChargeType为PrePaid时,该参数生效。

取值:
  • True:自动续费。
  • False(默认值):不自动续费。
说明 更新该参数仅对新增ECS实例生效。
InstanceChargeType String 实例的付费方式。 取值:
  • PrePaid:预付费,包年包月。
    说明 当取值为PrePaid时,您必须确认自己的账号支持余额支付/信用支付,否则将返回InvalidPayMethod错误消息提示。
  • PostPaid(默认值):按量付费。
说明 更新该参数仅对新增ECS实例生效。
EniMappings List 附加到实例的弹性网卡。 附加到实例的弹性网卡个数最多为1个。

更多信息,请参见EniMappings属性

LaunchTemplateId String 启动模板ID。
LaunchTemplateVersion String 启动模板的版本。 如果没有指定版本,则使用默认版本。
Period Number 购买资源的时长。 当InstanceChargeType为PrePaid时,该参数生效且为必选参数。

一旦指定了DedicatedHostId,则取值不能超过专有宿主机的订阅时长。

  • 当PeriodUnit为Week时,Period取值:1~4。
  • 当PeriodUnit为Month时,Period取值:1~9、12、24、36、48、60。
说明 更新该参数仅对新增ECS实例生效。
NetworkType String ECS实例网络类型。 取值:
  • vpc:专有网络。
  • classic(默认值):经典网络。
DeletionProtection Boolean 实例释放保护属性,指定是否支持通过控制台或DeleteInstance接口释放实例。 取值:
  • true:支持。
  • false:不支持。
DeploymentSetId String 部署集ID。 更新该参数仅对新增ECS实例生效。
Ipv6AddressCount Integer 为弹性网卡指定随机生成的IPv6地址数量。 不能同时指定Ipv6Addresses和Ipv6AddressCount。
说明 更新该参数仅对新增ECS实例生效。
Ipv6Addresses List 为弹性网卡指定IPv6地址。 最多指定一个IPv6地址。更改不影响现有实例。不能同时指定Ipv6Addresses和Ipv6AddressCount。
说明 更新该参数仅对新增ECS实例生效。
SystemDiskAutoSnapshotPolicyId String 系统盘自动快照策略ID。
SystemDiskPerformanceLevel String 创建ESSD云盘作为系统盘使用时,设置云盘的性能等级。 取值:
  • PL0:单盘最高随机读写IOPS为1万。
  • PL1(默认值):单盘最高随机读写IOPS为5万。
  • PL2:单盘最高随机读写IOPS为10万。
  • PL3:单盘最高随机读写IOPS为100万。
关于如何选择ESSD性能等级,请参见ESSD云盘

DiskMappings语法

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

DiskMappings属性

属性名称 类型 必须 允许更新 描述 约束
Size String 数据盘大小。 单位:GB。
Category String 数据盘的类型。 取值:
  • cloud:云盘。
  • cloud_efficiency:高效云盘。
  • cloud_ssd:SSD云盘。
  • cloud_essd:ESSD盘。
  • ephemeral_ssd:本地SSD盘。
对于I/O优化实例,默认值为cloud_efficiency。

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

DiskName String 数据盘的名称。 长度为2~128个字符。必须以英文字母或汉字开头,不能以http://https://开头。可包含英文字母、汉字、数字、下划线(_)、半角冒号(:)和短划线(-)。
Description String 数据盘的描述。 长度为2~256个字符。不能以http://https://开头。
Device String 挂载点。
说明 该参数即将停止使用,为提高兼容性,请尽量使用其他参数。
SnapshotId String 快照ID。
Encrypted String 数据盘是否加密。 取值:
  • true:加密。
  • false(默认值):不加密。
KMSKeyId String 数据盘对应的KMS密钥ID。
AutoSnapshotPolicyId String 自动快照策略ID。
PerformanceLevel String 创建ESSD云盘作为数据盘使用时,设置云盘的性能等级。 取值:
  • PL0:单盘最高随机读写IOPS为1万。
  • PL1(默认值):单盘最高随机读写IOPS为5万。
  • PL2:单盘最高随机读写IOPS为10万。
  • PL3:单盘最高随机读写IOPS为100万。
关于如何选择ESSD性能等级,请参见ESSD云盘
ProvisionedIops Integer 预配的IOPS。
BurstingEnabled Boolean 是否启用突发。 取值:
  • true:启用。
  • false(默认值):禁用。

Tags语法

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

Tags属性

属性名称 类型 必须 允许更新 描述 约束
Key String 标签键。 长度为1~128个字符,不能以aliyunacs:开头,不能包含http://https://
Value String 标签值。 长度为0~128个字符,不能以aliyunacs:开头,不能包含http://https://

EniMappings语法

"EniMappings": [
  {
    "SecurityGroupId": String,
    "VSwitchId": String,
    "Description": String,
    "NetworkInterfaceName": String,
    "PrimaryIpAddress": String
  }
]

EniMappings属性

属性名称 类型 必须 允许更新 描述 约束
SecurityGroupId String 安全组ID。 所属的安全组ID必须是同一个专有网络下的安全组。
VSwitchId String 交换机ID。
Description String 弹性网卡的描述信息。 长度为2~256个字符,不能以http://https://开头。
NetworkInterfaceName String 弹性网卡名称。 长度为2~128个字符。必须以英文字母或汉字开头,不能以http://https://开头。可包含英文字母、汉字、数字、半角冒号(:)、下划线(_)和短划线(-)。
PrimaryIpAddress String 弹性网卡的主私有IP地址。 指定的IP必须是在所属交换机的地址段内的空闲地址。

如果不指定IP,则默认随机分配该交换机中的空闲地址。

返回值

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地址,则列表中相应位置的元素为空。如果所有实例都没有任何IP地址,则将返回null。

示例

JSON格式

{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Description": "Creates VPC ECS instance",
  "Metadata": {
    "ALIYUN::ROS::Interface": {
      "ParameterGroups": [
        {
          "Parameters": [
            "VSwitchZoneId",
            "InstanceImageId",
            "InstanceType",
            "SystemDiskSize",
            "InstancePublicIP",
            "SystemDiskCategory",
            "InstancePassword"
          ],
          "Label": {
            "default": "ECS"
          }
        }
      ],
      "TemplateTags": [
        "Creates VPC ECS instance"
      ]
    }
  },
  "Parameters": {
    "SystemDiskCategory": {
      "Type": "String",
      "Label": {
        "en": "System Disk Type",
        "zh-cn": "系统盘类型"
      },
      "Description": {
        "en": "System Disk Type",
        "zh-cn": "系统盘类型"
      },
      "AssociationProperty": "ALIYUN::ECS::Disk::SystemDiskCategory",
      "AssociationPropertyMetadata": {
        "ZoneId": "VSwitchZoneId",
        "InstanceType": "InstanceType"
      }
    },
    "InstanceImageId": {
      "Type": "String",
      "AssociationProperty": "ALIYUN::ECS::Instance::ImageId",
      "Default": "centos_7",
      "Description": {
        "zh-cn": "镜像ID",
        "en": "Image ID"
      },
      "Label": {
        "zh-cn": "镜像",
        "en": "Image"
      }
    },
    "InstanceType": {
      "Type": "String",
      "Description": {
        "zh-cn": "填写vSwitch可用区下可使用的规格。",
        "en": "Fill in the specifications that can be used under the VSwitch availability zone."
      },
      "Label": {
        "zh-cn": "实例规格",
        "en": "Instance Type"
      },
      "AssociationProperty": "ALIYUN::ECS::Instance::InstanceType",
      "AssociationPropertyMetadata": {
        "ZoneId": "VSwitchZoneId"
      }
    },
    "InstancePassword": {
      "NoEcho": true,
      "Type": "String",
      "Description": {
        "en": "Server login password, Length 8-30, must contain three(Capital letters, lowercase letters, numbers, ()`~!@#$%^*_-+=|{}[]:;',.?/ Special symbol in).",
        "zh-cn": "服务器登录密码,长度为8~30个字符,必须包含三项(大写字母、小写字母、数字、 ()`~!@#$%^*_-+=|{}[]:;',.?/ 中的特殊字符)。"
      },
      "AllowedPattern": "[0-9A-Za-z\\_\\-\\',=%`~!@#\\(\\)\\$\\^\\*\\+\\|\\{\\}\\[\\]\\.\\?\\/]+$",
      "Label": {
        "en": "Instance Password",
        "zh-cn": "实例密码"
      },
      "ConstraintDescription": {
        "en": "Length 8-30, must contain three(Capital letters, lowercase letters, numbers, ()`~!@#$%^*_-+=|{}[]:;',.?/ Special symbol in).",
        "zh-cn": "长度为8~30个字符,必须包含三项(大写字母、小写字母、数字、 ()`~!@#$%^*_-+=|{}[]:;',.?/ 中的特殊字符)。"
      },
      "MinLength": 8,
      "MaxLength": 30
    },
    "InstancePublicIP": {
      "Type": "Boolean",
      "Description": {
        "zh-cn": "是否分配公网IP。",
        "en": "Whether to allocate Public IP."
      },
      "Label": {
        "zh-cn": "分配公网IP",
        "en": "Allocate Public IP"
      },
      "Default": false
    },
    "VSwitchZoneId": {
      "AssociationProperty": "ALIYUN::ECS::Instance:ZoneId",
      "Type": "String",
      "Description": {
        "zh-cn": "交换机可用区",
        "en": "VSwitch Availability Zone"
      }
      "Label": {
        "zh-cn": "交换机可用区",
        "en": "VSwitch Availability Zone"
      }
    },
    "SystemDiskSize": {
      "Default": 40,
      "Type": "Number",
      "Description": {
        "zh-cn": "系统盘大小,取值范围:40~500。 单位:GB。",
        "en": "System disk size, range of values: 40-500, units: GB."
      },
      "Label": {
        "zh-cn": "系统盘空间",
        "en": "System Disk Space"
      }
    }
  },
  "Resources": {
    "EcsVSwitch": {
      "Type": "ALIYUN::ECS::VSwitch",
      "Properties": {
        "VpcId": {
          "Ref": "EcsVpc"
        },
        "ZoneId": {
          "Ref": "VSwitchZoneId"
        },
        "CidrBlock": "192.168.XX.XX/24"
      }
    },
    "EcsInstanceGroup": {
      "Type": "ALIYUN::ECS::InstanceGroup",
      "Properties": {
        "IoOptimized": "optimized",
        "PrivateIpAddress": "192.168.XX.XX",
        "VpcId": {
          "Ref": "EcsVpc"
        },
        "SecurityGroupId": {
          "Ref": "EcsSecurityGroup"
        },
        "VSwitchId": {
          "Ref": "EcsVSwitch"
        },
        "ImageId": {
          "Ref": "InstanceImageId"
        },
        "AllocatePublicIP": {
          "Ref": "InstancePublicIP"
        },
        "InstanceType": {
          "Ref": "InstanceType"
        },
        "SystemDiskSize": {
          "Ref": "SystemDiskSize"
        },
        "SystemDiskCategory": {
          "Ref": "SystemDiskCategory"
        },
        "Password": {
          "Ref": "InstancePassword"
        },
        "MaxAmount": 1
      }
    },
    "EcsSecurityGroup": {
      "Type": "ALIYUN::ECS::SecurityGroup",
      "Properties": {
        "VpcId": {
          "Ref": "EcsVpc"
        },
        "SecurityGroupIngress": [
          {
            "PortRange": "-1/-1",
            "Priority": 1,
            "SourceCidrIp": "0.0.0.0/0",
            "IpProtocol": "all",
            "NicType": "intranet"
          }
        ],
        "SecurityGroupEgress": [
          {
            "PortRange": "-1/-1",
            "Priority": 1,
            "IpProtocol": "all",
            "DestCidrIp": "0.0.0.0/0",
            "NicType": "intranet"
          }
        ]
      }
    },
    "EcsVpc": {
      "Type": "ALIYUN::ECS::VPC",
      "Properties": {
        "CidrBlock": "192.168.XX.XX/16",
        "VpcName": {
          "Fn::Join": [
            "-",
            [
              "StackId",
              {
                "Ref": "ALIYUN::StackId"
              }
            ]
          ]
        }
      }
    }
  },
  "Outputs": {
    "EcsInstanceId": {
      "Value": {
        "Fn::GetAtt": [
          "EcsInstanceGroup",
          "InstanceIds"
        ]
      }
    }
  }
}

更多示例,请参见创建一组相同配置的ECS实例、克隆一个ECS实例、新建云助手命令和为一台或多台ECS实例触发一条云助手命令的组合示例:JSON示例YAML示例