创建实例模板。
实例模板是创建云主机实例的配置信息模板,包括镜像、实例规格、系统盘及数据盘类型和容量、私有网络及子网配置、安全组及登录信息等。实例模板可用于创建实例及用于配置高可用组(创建高可用组时必须指定实例模板)。使用实例模板创建实例时,无需重新指定实例模板已包括的参数,缩短您的部署时间。
请注意:实例模板一经创建后其属性将不能编辑,如需调整参数请重新创建实例模板替换使用。
详细操作说明请参考帮助文档:创建实例模板
创建实例模板的限制基本与创建云主机一致,可参考 创建云主机。
实例模板中包含创建云主机的大部分配置参数,可以避免每次创建云主机时的重复性配置参数的工作。
使用实例模板创建云主机时,如果再次指定了某些参数,并且与实例模板中的参数相冲突,那么新指定的参数会替换模板中的参数,以新指定的参数为准。
使用实例模板创建云主机时,如果再次指定了镜像ID,并且与模板中的镜像ID不一致,那么模板中的 systemDisk
和 dataDisks
配置会失效,以新指定的镜像为准。
如果使用高可用组(Ag)创建云主机,那么Ag所关联的模板中的参数都不可以被调整,只能以模板为准。
POST
https://vm.jdcloud-api.com/v1/regions/{regionId}/instanceTemplates
名称 | 类型 | 是否必需 | 示例值 | 描述 |
---|---|---|---|---|
regionId | String | 是 | cn-north-1 | 地域ID。可参考地域及可用区。 |
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
instanceTemplateData | InstanceTemplateSpec | 是 | 实例模板配置信息。 | |
name | String | 是 | test | 实例模板的名称,参考 公共参数规范。 |
description | String | 否 | test | 实例模板的描述,参考 公共参数规范。 |
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
instanceType | String | 是 | g.n2.xlarge | 实例规格,可查询 DescribeInstanceTypes 接口获得指定地域或可用区的规格信息。 |
imageId | String | 是 | img-m5s0****29 | 镜像ID,可查询 DescribeImages 接口获得指定地域的镜像信息。 |
password | String | 否 | Instance@010 | 实例密码。可用于SSH登录和VNC登录。长度为8~30个字符,必须同时包含大、小写英文字母、数字和特殊符号中的三类字符。特殊符号包括:()`~!@#$%^&*_-+=|{}[ ]:";'<>,.?/,更多密码输入要求请参见 公共参数规范。 如指定密钥且 passwordAuth 设置为 true ,则密码不会生成注入,否则即使不指定密码系统也将默认自动生成随机密码,并以短信和邮件通知。 |
keyNames | String[ ] | 否 | ["keypair001"] | 密钥对名称。仅Linux系统下该参数生效,当前仅支持输入单个密钥。 |
metadata | Metadata[ ] | 否 | 用户自定义元数据。以key-value键值对形式指定,可在实例系统内通过元数据服务查询获取。最多支持20对键值对,且key不超过256字符,value不超过16KB,不区分大小写。 注意:key不要以连字符(-)结尾,否则此key不生效。 | |
userdata | Userdata[ ] | 否 | 自定义脚本。目前仅支持启动脚本,即 launch-script ,须 base64 编码且编码前数据长度不能超过16KB。 linux系统 :支持 bash 和 python ,编码前须分别以 #!/bin/bash 和 #!/usr/bin/env python 作为内容首行。 Windows系统 :支持 bat 和 powershell ,编码前须分别以 <cmd></cmd>和<powershell></powershell> 作为内容首、尾行。 |
|
elasticIp | InstanceTemplateElasticIpSpec | 否 | 主网卡主IP关联的弹性公网IP配置。 | |
primaryNetworkInterface | InstanceTemplateNetworkInterfaceAttachmentSpec | 是 | 主网卡配置。 | |
systemDisk | InstanceTemplateDiskAttachmentSpec | 否 | 系统盘配置。 | |
dataDisks | InstanceTemplateDiskAttachmentSpec[ ] | 否 | 数据盘配置。单实例最多可挂载云硬盘(系统盘+数据盘)的数量受实例规格的限制。 | |
chargeOnStopped | String | 否 | 停机不计费模式。该参数仅对按配置计费且系统盘为云硬盘的实例生效,并且不是专有宿主机中的实例。配置停机不计费且停机后,实例部分将停止计费,且释放实例自身包含的资源(CPU/内存/GPU/本地数据盘)。 可选值: keepCharging (默认值):停机后保持计费,不释放资源。 stopCharging :停机后停止计费,释放实例资源。 |
|
autoImagePolicyId | String | 否 | pol-xgsc****7e | 自动任务策略ID。 |
passwordAuth | String | 否 | true | 是否允许SSH密码登录。 yes :允许SSH密码登录。 no :禁止SSH密码登录。 仅在指定密钥时此参数有效,指定此参数后密码即使输入也将被忽略,同时会在系统内禁用SSH密码登录。 |
imageInherit | String | 否 | 是否使用镜像中的登录凭证,不再指定密码或密钥。 yes :使用镜像登录凭证。 no (默认值):不使用镜像登录凭证。 仅使用私有或共享镜像时此参数有效。若指定imageInherit=yes 则指定的密码或密钥将无效。 |
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
diskCategory | String | 否 | 磁盘类型。 系统盘 :此参数无须指定,其类型取决于镜像类型。 数据盘 :数据盘仅支持云硬盘cloud 。 |
|
autoDelete | Boolean | 否 | true | 是否随实例一起删除,即删除实例时是否自动删除此磁盘。此参数仅对按配置计费的非多点挂载云硬盘生效。 true :随实例删除。 false (默认值):不随实例删除。 |
cloudDiskSpec | InstanceTemplateDiskSpec | 否 | 磁盘详细配置。此参数仅针对云硬盘,本地系统盘无须指定且指定无效。 | |
deviceName | String | 否 | vdb | 磁盘逻辑挂载点。 系统盘 :此参数无须指定且指定无效,默认为vda。 数据盘 :取值范围:[vdb~vdbm] 。 |
noDevice | Boolean | 否 | 排除设备,使用此参数 noDevice 配合 deviceName 一起使用。 创建实例模板的场景下:使用此参数可以排除镜像中的数据盘。 示例:如果镜像中除系统盘还包含一块或多块数据盘,期望仅使用镜像中的部分磁盘,配置deviceName=vdb 、noDevice=true ,则表示在使用实例模板创建实例时,忽略镜像中数据盘vdb配置,不创建磁盘。 |
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
diskType | String | 否 | ssd.io1 | 云硬盘类型。各类型介绍请参见云硬盘类型。 可选值: ssd.gp1 :通用型SSD ssd.io1 :性能型SSD hdd.std1 :容量型HDDssd.io2 :增强型SSD ssd.gp2 :第二代通用型SSD |
diskSizeGB | Integer | 否 | 50 | 云硬盘容量,单位为 GiB,步长10GiB。 取值范围: 系统盘:[40,500] GiB,且不能小于镜像系统盘容量 数据盘:[20,32000] GiB,如指定snapshotId 创建云硬盘则不能小于快照容量。 |
snapshotId | String | 否 | snapshot-h8u1****36 | 创建云硬盘的快照ID。 |
policyId | String | 否 | ss-policy-5v25****us | 云硬盘自动快照策略ID。 |
encrypt | Boolean | 否 | 云硬盘是否加密。 可选值: true :加密 false (默认值):不加密 |
|
iops | Integer | 否 | 1000 | 云硬盘IOPS,步长为10。 diskType=ssd.gp1 时,默认:min{ 2000+10 * 容量 ,10000 } ,不支持自定义 diskType=ssd.io1 时,默认:min{ 200+50 * 容量,64000 } ,取值范围:[200, min{200+容量 * 100 ,64000}] diskType=ssd.io2 时,默认:min{ 200+50 * 容量,150000 } ,取值范围:[200, min{200+容量 * 300 ,150000}] diskType=ssd.gp2 时,默认:min{ 2000+10 * 容量 ,10000 } ,不支持自定义 |
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
deviceIndex | Integer | 否 | 1 | 网卡设备Index。创建实例时此参数无须指定且指定无效。 对于主网卡默认Index为1。 |
autoDelete | Boolean | 否 | true | 是否随实例一起删除。 true :随实例删除。 false :不随实例删除。 主网卡此属性默认为true |
networkInterface | InstanceTemplateNetworkInterfaceSpec | 否 | 网卡设备详细配置。 |
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
subnetId | String | 是 | subnet-c2p3****9o | 子网ID。 |
securityGroups | String[ ] | 否 | 安全组ID列表。 | |
sanityCheck | Integer | 否 | 参数已弃用,指定无效。 |
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
bandwidthMbps | Integer | 是 | 20 | 弹性公网IP的带宽上限,单位:Mbps。 取值范围为:[1-200] 。 |
provider | String | 否 | BGP | 弹性公网IP线路。中心可用区目前仅提供BGP 类型IP。 |
chargeMode | String | 是 | bandwith | 弹性公网IP计费模式。可选值: bandwith :按带宽计费 flow :按流量计费。若指定chargeSpec=bandwith 则弹性公网IP计费类型同实例(包年包月或按配置)。边缘可用区目前仅支持flow 计费模式。 |
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
key | String | 否 | launch-script | 脚本类型,当前仅支持输入 launch-script ,即启动脚本。 |
value | String | 否 | IyEvYmluL2Jhc2gKZWNobyAnMTIzJw | 脚本内容,须 Base64 编码,且编码前长度不能超过16KB。 |
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
key | String | 否 | index | key,字符长度不超过256,支持全字符。不能以连字符(-)结尾,否则此key不生效。 |
value | String | 否 | 1 | value,字符长度不超过16KB,支持全字符。 |
名称 | 类型 | 示例值 | 描述 |
---|---|---|---|
result | Result | 响应结果。 | |
requestId | String | c2hmmaan8w06w19qcdfuic4w03f7ft2d | 请求ID。 |
名称 | 类型 | 示例值 | 描述 |
---|---|---|---|
instanceTemplateId | String | it-u3o8****yy | 实例模板ID。 |
POST
/v1/regions/cn-north-1/instanceTemplates
{
"name":"test",
"description":"test",
"instanceTemplateData":{
"instanceType":"p.n1p40h.3xlarge",
"imageId":"img-m5s0****29",
"password":"Instance@010",
"primaryNetworkInterface":{
"autoDelete":true,
"networkInterface":{
"subnetId":"subnet-c2p3****9o",
"securityGroups":[
"sg-p2d1****ya"
]
}
},
"systemDisk":{
"diskCategory":"cloud",
"cloudDiskSpec":{
"diskType":"ssd.gp1",
"diskSizeGB":100
},
"deviceName":"",
"noDevice":null
},
"dataDisks":[
{
"diskCategory":"cloud",
"autoDelete":true,
"cloudDiskSpec":{
"diskType":"hdd.std1",
"diskSizeGB":100
},
"deviceName":"vdb"
}
],
"chargeOnStopped":"keepCharging",
"passwordAuth":"yes",
"imageInherit":"no"
}
}
{
"instanceTemplateId": "it-u3o8****yy"
}
HTTP状态码 | 错误码 | 描述 | 错误解析 |
---|---|---|---|
200 | OK | ||
400 | INVALID_ARGUMENT | Malformed InstanceTemplateData.Password 'xx' | 密码格式错误。 |
400 | FAILED_PRECONDITION | Invalid image status 'xx' | 镜像状态错误。 |
400 | FAILED_PRECONDITION | Image constraints. Only support cloud system disk | 本地系统盘选择了云盘系统盘的镜像。 |
400 | FAILED_PRECONDITION | Image constraints. Only support local system disk | 云盘系统盘选择了本地系统盘的镜像。 |
400 | FAILED_PRECONDITION | Image constraints. Doesn't support instanceType 'xx' | 镜像不支持这个实例规格。 |
400 | CONFLICT | Subnet 'xx' not support ipv6 | 所选子网不支持IPv6。 |
400 | OUT_OF_RANGE | InstanceTemplateData.SystemDisk.CloudDiskSpec.DiskSizeGB out of range | 系统盘容量超出允许范围。 |
400 | OUT_OF_RANGE | InstanceTemplateData.SystemDisk.CloudDiskSpec.Iops out of range | 云硬盘iops超出允许范围。 |
404 | NOT_FOUND | Snapshot 'xx' not found | 指定的快照不存在。 |
404 | NOT_FOUND | InstanceType 'xx' not found | 实例规格不存在。 |
404 | NOT_FOUND | Subnet 'xx' not found | 子网不存在。 |
404 | NOT_FOUND | SecurityGroups 'xx' not found | 安全组不存在。 |
404 | NOT_FOUND | KeyPair 'xx' not found | 密钥不存在。 |
404 | NOT_FOUND | Image 'xx' not found | 镜像不存在。 |
429 | QUOTA_EXCEEDED | InstanceTemplate quota limit exceeded | 实例模板配额不足。 |
500 | INTERNAL | Internal server error | 系统内部错误,请稍后重试。如果多次尝试失败,请提交工单。 |
500 | UNKNOWN | Unknown server error | 服务暂时不可用,请稍后重试。如果多次尝试失败,请提交工单。 |
我们的产品专家为您找到最合适的产品/解决⽅案
1v1线上咨询获取售前专业咨询
专业产品顾问,随时随地沟通