调用CreateLaunchTemplate创建一个ECS实例启动模板,简称模板。实例启动模板能免除每次创建实例时都需要填入大量配置参数。

接口说明

实例启动模板中包含用于创建实例的相关配置,例如实例所属地域、镜像ID、实例规格、安全组ID和公网带宽等。如果模板中没有指定某一实例配置,您需要在创建实例时为实例指定该配置。

创建模板(CreateLaunchTemplate)后,模板的初始版本为1,您可以后续基于该版本创建多个模板版本(CreateLaunchTemplateVersion),版本号从1开始顺序递增。如果您在创建实例(RunInstances)时不指定模板版本号,会采用默认版本。

调用该接口时,您需要注意:

  • 您最多能在一个地域内创建30个实例启动模板,且每个模板最多能有30个版本。
  • 实例启动模板的参数大多数为可选参数。创建模板时,阿里云不会验证模板中参数取值的存在性和有效性。只会在真正创建实例时校验参数取值的有效性。
  • 如果实例启动模板中设置了某一配置,创建实例(RunInstances)时就无法过滤掉该配置。例如,如果模板设置了HostName=LocalHostRunInstancesHostName取值为空时,实例的主机名依然是LocalHost。如果您想覆盖HostName=LocalHost这一配置,可以在RunInstances中取HostName=MyHost或其他参数值。

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

请求参数

名称 类型 是否必选 示例值 描述
Action String CreateLaunchTemplate

系统规定参数。取值:CreateLaunchTemplate

RegionId String cn-hangzhou

地域ID。您可以调用DescribeRegions查看最新的阿里云地域列表。

TemplateTag.N.Key String TestKey

启动模板的标签键。N的取值范围:1~20。一旦传入该值,则不允许为空字符串。最多支持128个字符,不能以aliyunacs:开头,不能包含http://https://

TemplateTag.N.Value String TestValue

启动模板的标签值。N的取值范围:1~20。一旦传入该值,可以为空字符串。最多支持128个字符,不能以aliyunacs:开头,不能包含http://https://

LaunchTemplateName String testLaunchTemplateName

实例启动模板名称。长度为2~128个英文或中文字符。必须以大小字母或中文开头,不能以http://https://开头。可以包含数字、半角冒号(:)、下划线(_)或者短划线(-)。

VersionDescription String testVersionDescription

实例启动模板版本描述。长度为2~256个英文或中文字符,不能以http://https://开头。

ImageId String win2008r2_64_ent_sp1_en-us_40G_alibase_20170915.vhd

镜像ID,启动实例时选择的镜像资源。您可以通过DescribeImages查询您可以使用的镜像资源。

ImageOwnerAlias String system

镜像来源。取值范围:

  • system:阿里云提供的公共镜像。
  • self:您创建的自定义镜像。
  • others:其他阿里云用户共享给您的镜像。
  • marketplace:镜像市场提供的镜像。您查询到的云市场镜像可以直接使用,无需提前订阅。您需要自行留意云市场镜像的收费详情。
PasswordInherit Boolean false

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

说明 使用该参数时,Password参数必须为空,同时您需要确保使用的镜像已经设置了密码。
InstanceType String ecs.g5.large

实例的资源规格。更多信息,请参见实例规格族,也可以调用DescribeInstanceTypes接口获得最新的规格表。

SecurityGroupId String sg-bp15ed6xe1yxeycg****

指定新创建实例所属于的安全组ID。同一个安全组内的实例之间可以互相访问,一个安全组最多能管理1000台实例。

说明 不支持同时指定SecurityGroupIdSecurityGroupIds.N
VpcId String vpc-bp12433upq1y5scen****

专有网络VPC ID。

VSwitchId String vsw-bp1s5fnvk4gn2tws0****

创建VPC类型实例时需要指定虚拟交换机ID。

InstanceName String testInstanceName

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

Description String testECSDescription

实例描述。长度为2~256个英文或中文字符,不能以http://https://开头。

InternetMaxBandwidthIn Integer 10

公网入带宽最大值,单位为Mbit/s。取值范围:

  • 当所购公网出带宽小于等于10 Mbit/s时:1~10,默认为10。
  • 当所购公网出带宽大于10 Mbit/s时:1~InternetMaxBandwidthOut的取值,默认为InternetMaxBandwidthOut的取值。
InternetMaxBandwidthOut Integer 10

公网出带宽最大值,单位为Mbit/s。取值范围为0~100。

HostName String testHostName

云服务器的主机名。

  • 半角句号(.)和短划线(-)不能作为首尾字符,更不能连续使用。
  • Windows实例:字符长度为2~15,不支持半角句号(.),不能全是数字。允许大小写英文字母、数字和短划线(-)。
  • 其他类型实例(Linux等):字符长度为2~64,支持多个半角句号(.),半角句号之间为一段,每段允许大小写英文字母、数字和短划线(-)。
ZoneId String cn-hangzhou-g

实例所属的可用区ID。

SystemDisk.Category String cloud_ssd

系统盘的云盘种类。取值范围:

  • cloud:普通云盘。
  • cloud_efficiency:高效云盘。
  • cloud_ssd:SSD云盘。
  • cloud_essd:ESSD云盘。您可以通过参数SystemDisk.PerformanceLevel设置云盘的性能等级。

已停售的实例规格且非I/O优化实例默认值为cloud,否则默认值为cloud_efficiency。

SystemDisk.Size Integer 40

系统盘大小,单位为GiB。取值范围为20~500。

该参数的取值必须大于或者等于max{20, ImageSize}。

SystemDisk.DiskName String testSystemDiskName

系统盘名称。长度为2~128个英文或中文字符。必须以大小字母或中文开头,不能以http://https://开头。可以包含数字、半角冒号(:)、下划线(_)或者短划线(-)。

SystemDisk.Description String testSystemDiskDescription

系统盘描述。长度为2~256个英文或中文字符,不能以http://https://开头。

SystemDisk.Iops Integer null
说明 该参数正在邀测中,暂未开放使用。
SystemDisk.PerformanceLevel String PL0

创建ESSD云盘作为系统盘使用时,设置云盘的性能等级。取值范围:

  • PL0(默认):单盘最高随机读写IOPS 1万。
  • PL1:单盘最高随机读写IOPS 5万。
  • PL2:单盘最高随机读写IOPS 10万。
  • PL3:单盘最高随机读写IOPS 100万。

有关如何选择ESSD性能等级,请参见ESSD云盘

SystemDisk.DeleteWithInstance Boolean true

系统盘是否随实例释放。取值范围:

  • true:随实例释放。
  • false:不随实例释放。

默认值为true。

SystemDisk.AutoSnapshotPolicyId String sp-gc7c37d4ylw7mtnk****

系统盘采用的自动快照策略ID。

SystemDisk.ProvisionedIops Long 50000

ESSD AutoPL云盘预配置读写IOPS。取值范围:0~min{50000, 1000*容量-基准性能}。

基准性能=min{1,800+50*容量, 50,000}

说明 当DiskCategory取值为cloud_auto时才支持设置该参数。更多信息,请参见ESSD AutoPL云盘修改ESSD AutoPL云盘预配置信息
SystemDisk.BurstingEnabled Boolean true

是否开启Burst(性能突发)。取值范围:

  • true:是。
  • false:否。
IoOptimized String optimized

是否为I/O优化实例。取值范围:

  • none:非I/O优化。
  • optimized:I/O优化。
InstanceChargeType String PrePaid

实例的计费方式。取值范围:

  • PrePaid:包年包月。选择该类付费方式时,您必须确认自己的账号支持余额支付和信用支付,否则将返回InvalidPayMethod的错误提示。
  • PostPaid:按量付费。
Period Integer 1

购买资源的时长,单位为:月。当创建实例时,参数InstanceChargeType取值为PrePaid时该参数才生效且为必选值。取值范围:1、2、3、4、5、6、7、8、9、12、24、36、48、60。

InternetChargeType String PayByTraffic

网络计费方式。取值范围:

  • PayByBandwidth:按固定带宽计费。
  • PayByTraffic:按使用流量计费。
说明 按使用流量计费模式下的出入带宽峰值都是带宽上限,不作为业务承诺指标。当出现资源争抢时,带宽峰值可能会受到限制。如果您的业务需要有带宽的保障,请使用按固定带宽计费模式。
EnableVmOsConfig Boolean false

是否启用实例操作系统配置。

说明 该参数即将被弃用,为提高兼容性,请尽量使用其他参数。
NetworkType String vpc

实例网络类型。取值范围:

  • classic:经典网络。
  • vpc:专有网络VPC。
UserData String ZWNobyBoZWxsbyBlY3Mh

实例自定义数据,需要以Base64方式编码,原始数据最多为16 KB。

KeyPairName String testKeyPairName

密钥对名称。

  • Windows实例,忽略该参数。即使填写了该参数,仍旧只执行Password的内容。
  • Linux实例的密码登录方式会被初始化成禁止。
RamRoleName String testRamRoleName

实例RAM角色名称。您可以使用RAM API ListRoles查询您已创建的实例RAM角色。

AutoReleaseTime String 2018-01-01T12:05:00Z

自动释放时间。按照ISO8601标准表示,并需要使用UTC时间。格式为:yyyy-MM-ddTHH:mm:ssZ。

  • 如果秒(ss)取值不是00,则自动取为当前分钟(mm)开始时。
  • 最短释放时间为当前时间半小时之后。
  • 最长释放时间不能超过当前时间三年。
SpotStrategy String NoSpot

按量实例的抢占策略。当参数InstanceChargeType取值为PostPaid时生效。取值范围:

  • NoSpot:正常按量付费实例。
  • SpotWithPriceLimit:设置上限价格的抢占式实例。
  • SpotAsPriceGo:系统自动出价,跟随当前市场实际价格。
SpotPriceLimit Float 0.97

设置实例的每小时最高价格。支持最大3位小数,参数SpotStrategy取值为SpotWithPriceLimit时生效。

SpotDuration Integer 1

抢占式实例的保留时长,单位为小时。取值范围为0~6。

  • 保留时长2~6正在邀测中,如需开通请提交工单。
  • 取值为0,则为无保护期模式。

默认值为1。

ResourceGroupId String rg-bp67acfmxazb4p****

实例、块存储和弹性网卡所在的企业资源组ID。

TemplateResourceGroupId String rg-bp67acfmxazb4p****

启动模板所在的企业资源组ID。

SecurityEnhancementStrategy String Deactive

是否为操作系统开启安全加固。取值范围:

  • Active:启用安全加固,只对公共镜像生效。
  • Deactive:不启用安全加固,对所有镜像类型生效。
PrivateIpAddress String 10.1.**.**

实例私网IP地址。

专有网络VPC类型ECS实例设置私网IP地址时,必须从虚拟交换机(VSwitchId)的空闲网段中选择。

DeploymentSetId String ds-bp1brhwhoqinyjd6****

部署集ID。

Ipv6AddressCount Integer 1

为主网卡指定随机生成的IPv6地址数量。取值范围为1~10。

DataDisk.N.PerformanceLevel String PL1

创建ESSD云盘作为数据盘使用时,设置云盘的性能等级。N的取值必须和DataDisk.N.Category=cloud_essd中的N保持一致。取值范围:

  • PL0:单盘最高随机读写IOPS 1万。
  • PL1(默认):单盘最高随机读写IOPS 5万。
  • PL2:单盘最高随机读写IOPS 10万。
  • PL3:单盘最高随机读写IOPS 100万。

有关如何选择ESSD性能等级,请参见ESSD云盘

DataDisk.N.Description String testDataDiskDescription

数据盘描述。长度为2~256个英文或中文字符,不能以http://https://开头。

DataDisk.N.SnapshotId String s-bp17441ohwka0yuh****

创建数据盘N使用的快照。N的取值范围为1~16。指定参数DataDisk.N.SnapshotId后,参数DataDisk.N.Size会被忽略,实际创建的云盘大小为指定的快照的大小。

不能使用早于2013年7月15日(含)创建的快照,请求会报错被拒绝。

DataDisk.N.Size Integer 2000

第N个数据盘的容量大小,N的取值范围为1~16,内存单位为GiB。取值范围:

  • cloud:5~2000
  • cloud_efficiency:20~32768
  • cloud_ssd:20~32768
  • cloud_essd:具体取值范围与DataDisk.N.PerformanceLevel的取值有关。
    • PL0:40~32768。
    • PL1:20~32768。
    • PL2:461~32768。
    • PL3:1261~32768。

该参数的取值必须大于等于参数SnapshotId指定的快照的大小。

DataDisk.N.Device String null
说明 该参数即将停止使用,为提高代码兼容性,建议您尽量不要使用该参数。
DataDisk.N.DiskName String testDataDiskName

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

DataDisk.N.Category String cloud_ssd

数据盘n的云盘种类。取值范围:

  • cloud:普通云盘。
  • cloud_efficiency:高效云盘。
  • cloud_ssd:SSD云盘。
  • cloud_essd:ESSD云盘。

I/O优化实例的默认值为cloud_efficiency,非I/O优化实例的默认值为cloud。

DataDisk.N.DeleteWithInstance Boolean true

表示数据盘是否随实例释放。取值范围:

  • true:随实例释放。
  • false:不随实例释放。

默认值为true。

DataDisk.N.Encrypted String false

数据盘是否加密。

DataDisk.N.AutoSnapshotPolicyId String sp-m5e7fa9ute44ssa****

数据盘采用的自动快照策略ID。

DataDisk.N.ProvisionedIops Long 50000

ESSD AutoPL云盘预配置读写IOPS。取值范围:0~min{50000, 1000*容量-基准性能}。

基准性能=min{1,800+50*容量, 50,000}

说明 当DiskCategory取值为cloud_auto时才支持设置该参数。更多信息,请参见ESSD AutoPL云盘修改ESSD AutoPL云盘预配置信息
DataDisk.N.BurstingEnabled Boolean true

是否开启Burst(性能突发)。取值范围:

  • true:是。
  • false:否。
NetworkInterface.N.VSwitchId String vsw-bp1s5fnvk4gn2tws0****

弹性网卡所属的虚拟交换机ID。

您需要注意:

  • N的取值范围为1~2,设置1个弹性网卡时,支持设置1个主网卡或1个辅助网卡;设置2个弹性网卡时,仅支持同时设置1个主网卡和1个辅助网卡。
  • 如果NetworkInterface.N.InstanceType取值为Primary,则必须设置该参数。此时该参数的作用等同于VSwitchId,但需要注意不能同时设置VSwitchId参数。
  • 如果NetworkInterface.N.InstanceType取值为Secondary或空值,则该参数为非必填参数。默认值为ECS实例所属的虚拟交换机。
NetworkInterface.N.NetworkInterfaceName String testEniName

弹性网卡名称。

您需要注意:

  • N的取值范围为1~2,设置1个弹性网卡时,支持设置1个主网卡或1个辅助网卡;设置2个弹性网卡时,仅支持同时设置1个主网卡和1个辅助网卡。
  • 如果NetworkInterface.N.InstanceType取值为Primary,则无需设置该参数。
NetworkInterface.N.Description String testEniDescription

辅助弹性网卡描述信息。长度为2~256个英文或中文字符,不能以http://https://开头。NetworkInterface.N的N取值不能大于1。

NetworkInterface.N.SecurityGroupId String sg-bp15ed6xe1yxeycg****

弹性网卡所属的安全组ID。

您需要注意:

  • N的取值范围为1~2,设置1个弹性网卡时,支持设置1个主网卡或1个辅助网卡;设置2个弹性网卡时,仅支持同时设置1个主网卡和1个辅助网卡。
  • 如果NetworkInterface.N.InstanceType取值为Primary,则必须设置该参数。此时该参数的作用等同于SecurityGroupId,但需要注意不能再设置SecurityGroupIdSecurityGroupIds.NNetworkInterface.N.SecurityGroupIds.N
  • 如果NetworkInterface.N.InstanceType取值为Secondary或空值,则该参数为非必填参数。默认值为ECS实例所属的安全组。
NetworkInterface.N.PrimaryIpAddress String 192.168.**.**

添加一张弹性网卡并设置主IP地址。

您需要注意:

  • N的取值范围为1~2:
    • 设置1个弹性网卡时,支持设置1个主网卡或1个辅助网卡。如果Amount参数取值大于1,且设置了主网卡并设置了该参数,则表示在批量创建ECS实例时,以指定的主IP地址为起始地址,依次为多台ECS实例分配连续的主IP地址,但需要注意,此时不支持再为实例绑定辅助网卡。
    • 设置2个弹性网卡时,仅支持同时设置1个主网卡和1个辅助网卡,但需要注意,如果Amount参数取值大于1且已为主网卡设置了该参数,则不支持再设置辅助网卡(即不支持再设置NetworkInterface.2.InstanceType=Secondary)。
  • 如果NetworkInterface.N.InstanceType取值为Primary,则该参数的作用等同于PrivateIpAddress,但需要注意不能同时设置PrivateIpAddress参数。
  • 如果NetworkInterface.N.InstanceType取值为Secondary或空值,表示为辅助网卡设置主IP地址。默认从网卡所属的交换机网段中随机选择一个IP地址。
说明 创建ECS实例时,您最多能添加一张辅助网卡。实例创建成功后,您可以调用CreateNetworkInterfaceAttachNetworkInterface添加更多的辅助网卡。
NetworkInterface.N.SecurityGroupIds.N String sg-bp67acfmxazb4p****

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

  • 第一个N的取值范围为1~2,设置1个弹性网卡时,支持设置1个主网卡或1个辅助网卡;设置2个弹性网卡时,仅支持同时设置1个主网卡和1个辅助网卡。
  • 第二个N表示可以指定一个或多个安全组ID。N的取值范围与实例能够加入安全组配额有关,更多信息,请参见安全组限制

您需要注意:

  • 如果NetworkInterface.N.InstanceType取值为Primary,则必须设置该参数或NetworkInterface.N.SecurityGroupId。此时该参数的作用等同于SecurityGroupIds.N,但需要注意不能再设置SecurityGroupIdSecurityGroupIds.NNetworkInterface.N.SecurityGroupId
  • 如果NetworkInterface.N.InstanceType取值为Secondary或空值,则该参数为非必填参数。默认值为ECS实例所属的安全组。
NetworkInterface.N.InstanceType String ecs.g5.large

实例规格。

NetworkInterface.N.NetworkInterfaceTrafficMode String Standard

主网卡的通讯模式。参数取值范围:

  • Standard:使用TCP通讯模式。
  • HighPerformance:开启ERI(Elastic RDMA Interface)接口,使用RDMA通讯模式。
Tag.N.Key String TestKey

实例、块存储和弹性网卡的标签键。N的取值范围:1~20。一旦传入该值,则不允许为空字符串。最多支持64个字符,不能以aliyunacs:开头,不能包含http://https://

Tag.N.Value String TestValue

实例、块存储和弹性网卡的标签值。N的取值范围:1~20。一旦传入该值,可以为空字符串。最多支持128个字符,不能以aliyun和acs:开头,不能包含http://或者https://。

SecurityGroupIds.N String sg-bp15ed6xe1yxeycg7****

实例加入的一个或多个安全组。N的取值范围与实例能够加入安全组配额有关,更多信息,请参见使用限制

说明 不支持同时指定SecurityGroupIdSecurityGroupIds.N

返回数据

名称 类型 示例值 描述
LaunchTemplateId String lt-m5eiaupmvm2op9d****

实例启动模板ID。

RequestId String 473469C7-AA6F-4DC5-B3DB-A3DC0DE3****

请求ID。

示例

请求示例

https://ecs.aliyuncs.com/?Action=CreateLaunchTemplate
&LaunchTemplateName=testLaunchTemplateName
&RegionId=cn-hangzhou
&TemplateTag.1.Key=TestKey
&TemplateTag.1.Value=TestValue
&VersionDescription=testVersionDescription
&ImageId=win2008r2_64_ent_sp1_en-us_40G_alibase_20170915.vhd
&InstanceType=ecs.g5.large
&SecurityGroupId=sg-bp15ed6xe1yxeycg****
&VpcId=vpc-bp12433upq1y5scen****
&VSwitchId=vsw-bp1s5fnvk4gn2tws03****
&InstanceName=testInstanceName
&Description=testECSDescription
&InternetMaxBandwidthIn=10
&InternetMaxBandwidthOut=10
&HostName=testHostName
&ZoneId=cn-hangzhou-g
&SystemDisk.Category=cloud_ssd
&SystemDisk.Size=40
&SystemDisk.DiskName=testSystemDiskName
&SystemDisk.Description=TestDisk
&DataDisk.1.Size=2000
&DataDisk.1.SnapshotId=s-bp17441ohwka0yuh****
&DataDisk.1.Category=cloud_ssd
&DataDisk.1.Encrypted=false
&DataDisk.1.DiskName=testDataDiskName
&DataDisk.1.Description=testDataDiskDescription
&DataDisk.1.DeleteWithInstance=true
&IoOptimized=optimized
&NetworkInterface.1.PrimaryIpAddress=192.168.**.**
&NetworkInterface.1.VSwitchId=vsw-bp1s5fnvk4gn2tws0****
&NetworkInterface.1.SecurityGroupId=sg-bp15ed6xe1yxeycg****
&NetworkInterface.1.NetworkInterfaceName=testEniName
&NetworkInterface.1.Description=testEniDescription
&PrivateIpAddress=10.1.**.**
&InstanceChargeType=PrePaid
&Period=1
&InternetChargeType=PayByTraffic
&NetworkType=vpc
&UserData=ZWNobyBoZWxsbyBlY3Mh
&RamRoleName=testRamRoleName
&AutoReleaseTime=2018-01-01T12:05:00Z
&SpotStrategy=NoSpot
&SpotPriceLimit=0.97
&SecurityEnhancementStrategy=Deactive
&Tag.1.Key=TestKey
&Tag.1.Value=TestValue
&<公共请求参数>

正常返回示例

XML格式

HTTP/1.1 200 OK
Content-Type:application/xml

<CreateLaunchTemplateResponse>
    <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3****</RequestId>
    <LaunchTemplateId>lt-m5eiaupmvm2op9d****</LaunchTemplateId>
</CreateLaunchTemplateResponse>

JSON格式

HTTP/1.1 200 OK
Content-Type:application/json

{
  "RequestId" : "473469C7-AA6F-4DC5-B3DB-A3DC0DE3****",
  "LaunchTemplateId" : "lt-m5eiaupmvm2op9d****"
}

错误码

HttpCode 错误码 错误信息 描述
400 InvalidRegion.NotExist %s 指定的地域不存在,请确认参数是否正确。
400 MissingParameter %s 缺失参数,请检查参数是否完整。
400 InvalidParameter %s 无效的参数。
400 InvalidLaunchTemplateName.Malformed The specified parameter LaunchTemplateName is not valid. 指定的参数 LaunchTemplateName 无效。
400 InvalidUserData.SizeExceeded %s 您设置的数据大小超过了允许的最大值。
400 InvalidUserData.Base64FormatInvalid %s 您设置的数据格式不正确,请选择规定的格式数据。
400 Duplicate.TagKey The Tag.N.Key contain duplicate key. 标签中存在重复的键,请保持键的唯一性。
400 InvalidTagKey.Malformed The specified Tag.n.Key is not valid. 指定的标签键参数有误。
400 InvalidTagValue.Malformed The specified Tag.n.Value is not valid. 指定的标签值参数有误。
403 LaunchTemplateLimitExceed %s 超出启动模版限制。
403 LaunchTemplateName.Duplicated %s 指定的启动模版名称已经存在。
403 QuotaExceed.Tags %s 标签数超过可以配置的最大数量。%s为变量,将根据调用API的实际情况动态返回错误信息。
404 InvalidResourceGroup.NotFound The ResourceGroup provided does not exist in our records. 资源组并不在记录中。
500 InternalError The request processing has failed due to some unknown error. 内部错误,请重试。如果多次尝试失败,请提交工单。

访问错误中心查看更多错误码。