ALIYUN::ECS::InstanceClone类型用于克隆一个ECS实例。

语法

{
  "Type": "ALIYUN::ECS::InstanceClone",
  "Properties": {
    "DeletionProtection": Boolean,
    "DiskMappings": List,
    "LoadBalancerIdToAttach": String,
    "Description": String,
    "BackendServerWeight": Integer,
    "Tags": List,
    "SecurityGroupId": String,
    "RamRoleName": String,
    "ImageId": String,
    "ResourceGroupId": String,
    "SpotPriceLimit": String,
    "InstanceChargeType": String,
    "SourceInstanceId": String,
    "Period": Number,
    "SpotStrategy": String,
    "Password": String,
    "InstanceName": String,
    "InternetMaxBandwidthIn": Integer,
    "ZoneId": String,
    "KeyPairName": String
  }
}

属性

属性名称 类型 必须 允许更新 描述 约束
ResourceGroupId String 实例所在的资源组ID。 无。
SourceInstanceId String 待克隆的源ECS实例的ID。 克隆实例规格、镜像、带宽收费方式、带宽限制、网络类型等所有实例数据和设置。如果源ECS实例加入多个安全组,新实例会加入源实例的第一个安全组。
BackendServerWeight Integer ECS实例在负载均衡器实例中的权重。 取值范围:0~100,默认值:100。
LoadBalancerIdToAttach String ECS实例待加入的负载均衡实例的ID。 无 。
Description String 描述信息。 最多256个字符。
ImageId String 用于启动ECS实例的镜像ID,包括公共镜像、自定义镜像和云市场镜像,请参见 ECS 公共镜像列表

在编辑模板时,仅需指定镜像的类型,或类型和版本,ROS会自动选择适配的公共镜像ID。

可以用星号通配符 (\*) 指代镜像ID的某一部分。

以阿里云提供的全部Ubuntu公共镜像为例,在为ECS实例指定公共镜像ID时,可以按照如下方式:

指定:ubuntu

最终会匹配:ubuntu16_0402_64_20G_alibase_20170818.vhd

指定:ubuntu_14

最终会匹配:ubuntu_14_0405_64_20G_alibase_20170824.vhd

指定:ubuntu*14*32

最终会匹配:ubuntu_14_0405_32_40G_alibase_20170711.vhd

指定:ubuntu_16_0402_32

最终会匹配:ubuntu_16_0402_32_40G_alibase_20170711.vhd

SecurityGroupId String 新建实例所属安全组。 无。
InstanceName String 实例名称。 长度为2~128个英文或中文字符。必须以大小字母或中文开头,不能以http://https://开头。可以包含数字、半角冒号(:)、下划线(_)或者连字符(-)。
Password String ECS实例登录密码。

长度为8~30个字符。

必须同时包含大写或小写字母、数字和特殊字符中的三种。

可以使用的特殊字符:( ) ' ~ ! @ # $ % ^ & * - + = | { } [ ] : ; ‘ < > , . ? /

如果指定该参数,必须使用 HTTPS 协议调用 API,以免密码泄露。

DiskMappings List 需要挂载的磁盘。 最多支持16块磁盘。
Tags List 用户自定义标签。 最多支持20个标签,格式:[{"Key":"tagKey","Value":"tagValue"}、{"Key":"tagKey2","Value":"tagValue2"}]
ZoneId String 可用区ID。 无。
InstanceChargeType String 实例的付费方式。

可选值:Prepiad、Postpaid。

默认值:Postpaid。如果指定为Prepaid,必须确保余额充足,否则创建失败。

Period Number 若InstanceChargeType为Prepaid,必须设置此参数;若InstanceChargeType为Postpaid,忽略此参数。 可选值:1~9、12、24、36,单位:月。
KeyPairName String ECS实例绑定的密钥对名称。

Windows系统保留默认值为空。

在Linux系统中,如果指定该参数,Password的内容仍旧会被设置到实例中,但是密码登录方式会默认被禁止,采用密钥对验证登录。

RamRoleName String 实例RAM角色名称。可以调用ListRoles查询。请参见CreateRoleListRoles 无。
SpotPriceLimit String 设置实例的每小时最高价格。 支持最多3位小数,参数 SpotStrategy取值为 SpotWithPriceLimit 时该参数生效。
SpotStrategy String 按量付费实例的竞价策略。 参数 InstanceChargeType取值为PostPaid时生效。取值范围:

NoSpot:正常按量付费实例。

SpotWithPriceLimit:设置上限价格的竞价实例。

SpotAsPriceGo:系统自动出价,最高不超过按量付费价格。

默认值:NoSpot。

InternetMaxBandwidthIn Integer 公网入带宽最大值,单位为Mbit/s。 取值范围:1~200。
DeletionProtection Boolean 实例释放保护属性,指定是否支持通过控制台或 API(DeleteInstance)释放实例。 可用值:true、false。

DiskMappings 语法

"DiskMappings": [
  {
    "Category": String,
    "DiskName": String,
    "Description": String,
    "Device": String,
    "SnapshotId": String,
    "PerformanceLevel": String,
    "Size": Number
  }
]

DiskMappings 属性

属性名称 类型 必须 允许更新 描述 约束
Size Number 数据盘大小,单位:GB。 取值范围:20~500 。
Category String 数据盘类型。
  • cloud:普通云盘
  • cloud_ssd:SSD云盘
  • cloud_essd:ESSD云盘
  • cloud_efficiency:高效云盘
  • ephemeral_ssd:本地SSD盘
I/O优化实例的默认值为cloud_efficiency,非I/O优化实例的默认值为cloud。
DiskName String 数据盘名称。 长度为2~128个字符。必须以大小字母或中文开头,不能以http://https://开头,可包含数字、下划线(_)、半角冒号(:)、连字符(-)。
PerformanceLevel String 创建ESSD云盘作为系统盘使用时,设置云盘的性能等级。
  • PL1(默认):单盘最高随机读写IOPS为5万。
  • PL2:单盘最高随机读写IOPS为10万。
  • PL3:单盘最高随机读写IOPS为100万。
有关如何选择ESSD性能等级,请参见ESSD云盘
Description String 描述信息。 取值范围:2~256,默认值为空。
Device String 挂载点。
说明 该参数即将停止使用,为提高代码兼容性,建议您尽量不要使用该参数
无。
SnapshotId String 创建数据盘使用的快照。 无。

Tags 语法

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

Tags 属性

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

返回值

Fn::GetAtt

  • InstanceId:实例ID。由系统生成,实例的全局唯一标识。
  • PrivateIp:VPC类型实例的私网IP。 当NetworkType为VPC时,该参数生效。
  • InnerIp:Classic类型实例的私网IP。 当 NetworkType为Classic时,该参数生效。
  • PublicIp:Classic类型实例的公网IP列表。 当NetworkType为Classic时,该参数生效。
  • ZoneId:可用区ID。
  • HostName:实例的主机名称。

示例

{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Resources": {
    "WebServer": {
      "Type": "ALIYUN::ECS::InstanceClone",
      "Properties": {
        "SourceInstanceId": "i-25zsk****",
        "SecurityGroupId": "sg-25zwc****",
        "ZoneId": "cn-beijing-b",
        "DiskMappings": [
            {"Size": 10, "Category": "cloud"},
            {"Size": 10, "Category": "cloud", "SnapshotId": "s-25wsw****"}
        ]
      }
    }
  },
  "Outputs": {
    "InstanceId": {
         "Value": {"get_attr": ["WebServer","InstanceId"]}
    },
    "PublicIp": {
         "Value": {"get_attr": ["WebServer","PublicIp"]}
    }
  }
}