CreateInstances
1. 接口描述
本接口用于原先使用VM API的客户创建一个或多个指定配置的ZEC实例。
准备工作
查询机型规格:调用
DescribeZoneInstanceConfigInfos
可以查询到规格信息。查询镜像:调用
DescribeImages
可以查询到镜像信息。查询密钥对:调用
DescribeKeyPairs
可以查询到密钥对ID信息。
2. 请求参数
以下请求参数列表仅列出了接口中需要的请求参数
zoneId
是
String
实例所在节点ID。
resourceGroupId
否
String
实例所在的资源组ID。 如果不指定资源组,则会放到默认的资源组中。
instanceName
否
String
实例显示名称。
范围2到63个字符。仅支持输入字母、数字、-和英文句点(.)。且必须以数字或字母开头和结尾。
购买多台实例,可以指定模式串[begin_number,bits]
。begin_number:有序数值的起始值,取值支持[0,99999],默认值为0。bits:有序数值所占的位数,取值支持[1,6],默认值为6。注意模式串中不得有空格。购买1台时,例如server-[3,3]
实例显示为server003
;购买2台时,实例显示名分别为server003
,server004
。支持指定多个模式串,如server-[3,3]-[1,1]
。
默认值为 instance。
instanceCount
否
Integer
指定创建ZEC实例的数量。
取值范围:1~100。 默认值:1。
password
否
String
实例的密码。与keyId必须指定其中的一种。 必须是8-16位,必须包含以下3种格式的字符:
大小写字母: [a-zA-Z]
数字: 0-9
特殊字符:
`~!@$^*-_=+|;:,.?
keyId
否
String
密钥ID。与password必须指定其中的一种。
可调用接口DescribeKeyPairs
来获得最新的密钥对信息。
关联密钥后,就可以通过对应的私钥来访问实例;密钥与密码不能同时指定,同时Windows操作系统不支持指定密钥。 示例值:key-YWD2QFOl
trafficPackageSize
否
Float
流量包订购大小。
单位为TB。该值必须在internetChargeType = ByTrafficPackage时才会生效,默认值为0。
subnetId
是
String
私有网络子网ID,请确保subnet支持公网配置。
timeZone
否
String
实例对应的时区,默认Asia/Shanghai。
enableAgent
否
Boolean
是否开启agent,默认开启。
enableIpForward
否
Boolean
是否开启ip转发,默认关闭。
3. 响应结果
instanceIdSet
Array of String
虚拟机实例ID列表。
当通过本接口来创建实例时会返回该参数,表示一个或多个实例ID
。返回实例ID
列表并不代表实例创建成功,可根据 DescribeInstances
接口查询返回的dataSet中对应实例的状态来判断创建是否完成:如果实例状态由DEPLOYING
变为RUNNING
,则为创建成功;如果实例找不到或状态变为CREATE_FAILED
则表示创建失败。
orderNumber
String
订单编号。
requestId
String
唯一请求 ID。
每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
4. 代码示例
{% tabs %} {% tab title="示例" %} 1. 用最简单的参数创建一台实例 在上海1创建一台实例,规格为1c2g,系统盘为标准型 NVMe SSD,网络计费方式为流量计费,用密钥对登录,安装ubuntu24.04镜像。
`
``json POST /api/v2/zec HTTP/1.1 Host: console.zenlayer.com Content-Type: application/json X-ZC-Action: CreateInstances
Request: { "zoneId": "asia-east-1a", "instanceType": "z2a.cpu.1", "imageId": "ubuntu2404_20240712", "instanceName": "Sherlock1126151625", "instanceCount": 1, "keyId": "key-rcfljdP5", "internetChargeType": "ByTrafficPackage", "subnetId": "1272168087751233112", "systemDisk": { "diskSize": 40, "diskCategory": "Standard NVMe SSD" } }
Response: { "requestId": "TA471524B-84E1-467B-AB77-75387BBD190B", "response": { "requestId": "TA471524B-84E1-467B-AB77-75387BBD190B", "instanceIdSet": [ "1298293022710045792" ], "instances": [ { "instanceId": "1298293022710045792", "diskIdSet": [] } ], "orderNumber": "1298293056927172914" } }
</div>
</div>
## 5. 开发者工具
Zenlayer Cloud API 2.0 提供了配套的[开发工具集(SDK)](../../api-introduction/toolkit/),未来会陆续支持更多开发语言,方便快速接入和使用Zenlayer的产品和服务。
## 6. 错误码
下面包含业务逻辑中遇到的错误码,其他错误码见[公共错误码](../../api-introduction/instruction/commonerrorcode.md)
| HTTP状态码 | 错误码 | 说明 |
| ------- | ----------------------------------------------------------- | --------------------------------------------- |
| 400 | INVALID\_PARAMETER\_INSTANCE\_NAME\_EXCEED | 参数instanceName超过了长度限制,请注意模式串中的bits总和不要超过指定长度。 |
| 400 | INVALID\_PARAMETER\_INSTANCE\_NAME\_MALFORMED | 参数instanceName格式不正确,请注意输入值在规定的字符内。 |
| 404 | INVALID\_IMAGE\_NOT\_FOUND | 指定的镜像不存在。 |
| 404 | INVALID\_ZONE\_NOT\_FOUND | 指定的可用区不存在。 |
| 404 | INVALID\_INSTANCE\_TYPE\_NOT\_FOUND | 指定的实例规格不存在。 |
| 403 | INVALID\_SUBNET\_NOT\_FOUND | 指定的子网不存在。 |
| 403 | INVALID\_INSTANCE\_COUNT\_LIMITATION | 机器创建数量超过了当前Team的总配额。 |
| 400 | INVALID\_KEY\_PAIR\_NOT\_FOUND | 指定的密钥对不存在。 |
| 400 | RESOURCE\_INSUFFICIENT\_PRODUCT\_SOLD\_OUT | 所选资源未售卖。 |
| 403 | INVALID\_IMAGE\_SIZE\_EXCEED | 指定的镜像大小大于系统盘大小。 |
| 400 | INVALID\_DISK\_SIZE\_LESS\_MINIMUM | 数据盘大小超过了最小限制。 |
| 400 | INVALID\_DISK\_SIZE\_EXCEED\_MAXIMUM | 数据盘大小超过了最大限制。 |
| 403 | OPERATION\_DENIED\_SUBNET\_ZONE\_MISMATCH | 创建虚拟机实例加入的子网和所选可用区不一致 |
| 400 | OPERATION\_FAILED\_RESOURCE\_GROUP\_NOT\_FOUND | 指定的资源组不存在。 |
| 400 | INVALID\_PARAMETER\_INSTANCE\_NAME\_EXCEED\_MINIMUM\_LENGTH | 实例的名称超过了最小限制。 |
| 400 | INVALID\_PARAMETER\_INSTANCE\_NAME\_EXCEED | 实例的名称超过了最大限制。 |
| 400 | INVALID\_SYSTEM\_DISK\_EXCEED\_LIMIT | 指定的系统盘大小超过了指定限制。 |
| 400 | INVALID\_INSTANCE\_TYPE\_ZONE\_NO\_SELL | 所选规格在所选区域已售罄或未开售。 |
| 403 | OPERATION\_DENIED\_INTERNET\_CHARGE\_TYPE\_NOT\_SUPPORT | 指定的区域不支持对应的公网网络计费方式。 |
| 400 | INVALID\_PASSWORD\_MALFORMED | 输入的密码格式错误, 请检查字符都包含在规定的字符里。 |
| 404 | INVALID\_TIME\_ZONE\_NOT\_FOUND | 指定的时区不存在。 |
| 400 | STOCK\_INSUFFICIENT | 实例库存不足。 |
| 400 | INVALID\_DISK\_CATEGORY\_TYPE | 指定的云盘类型有误。 |
| 400 | INVALID\_PARAMETER\_TRAFFIC\_PACKAGE\_EXCEED | 设定的流量包大小超过最大限制。 |
| 400 | INVALID\_PARAMETER\_TRAFFIC\_PACKAGE | 设定的流量包大小值不合法,必须是0.1或1的倍数。 |
| 400 | OPERATION\_DENIED\_EIP\_UNSUPPORT\_NETWORK\_TYPE | 指定的eip网络类型不支持实例的创建。 |
| 400 | OPERATION\_DENIED\_EIP\_INSUFFICIENT | EIP的库存不足。 |
| 400 | OPERATION\_DENIED\_SUBNET\_TYPE\_NOT\_SUPPORT | 所选的子网堆栈类型不支持。 |
| 400 | INVALID\_IMAGE\_IPV6\_NOT\_SUPPORT | 所选的镜像不支持IPV6的堆栈类型。 |
| 400 | INVALID\_IMAGE\_AGENT\_NOT\_SUPPORT | 所选的镜像不支持agent。 |
| 404 | INVALID\_PASSWORD\_KEY\_PAIR\_NOT\_FOUND | 实例密码或密钥对未指定。 |
| 400 | INVALID\_LOGIN\_SETTING\_CONFLICT | 实例密码或密钥对不能同时指定。 |
| 400 | INVALID\_DISK\_ILLEGAL\_AMOUNT | 随实例创建的数据盘大小超过限制。 |
##
最后更新于