云主机

产品文档

云主机

帮助中心 > OpenAPI & SDK > 云主机 > createInstanceTemplate

createInstanceTemplate

描述

创建实例模板。

实例模板是创建云主机实例的配置信息模板,包括镜像、实例规格、系统盘及数据盘类型和容量、私有网络及子网配置、安全组及登录信息等。实例模板可用于创建实例及用于配置高可用组(创建高可用组时必须指定实例模板)。使用实例模板创建实例时,无需重新指定实例模板已包括的参数,缩短您的部署时间。

请注意:实例模板一经创建后其属性将不能编辑,如需调整参数请重新创建实例模板替换使用。

详细操作说明请参考帮助文档:创建实例模板

接口说明

  • 创建实例模板的限制基本与创建云主机一致,可参考 创建云主机
  • 实例模板中包含创建云主机的大部分配置参数,可以避免每次创建云主机时的重复性配置参数的工作。
  • 使用实例模板创建云主机时,如果再次指定了某些参数,并且与实例模板中的参数相冲突,那么新指定的参数会替换模板中的参数,以新指定的参数为准。
  • 使用实例模板创建云主机时,如果再次指定了镜像ID,并且与模板中的镜像ID不一致,那么模板中的 systemDiskdataDisks 配置会失效,以新指定的镜像为准。
  • 如果使用高可用组(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 实例模板的描述,参考 公共参数规范

InstanceTemplateSpec

名称 类型 是否必选 示例值 描述
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系统:支持 bashpython,编码前须分别以 #!/bin/bash#!/usr/bin/env python 作为内容首行。
Windows系统:支持 batpowershell,编码前须分别以 <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则指定的密码或密钥将无效。

InstanceTemplateDiskAttachmentSpec

名称 类型 是否必选 示例值 描述
diskCategory String 磁盘类型。
系统盘:此参数无须指定,其类型取决于镜像类型。
数据盘:数据盘仅支持云硬盘cloud
autoDelete Boolean true 是否随实例一起删除,即删除实例时是否自动删除此磁盘。此参数仅对按配置计费的非多点挂载云硬盘生效。
true:随实例删除。
false(默认值):不随实例删除。
cloudDiskSpec InstanceTemplateDiskSpec 磁盘详细配置。此参数仅针对云硬盘,本地系统盘无须指定且指定无效。
deviceName String vdb 磁盘逻辑挂载点。
系统盘:此参数无须指定且指定无效,默认为vda。
数据盘:取值范围:[vdb~vdbm]
noDevice Boolean 排除设备,使用此参数 noDevice 配合 deviceName 一起使用。
创建实例模板的场景下:使用此参数可以排除镜像中的数据盘。
示例:如果镜像中除系统盘还包含一块或多块数据盘,期望仅使用镜像中的部分磁盘,配置deviceName=vdbnoDevice=true,则表示在使用实例模板创建实例时,忽略镜像中数据盘vdb配置,不创建磁盘。

InstanceTemplateDiskSpec

名称 类型 是否必选 示例值 描述
diskType String ssd.io1 云硬盘类型。各类型介绍请参见云硬盘类型
可选值:
ssd.gp1:通用型SSD
ssd.io1:性能型SSD
hdd.std1:容量型HDD
diskSizeGB Integer 50 云硬盘容量,单位为 GiB,步长10GiB。
取值范围:
系统盘:[40,500]GiB,且不能小于镜像系统盘容量
数据盘:[20,16000]GiB,如指定snapshotId创建云硬盘则不能小于快照容量。
snapshotId String snapshot-h8u1****36 创建云硬盘的快照ID。
policyId String ss-policy-5v25****us 云硬盘自动快照策略ID。
encrypt Boolean 云硬盘是否加密。
可选值:
true:加密
false(默认值):不加密
iops Integer 1000 云硬盘的最大iops。

InstanceTemplateNetworkInterfaceAttachmentSpec

名称 类型 是否必选 示例值 描述
deviceIndex Integer 1 网卡设备Index。创建实例时此参数无须指定且指定无效。
对于主网卡默认Index为1。
autoDelete Boolean true 是否随实例一起删除。
true:随实例删除。
false:不随实例删除。
主网卡此属性默认为true
networkInterface InstanceTemplateNetworkInterfaceSpec 网卡设备详细配置。

InstanceTemplateNetworkInterfaceSpec

名称 类型 是否必选 示例值 描述
subnetId String subnet-c2p3****9o 子网ID。
securityGroups String[ ] 安全组ID列表。
sanityCheck Integer 参数已弃用,指定无效。

InstanceTemplateElasticIpSpec

名称 类型 是否必选 示例值 描述
bandwidthMbps Integer 20 弹性公网IP的带宽上限,单位:Mbps。
取值范围为:[1-200]
provider String BGP 弹性公网IP线路。中心可用区目前仅提供BGP类型IP。
chargeMode String bandwith 弹性公网IP计费模式。可选值:
bandwith:按带宽计费
flow:按流量计费。若指定chargeSpec=bandwith则弹性公网IP计费类型同实例(包年包月或按配置)。边缘可用区目前仅支持flow计费模式。

Userdata

名称 类型 是否必选 示例值 描述
key String launch-script 脚本类型,当前仅支持输入 launch-script,即启动脚本。
value String IyEvYmluL2Jhc2gKZWNobyAnMTIzJw 脚本内容,须 Base64 编码,且编码前长度不能超过16KB。

Metadata

名称 类型 是否必选 示例值 描述
key String index key,字符长度不超过256,支持全字符。不能以连字符(-)结尾,否则此key不生效。
value String 1 value,字符长度不超过16KB,支持全字符。

返回参数

名称 类型 示例值 描述
result Result 响应结果。
requestId String c2hmmaan8w06w19qcdfuic4w03f7ft2d 请求ID。

Result

名称 类型 示例值 描述
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 服务暂时不可用,请稍后重试。如果多次尝试失败,请提交工单。
更新时间:2021-10-09 17:28:31
文档反馈 docs feedback