ALIYUN::ECS::InstanceClone

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,
    "ZoneId": String,
    "KeyPairName": String,
    "InternetMaxBandwidthIn": Integer
  }
}

属性

属性名称

类型

必须

允许更新

描述

约束

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,包括公共镜像、自定义镜像和云市场镜像。

支持通过模糊的方式指定公共镜像ID,无需指定一个完整的公共镜像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

新建实例所属安全组ID。

InstanceName

String

实例名称。

长度为2~128个字符。必须以英文字母或汉字开头,不能以http://https://开头。可包含英文字母、汉字、数字、半角冒号(:)、下划线(_)和短划线(-)。

Password

String

ECS实例登录密码。

长度为8~30个字符。

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

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

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

DiskMappings

List

需要挂载的磁盘。

最多支持16块磁盘。

更多信息,请参见DiskMappings属性

Tags

List

用户自定义标签。

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

更多信息,请参见Tags属性

ZoneId

String

可用区ID。

InstanceChargeType

String

实例的付费方式。

取值:

  • PrePaid:预付费(包年包月)。

    说明

    如果指定PrePaid,必须确保余额充足,否则将创建失败。

  • PostPaid(默认值):按量付费。

Period

Number

付费周期。

取值:1、2、3、4、5、6、7、8、9、12、24、36。

单位:月。

若InstanceChargeType为PrePaid,此参数为必选;若InstanceChargeType为PostPaid,此参数为可选。

KeyPairName

String

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

Windows系统默认值为空。

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

RamRoleName

String

实例RAM角色名称。

更多信息,请参见CreateRole - 创建角色ListRoles - 获取角色列表

SpotPriceLimit

String

设置实例的每小时最高价格。

支持最多3位小数,当SpotStrategy取值为SpotWithPriceLimit时该参数生效。

SpotStrategy

String

按量付费实例的竞价策略。

当InstanceChargeType取值为PostPaid时该参数生效。取值:

  • NoSpot(默认值):正常按量付费实例。

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

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

DeletionProtection

Boolean

实例释放保护属性,指定是否支持通过控制台DeleteInstance接口释放实例。

取值:

  • true:通过接口释放实例。

  • false(默认值):不通过接口释放实例。

InternetMaxBandwidthIn

Integer

最大公网输出带宽设置。

单位为Mbps(兆比特每秒)。 

取值范围为0~200。

默认值为200。 

DiskMappings语法

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

DiskMappings属性

属性名称

类型

必须

允许更新

描述

约束

Size

String

数据盘大小。

取值范围:20~500。

单位:GB。

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云盘作为系统盘使用时,设置云盘的性能等级。

取值:

  • PL0:单盘最高随机读写IOPS为1万。

  • 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:实例的主机名称。

  • PrimaryNetworkInterfaceId:主网卡ID。

  • SecurityGroupIds:已创建实例的安全组ID列表。

示例

YAML格式

ROSTemplateFormatVersion: '2015-09-01'
Description: Test ECS Instance Clone
Parameters:
  RegionId:
    Type: String
    AssociationProperty: ALIYUN::ECS::RegionId
  SourceInstanceId:
    Type: String
    AssociationProperty: ALIYUN::ECS::Instance::InstanceId
    AssociationPropertyMetadata:
      RegionId: ${RegionId}
Resources:
  InstanceClone:
    Type: ALIYUN::ECS::InstanceClone
    Properties:
      SourceInstanceId:
        Ref: SourceInstanceId

JSON格式

{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Description": "Test ECS Instance Clone",
  "Parameters": {
    "RegionId": {
      "Type": "String",
      "AssociationProperty": "ALIYUN::ECS::RegionId"
    },
    "SourceInstanceId": {
      "Type": "String",
      "AssociationProperty": "ALIYUN::ECS::Instance::InstanceId",
      "AssociationPropertyMetadata": {
        "RegionId": "${RegionId}"
      }
    }
  },
  "Resources": {
    "InstanceClone": {
      "Type": "ALIYUN::ECS::InstanceClone",
      "Properties": {
        "SourceInstanceId": {
          "Ref": "SourceInstanceId"
        }
      }
    }
  }
}