ALIYUN::ECS::InstanceGroup

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,
    "UpdatePolicy": String,
    "SystemDiskEncrypted": String,
    "SystemDiskEncryptAlgorithm": String,
    "SystemDiskStorageClusterId": String,
    "SystemDiskKMSKeyId": String,
    "CreditSpecification": String,
    "PrivatePoolOptions": Map,
    "StorageSetId": String,
    "HttpTokens": String,
    "HttpEndpoint": String,
    "Tenancy": String,
    "StorageSetPartitionNumber": Integer,
    "DeploymentSetGroupNo": Integer,
    "Affinity": String,
    "UseAdditionalService": Boolean,
    "ImageFamily": String,
    "DeletionForce": Boolean,
    "UniqueSuffix": Boolean,
    "NetworkOptions": Map,
    "CpuOptions": Map,
    "NetworkInterfaceQueueNumber": Integer,
    "HostNames": List,
    "ImageOptions": Map,
    "SecurityOptions": Map,
    "SchedulerOptions": Map
  }
}

属性

属性名称

类型

必须

允许更新

描述

约束

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实例规格。

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

说明

当UpdatePolicy取值为ForAllInstances时,才会对已有实例进行更新,否则更新该参数只针对新增实例生效。

ImageId

String

用于启动ECS实例的镜像ID。包括公共镜像、自定义镜像和云市场镜像。

支持通过模糊的方式指定公共镜像ID,而不需要指定一个完整的公共镜像ID。例如:

  • 指定Ubuntu,最终会匹配ubuntu_16_0402_64_20G_alibase_20170818.vhd。

  • 指定ubuntu1432,最终会匹配ubuntu_14_0405_32_40G_alibase_20170711.vhd。

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

说明

当UpdatePolicy取值为ForAllInstances时,才会对已有实例进行更新,否则更新该参数只针对新增实例生效。

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,以免发生密码泄露。

说明

当UpdatePolicy取值为ForAllInstances时,才会对已有实例进行更新,否则更新该参数只针对新增实例生效。

PasswordInherit

Boolean

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

取值:

  • true:使用镜像预设的密码。

  • false:不使用镜像预设的密码。

说明

使用该参数时,Password参数必须为空,同时您需要确保使用的镜像已经设置了密码。

ZoneIds

List

可用区列表。

HostName

String

主机名称。

长度最少2个字符。半角句号(.)和短划线(-)不能作为hostname的首尾字符,且不能连续使用。

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

AllocatePublicIP

Boolean

是否创建公网IP。

如果InternetMaxBandwidthOut为0,则不会创建公网IP。

取值:

  • true(默认值):创建公网IP。

  • false:不创建公网IP。

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(默认值):按流量计费。

说明

当UpdatePolicy取值为ForAllInstances时,才会对已有实例进行更新,否则更新该参数只针对新增实例生效。

InternetMaxBandwidthOut

Integer

公网出带宽最大值。

取值范围:0~100。

单位:Mbps。

默认值:0。

说明

当UpdatePolicy取值为ForAllInstances时,才会对已有实例进行更新,否则更新该参数只针对新增实例生效。

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盘。

说明

当UpdatePolicy取值为ForAllInstances时,才会对已有实例进行更新,否则更新该参数只针对新增实例生效。

SystemDiskDescription

String

系统盘描述信息。

更新该参数仅对新增ECS实例生效。

SystemDiskDiskName

String

系统盘名称。

更新该参数仅对新增ECS实例生效。

SystemDiskSize

Number

系统盘大小。

取值范围:40~500。

单位:GB。

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

说明

当UpdatePolicy取值为ForAllInstances时,才会对已有实例进行更新,否则更新该参数只针对新增实例生效。

Tags

List

用户自定义标签。

最多支持20个标签,格式:[{"Key":"tagKey","Value":"tagValue"},{"Key":"tagKey2","Value":"tagValue2"}]

更多信息,请参见Tags属性

UserData

String

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

内容需要限制在16KB以内。无需用Base64转码,特殊字符需要使用转义符。

说明

当UpdatePolicy取值为ForAllInstances时,才会对已有实例进行更新,否则更新该参数只针对新增实例生效。

ZoneId

String

可用区ID。

VpcId

String

专有网络ID。

VSwitchId

String

交换机ID。

KeyPairName

String

ECS实例绑定的密钥对名称。

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

如果已填写KeyPairName,Password的内容仍会被设置到实例中,但是Linux系统中的密码登录方式会被禁止。

说明

更新该参数仅对新增ECS实例生效。

RamRoleName

String

实例RAM角色名称。

您可以调用ListRoles查询实例RAM角色名称。

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云盘

UpdatePolicy

String

指定更新时的策略。

取值:

  • ForNewInstance(默认值):更新策略针对新增实例生效。

  • ForAllInstances:更新策略针对所有实例生效。

SystemDiskEncrypted

String

系统盘是否加密。

取值:

  • true:加密。

  • false:不加密。

SystemDiskEncryptAlgorithm

String

系统盘采用的加密算法。

取值:

  • AES-256。

  • SM4-128。

SystemDiskStorageClusterId

String

系统盘专属块存储集群ID。

SystemDiskKMSKeyId

String

系统盘使用的KMS密钥ID。

CreditSpecification

String

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

取值:

PrivatePoolOptions

Map

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

更多信息,请参考PrivatePoolOptions属性

StorageSetId

String

存储集ID。

HttpTokens

String

访问实例元数据时是否强制使用加固模式(IMDSv2)。

取值:

  • optional(默认值):不强制使用。

  • required:强制使用。设置该取值后,普通模式无法访问实例元数据。

说明

有关访问实例元数据的模式,请参见实例元数据

HttpEndpoint

String

是否启用实例元数据的访问通道。

取值:

  • enabled(默认值):启用。

  • disabled:禁用。

说明

有关访问实例元数据的模式,请参见实例元数据

Tenancy

String

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

取值:

  • default(默认值):创建非专有宿主机实例。

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

StorageSetPartitionNumber

Integer

存储集中的最大分区数量。

取值范围:大于等于 2。

DeploymentSetGroupNo

Integer

如果您设置的部署集对应的策略为部署集组高可用策略(AvailabilityGroup),可以通过该参数指定实例在部署集中的分组号。

取值范围:1~7。

Affinity

String

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

取值:

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

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

UseAdditionalService

Boolean

是否使用阿里云提供的虚拟机系统配置(Windows:NTP、KMS;Linux:NTP、YUM)。

取值:

  • true

  • false

ImageFamily

String

镜像族系名称。

通过设置该参数来获取当前镜像族系内最新可用镜像来创建实例。

  • 设置了参数ImageId,则不能设置该参数。

  • 未设置参数ImageId,但指定的LaunchTemplateIdLaunchTemplateName对应的启动模板设置了ImageId,则不能设置该参数。

  • 未设置ImageId,且指定的LaunchTemplateIdLaunchTemplateName对应的启动模板未设置ImageId,则可以设置该参数。

  • 未设置ImageId,且未设置LaunchTemplateIdLaunchTemplateName参数,则可以设置该参数。

说明

阿里云官方镜像关联的镜像族系信息请参见公共镜像概述

DeletionForce

Boolean

是否强制删除实例。

默认值为false。 

UniqueSuffix

Boolean

当创建多台实例时,是否为HostNameInstanceName自动添加有序后缀。

有序后缀从001开始递增,最大不能超过999。取值范围:

  • true:添加。

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

HostNameInstanceName按照指定排序格式设置,未设置命名后缀name_suffix,即命名格式为name_prefix[begin_number,bits]时,UniqueSuffix不生效,名称仅按照指定顺序排序。

更多信息,请参见批量设置有序的实例名称或主机名称

NetworkOptions

Map

网络相关属性参数。

更多信息,请参见NetworkOptions属性

CpuOptions

Map

CPU相关属性参数。

更多信息,请参见CpuOptions属性

NetworkInterfaceQueueNumber

Integer

主网卡队列数。

注意:

  • 不能超过实例规格允许的单块网卡最大队列数。

  • 实例的所有网卡累加队列数不能超过实例规格允许的队列数总配额。实例规格的单块网卡最大队列数和总配额可以通过DescribeInstanceTypes接口查询MaximumQueueNumberPerEniTotalEniQueueQuantity字段。

  • 如果NetworkInterface.N.InstanceType取值为Primary,则不能设置NetworkInterfaceQueueNumber,只能设置NetworkInterface.N.QueueNumber

HostNames

List

创建多台实例时,为每台实例指定不同的主机名。

ImageOptions

Map

镜像相关属性信息。

更多信息,请参见ImageOptions属性

SecurityOptions

Map

可信系统相关属性信息。

更多信息,请参见SecurityOptions属性

SchedulerOptions

Map

调度相关属性信息。

更多信息,请参见SchedulerOptions属性

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,
    "StorageClusterId": String
  }
]

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(默认值):禁用。

StorageClusterId

String

专属块存储集群ID。

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,
    "InstanceType": String,
    "Ipv6AddressCount": Integer,
    "NetworkInterfaceTrafficMode": String,
    "Ipv6Addresses": List,
    "QueueNumber": Integer,
    "SecurityGroupIds": List,
    "NetworkInterfaceId": String,
    "DeleteOnRelease": Boolean,
    "NetworkCardIndex": Integer,
    "QueuePairNumber": Integer
  }
]

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,则默认随机分配该交换机中的空闲地址。

InstanceType

String

弹性网卡类型。

最多设置2个网卡,设置1个弹性网卡时,支持设置1个主网卡或1个辅助网卡;设置2个弹性网卡时,仅支持同时设置1个主网卡和1个辅助网卡。

取值:

  • Primary:主网卡。

  • Secondary(默认值):辅助网卡。

Ipv6AddressCount

Integer

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

取值范围:1~10。

注意事项:

  • NetworkInterface.InstanceType取值为Primary时,设置该参数才会生效。如果NetworkInterface.InstanceType取值为Secondary或空值,则不能设置该参数。

  • 设置该参数后,您不能再设置Ipv6AddressCountIpv6AddressNetworkInterface.Ipv6Address

NetworkInterfaceTrafficMode

String

网卡的通讯模式。

取值:

  • Standard(默认值):使用TCP通讯模式。

  • HighPerformance:开启ERI(Elastic RDMA Interface)接口,使用RDMA通讯模式。

说明

RDMA模式的弹性网卡数量不能超过该实例规格族的限制。更多信息,请参见实例规格族

Ipv6Addresses

List

为主网卡指定一个或多个IPv6地址。

支持设置最多10个IPv6地址。

注意事项:

  • NetworkInterface.InstanceType取值为Primary时,设置该参数才会生效。如果NetworkInterface.InstanceType取值为Secondary或空值,则不能设置该参数。

  • 设置该参数后,Amount取值只能为1,且不能再设置Ipv6AddressCountIpv6Address.NNetworkInterface.N.Ipv6AddressCount

QueueNumber

Integer

弹性网卡队列数。

注意事项:

  • 取值范围为1~2,设置1个弹性网卡时,支持设置1个主网卡或1个辅助网卡;设置2个弹性网卡时,仅支持同时设置1个主网卡和1个辅助网卡。

  • 不能超过实例规格允许的单块网卡最大队列数。

  • 实例的所有网卡累加队列数不能超过实例规格允许的队列数总配额。实例规格的单块网卡最大队列数和总配额可以通过DescribeInstanceTypes接口查询MaximumQueueNumberPerEniTotalEniQueueQuantity字段。

  • 如果NetworkInterface.InstanceType取值为Primary,且设置了该参数取值,则不能再设置NetworkInterfaceQueueNumber参数。

SecurityGroupIds

List

弹性网卡所属的一个或多个安全组ID。

注意事项:

  • 如果NetworkInterface.N.InstanceType取值为Primary,则必须设置该参数或NetworkInterface.SecurityGroupId。此时该参数的作用等同于SecurityGroupIds,但需要注意不能再设置SecurityGroupIdSecurityGroupIdsNetworkInterface.SecurityGroupId

  • 如果NetworkInterface.N.InstanceType取值为Secondary或空值,则该参数为非必填参数。默认值为ECS实例所属的安全组。

NetworkInterfaceId

String

随实例附加的弹性网卡ID。

该参数只对辅助弹性网卡生效。指定一个现有辅助弹性网卡后,您将无法配置其它网卡创建参数。

DeleteOnRelease

Boolean

释放实例时是否保留网卡

取值:

  • true:不保留。

  • false:保留。

NetworkCardIndex

Integer

网卡指定的物理网卡索引。

  • 只有特定实例规格支持指定物理网卡索引。

  • NetworkInterface.N.InstanceType取值为Primary时,对于支持物理网卡的实例规格,如果设置此参数,只能设置为 0。

  • NetworkInterface.N.InstanceType取值为Secondary或者空值,对于支持物理网卡的实例规格,此参数可以依据实例规格设置。更多信息,请参见实例规格族

QueuePairNumber

Integer

RDMA网卡队列数。

该字段类型为Long,在序列化/反序列化的过程中可能导致精度丢失,请注意数值不得大于9007199254740991。

PrivatePoolOptions语法

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

PrivatePoolOptions属性

属性名称

类型

必须

允许更新

描述

约束

Id

String

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

MatchCriteria

String

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

取值:

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

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

  • None(默认值):不使用模式。实例启动将不使用私有池容量。

以下任一场景,实例启动的私有池容量选项只能取值None或不传值。

  • 创建抢占式实例。

  • 创建经典网络类型的ECS实例。

  • 在专有宿主机DDH上创建ECS实例。

NetworkOptions语法

"NetworkOptions": {
  "EnableJumboFrame": Boolean
}

NetworkOptions属性

属性名称

类型

必须

允许更新

描述

约束

EnableJumboFrame

Boolean

实例是否开启Jumbo frame特性。

取值:

  • false:不开启Jumbo frame,该实例下的所有网卡(包括主网卡及辅助网卡)MTU取值为1500。

  • true:开启Jumbo frame,该实例下的所有网卡(包括主网卡及辅助网卡)的MTU取值为8500。

默认值:true。

说明

只有八代以上部分实例规格支持开启Jumbo frame特性。更多信息请参见巨型帧(Jumbo Frames)

CpuOptions语法

"CpuOptions": {
  "ThreadsPerCore": Integer,
  "Core": Integer
}

CpuOptions属性

属性名称

类型

必须

允许更新

描述

约束

ThreadsPerCore

Integer

CPU线程数。

ECS 实例的vCPU 数=CpuOptions.Core取值*CpuOptions.ThreadsPerCore取值。

Core

Integer

CPU核心数。

该参数不支持自定义设置,只能采用默认值。

默认值:请参见自定义和查看CPU选项

ImageOptions语法

"ImageOptions": {
  "LoginAsNonRoot": Boolean
}

ImageOptions属性

属性名称

类型

必须

允许更新

描述

约束

LoginAsNonRoot

Boolean

使用该镜像的实例是否支持使用ecs-user用户登录。

取值:

  • true:是

  • false:否

SecurityOptions语法

"SecurityOptions": {
  "TrustedSystemMode": String
}

SecurityOptions属性

属性名称

类型

必须

允许更新

描述

约束

TrustedSystemMode

String

可信系统模式。

取值:vTPM。目前,可信系统模式支持的实例规格族:g7、c7、r7。安全增强型(g7t、c7t、r7t)。当您创建以上实例规格族的ECS实例时,需要设置该参数。具体说明如下:如果您使用阿里云可信系统,请将该参数值设置为vTPM,在实例启动时即可通过阿里云可信系统完成可信校验。如果您不使用阿里云可信系统,可以不设置该参数值,但您需要注意,如果您所创建的ECS 实例使用了Enclave机密计算模式(SecurityOptions.ConfidentialComputingMode=Enclave),则该ECS实例也会启用可信系统。通过OpenAPI创建可信系统的ECS实例时,只能调用RunInstances实现,CreateInstance目前不支持设置SecurityOptions.TrustedSystemMode参数。

说明

如果您在创建实例的时候指定其为可信实例,那么当您更换系统盘时只能使用支持可信系统的镜像。

关于可信系统的更多信息,请参见可信计算能力概述

SchedulerOptions语法

"SchedulerOptions": {
  "ManagedPrivateSpaceId": String,
  "DedicatedHostClusterId": String
}

SchedulerOptions属性

属性名称

类型

必须

允许更新

描述

约束

DedicatedHostClusterId

String

指定ECS实例所属的专有宿主机集群,系统会自动选择该专有宿主机集群中的一台专有宿主机部署ECS实例。

说明

仅在Tenancy设置为host时生效。

在您同时指定了专有宿主机(DedicatedHostId)和专有宿主机集群(SchedulerOptions.DedicatedHostClusterId)时:

  • 如果专有宿主机属于专有宿主机集群,则优先将ECS实例部署在指定的专有宿主机上。

  • 如果专有宿主机不属于专有宿主机集群,则ECS实例创建失败。

您可以通过DescribeDedicatedHostClusters查询专有宿主机集群 ID 列表。

ManagedPrivateSpaceId

String

受管私有资源池ID。

返回值

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。

  • RelatedOrderIds:已创建ECS实例的相关订单ID列表。

  • Ipv6AddressIds:已创建ECS实例的IPv6地址ID列表。

    说明

    返回类型是两层列表。如果实例没有任何IPv6地址,则列表中相应位置的元素为空。如果所有实例都没有任何IP地址,则将返回null。

  • Ipv6Addresses:已创建ECS实例的IPv6地址列表。

    说明

    返回类型是两层列表。如果实例没有任何IPv6地址,则列表中相应位置的元素为空。如果所有实例都没有任何IP地址,则将返回null。

示例

创建两台ECS实例(OpsEcsInstance、ProdEcsInstance),并为ProdEcsInstance实例完成OpsEcsInstance免密登录操作。

如果您需要对ECS实例的Userdata脚本执行结果进行消息通知,请参见更多信息和ALIYUN::ROS::WaitCondition

YAML格式

ROSTemplateFormatVersion: '2015-09-01'
Description: Creates VPC ECS instance
Parameters:
  VpcId:
    AssociationProperty: ALIYUN::ECS::VPC::VPCId
    Type: String
    Description:
      en: Please search the ID starting with (vpc-xxx) from console-Virtual Private Cloud
      zh-cn: 现有专有网络的实例ID
    Label:
      en: VPC ID
      zh-cn: 专有网络VPC实例ID
  VSwitchZoneId:
    AssociationProperty: ALIYUN::ECS::Instance:ZoneId
    Type: String
    Description:
      zh-cn: 交换机可用区
      en: VSwitch Availability Zone
    Label:
      zh-cn: 交换机可用区
      en: VSwitch Availability Zone
  VSwitchId:
    AssociationProperty: ALIYUN::ECS::VSwitch::VSwitchId
    AssociationPropertyMetadata:
      VpcId: ${VpcId}
      ZoneId: ${VSwitchZoneId}
    Type: String
    Description:
      en: Instance ID of existing business network switches, console-Virtual Private Cloud-VSwitches under query
      zh-cn: 现有业务网络交换机的实例ID
    Label:
      en: VSwitch ID
      zh-cn: 交换机实例ID
  SecurityGroupId:
    Type: String
    AssociationProperty: ALIYUN::ECS::SecurityGroup::SecurityGroupId
    AssociationPropertyMetadata:
      VpcId: ${VpcId}
    Description:
      en: Please search the business security group ID starting with(sg-xxx)from console-ECS-Network & Security
      zh-cn: 现有业务安全组的实例ID
    Label:
      en: Business Security Group ID
      zh-cn: 业务安全组ID
  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}
  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}
Resources:
  OpsEcsInstance:
    Type: ALIYUN::ECS::InstanceGroup
    Properties:
      MaxAmount: 1
      HostName: OpsEcsInstance
      UserData:
        Fn::Sub:
          - |
            #!/bin/bash
            RootPassword=${RootPassword}
            ProdIP=${ProdIP}
            SSHConfig() {
            echo '[ ! -f /root/.ssh/id_rsa.pub ] && ssh-keygen -t rsa -P "" -f ~/.ssh/id_rsa &>/dev/null' >> /tmp/auto_ssh.sh
            echo 'while read line;do' >> /tmp/auto_ssh.sh
            echo '        ip=`echo $line | cut -d " " -f1`' >> /tmp/auto_ssh.sh
            echo '        user_name=`echo $line | cut -d " " -f2`' >> /tmp/auto_ssh.sh
            echo '        pass_word=`echo $line | cut -d " " -f3`' >> /tmp/auto_ssh.sh
            echo 'expect <<EOF' >> /tmp/auto_ssh.sh
            echo '        spawn ssh-copy-id -i /root/.ssh/id_rsa.pub $user_name@$ip' >> /tmp/auto_ssh.sh
            echo '        expect {' >> /tmp/auto_ssh.sh
            echo '                  "yes/no" { send "yes\n";exp_continue}' >> /tmp/auto_ssh.sh
            echo '                  "password" { send "$pass_word\n"}' >> /tmp/auto_ssh.sh
            echo '        }' >> /tmp/auto_ssh.sh
            echo '        expect eof' >> /tmp/auto_ssh.sh
            echo 'EOF' >> /tmp/auto_ssh.sh
            echo 'done < /tmp/host_ip.txt' >> /tmp/auto_ssh.sh
            }
            SetHostsConfig() {
            echo "`ifconfig eth0 | awk '/inet /{print $2}'` root ${RootPassword}" >> /tmp/host_ip.txt
            echo "${ProdIP} root ${RootPassword}" >> /tmp/host_ip.txt
            sh /tmp/auto_ssh.sh
            }
            main() {
            yum install -y expect
            SSHConfig
            SetHostsConfig
            rm -rf /tmp/host_ip.txt
            }
            main
          - ProdIP:
              Fn::Select:
                - '0'
                - Fn::GetAtt:
                    - ProdEcsInstance
                    - PrivateIps
            RootPassword: Admin@123!
      VpcId:
        Ref: VpcId
      SecurityGroupId:
        Ref: SecurityGroupId
      VSwitchId:
        Ref: VSwitchId
      ImageId: centos_7
      AllocatePublicIP: false
      InstanceType:
        Ref: InstanceType
      SystemDiskSize: 40
      SystemDiskCategory:
        Ref: SystemDiskCategory
      Password: Admin@123!
  ProdEcsInstance:
    Type: ALIYUN::ECS::InstanceGroup
    Properties:
      MaxAmount: 1
      HostName: ProdEcsInstance
      SystemDiskCategory:
        Ref: SystemDiskCategory
      VpcId:
        Ref: VpcId
      SecurityGroupId:
        Ref: SecurityGroupId
      SystemDiskSize: 40
      ImageId: centos_7
      VSwitchId:
        Ref: VSwitchId
      Password: Admin@123!
      InstanceType:
        Ref: InstanceType
      AllocatePublicIP: false
Outputs: {}                  

JSON格式

{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Description": "Creates VPC ECS instance",
  "Parameters": {
    "VpcId": {
      "AssociationProperty": "ALIYUN::ECS::VPC::VPCId",
      "Type": "String",
      "Description": {
        "en": "Please search the ID starting with (vpc-xxx) from console-Virtual Private Cloud",
        "zh-cn": "现有专有网络的实例ID"
      },
      "Label": {
        "en": "VPC ID",
        "zh-cn": "专有网络VPC实例ID"
      }
    },
    "VSwitchZoneId": {
      "AssociationProperty": "ALIYUN::ECS::Instance:ZoneId",
      "Type": "String",
      "Description": {
        "zh-cn": "交换机可用区",
        "en": "VSwitch Availability Zone"
      },
      "Label": {
        "zh-cn": "交换机可用区",
        "en": "VSwitch Availability Zone"
      }
    },
    "VSwitchId": {
      "AssociationProperty": "ALIYUN::ECS::VSwitch::VSwitchId",
      "AssociationPropertyMetadata": {
        "VpcId": "${VpcId}",
        "ZoneId": "${VSwitchZoneId}"
      },
      "Type": "String",
      "Description": {
        "en": "Instance ID of existing business network switches, console-Virtual Private Cloud-VSwitches under query",
        "zh-cn": "现有业务网络交换机的实例ID"
      },
      "Label": {
        "en": "VSwitch ID",
        "zh-cn": "交换机实例ID"
      }
    },
    "SecurityGroupId": {
      "Type": "String",
      "AssociationProperty": "ALIYUN::ECS::SecurityGroup::SecurityGroupId",
      "AssociationPropertyMetadata": {
        "VpcId": "${VpcId}"
      },
      "Description": {
        "en": "Please search the business security group ID starting with(sg-xxx)from console-ECS-Network & Security",
        "zh-cn": "现有业务安全组的实例ID"
      },
      "Label": {
        "en": "Business Security Group ID",
        "zh-cn": "业务安全组ID"
      }
    },
    "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}"
      }
    },
    "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}"
      }
    }
  },
  "Resources": {
    "OpsEcsInstance": {
      "Type": "ALIYUN::ECS::InstanceGroup",
      "Properties": {
        "MaxAmount": 1,
        "HostName": "OpsEcsInstance",
        "UserData": {
          "Fn::Sub": [
            "#!/bin/bash\nRootPassword=${RootPassword}\nProdIP=${ProdIP}\nSSHConfig() {\necho '[ ! -f /root/.ssh/id_rsa.pub ] && ssh-keygen -t rsa -P \"\" -f ~/.ssh/id_rsa &>/dev/null' >> /tmp/auto_ssh.sh\necho 'while read line;do' >> /tmp/auto_ssh.sh\necho '        ip=`echo $line | cut -d \" \" -f1`' >> /tmp/auto_ssh.sh\necho '        user_name=`echo $line | cut -d \" \" -f2`' >> /tmp/auto_ssh.sh\necho '        pass_word=`echo $line | cut -d \" \" -f3`' >> /tmp/auto_ssh.sh\necho 'expect <<EOF' >> /tmp/auto_ssh.sh\necho '        spawn ssh-copy-id -i /root/.ssh/id_rsa.pub $user_name@$ip' >> /tmp/auto_ssh.sh\necho '        expect {' >> /tmp/auto_ssh.sh\necho '                  \"yes/no\" { send \"yes\\n\";exp_continue}' >> /tmp/auto_ssh.sh\necho '                  \"password\" { send \"$pass_word\\n\"}' >> /tmp/auto_ssh.sh\necho '        }' >> /tmp/auto_ssh.sh\necho '        expect eof' >> /tmp/auto_ssh.sh\necho 'EOF' >> /tmp/auto_ssh.sh\necho 'done < /tmp/host_ip.txt' >> /tmp/auto_ssh.sh\n}\nSetHostsConfig() {\necho \"`ifconfig eth0 | awk '/inet /{print $2}'` root ${RootPassword}\" >> /tmp/host_ip.txt\necho \"${ProdIP} root ${RootPassword}\" >> /tmp/host_ip.txt\nsh /tmp/auto_ssh.sh\n}\nmain() {\nyum install -y expect\nSSHConfig\nSetHostsConfig\nrm -rf /tmp/host_ip.txt\n}\nmain\n",
            {
              "ProdIP": {
                "Fn::Select": [
                  "0",
                  {
                    "Fn::GetAtt": [
                      "ProdEcsInstance",
                      "PrivateIps"
                    ]
                  }
                ]
              },
              "RootPassword": "Admin@123!"
            }
          ]
        },
        "VpcId": {
          "Ref": "VpcId"
        },
        "SecurityGroupId": {
          "Ref": "SecurityGroupId"
        },
        "VSwitchId": {
          "Ref": "VSwitchId"
        },
        "ImageId": "centos_7",
        "AllocatePublicIP": false,
        "InstanceType": {
          "Ref": "InstanceType"
        },
        "SystemDiskSize": 40,
        "SystemDiskCategory": {
          "Ref": "SystemDiskCategory"
        },
        "Password": "Admin@123!"
      }
    },
    "ProdEcsInstance": {
      "Type": "ALIYUN::ECS::InstanceGroup",
      "Properties": {
        "MaxAmount": 1,
        "HostName": "ProdEcsInstance",
        "SystemDiskCategory": {
          "Ref": "SystemDiskCategory"
        },
        "VpcId": {
          "Ref": "VpcId"
        },
        "SecurityGroupId": {
          "Ref": "SecurityGroupId"
        },
        "SystemDiskSize": 40,
        "ImageId": "centos_7",
        "VSwitchId": {
          "Ref": "VSwitchId"
        },
        "Password": "Admin@123!",
        "InstanceType": {
          "Ref": "InstanceType"
        },
        "AllocatePublicIP": false
      }
    }
  },
  "Outputs": {
  }
}                    

UpdatePolicy简介

当我们使用ALIYUN::ECS::InstanceGroup创建一组ECS实例后,需要对已创建的这组ECS进行配置批量更新时,可以使用UpdatePolicy属性去完成对ECS实例配置更新策略的控制。UpdatePolicy属性语法参考:

UpdatePolicy语法

"UpdatePolicy": {
  "RollingUpdateForOrigInstances": Map
}

UpdatePolicy属性

属性名称

类型

必须

允许更新

描述

约束

RollingUpdateForOrigInstances

Map

控制更新已有的ECS实例的策略。

该策略内容对新增的ECS不会生效。

详见RollingUpdateForOrigInstances属性

RollingUpdateForOrigInstances语法

"RollingUpdateForOrigInstances": {
  "MaxBatchSize": Integer,
  "PauseTime": Integer
}

RollingUpdateForOrigInstances属性

属性名称

类型

必须

允许更新

描述

约束

MaxBatchSize

Integer

每个批次更新的ECS实例数量。

取值范围:1~1000。

PauseTime

Integer

各个批次更新之间暂停的时间(单位:秒)默认为0。

取值范围:0~3600。

示例

使用以下模板创建一组相同配置的ECS实例(包含5台ECS)。

{
    "ROSTemplateFormatVersion": "2015-09-01",
    "Resources": {
        "Instance": {
            "Type": "ALIYUN::ECS::InstanceGroup",
            "Properties": {
                "MaxAmount": 5,
                "InstanceType": "xxxx",
                "ImageId": "centos",
                "VpcId": "vpc-2xxxx",
                "VSwitchId": "vsw-xxxx",
                "SecurityGroupId": "sg-xxxxx",
                "Password": "Ros1gregrge2345",
                "InstanceChargeType": "PostPaid",
                "NetworkType": "vpc",
                "SystemDiskCategory": "xxx",
                "SystemDiskSize": 100,
                "InternetMaxBandwidthOut": 5,
                "AllocatePublicIP": true
            }
        }
    }
}

创建资源栈成功后对已创建的ECS实例进行配置更新,更新时可以配置UpdatePolicy属性。

{
    "ROSTemplateFormatVersion": "2015-09-01",
    "Resources": {
        "Instance": {
            "Type": "ALIYUN::ECS::InstanceGroup",
            "UpdatePolicy": {
                "RollingUpdateForOrigInstances": {
                    "MaxBatchSize": 2,
                    "PauseTime": 0
                }
            },
            "Properties": {
                "MaxAmount": 10,
                "InstanceType": "xxxx",
                "ImageId": "centos",
                "VpcId": "vpc-2xxxx",
                "VSwitchId": "vsw-xxxx",
                "SecurityGroupId": "sg-xxxxx",
                "Password": "Ros1gregrge2345",
                "InstanceChargeType": "PostPaid",
                "NetworkType": "vpc",
                "SystemDiskCategory": "xxx",
                "SystemDiskSize": 100,
                "InternetMaxBandwidthOut": 5,
                "AllocatePublicIP": true
            }
        }
    }
}

指定MaxBatchSize=2。 更新前MaxAmount=5,更新后MaxAmount=10,在更新资源栈的过程中,原有的5台机器,会分3个批次(2/2/1)进行变配更新。新增的5台机器会被一次性统一创建。