批量创建实例

接口说明


创建按量或包年包月的实例(支持批量),本接口为异步接口,当前创建主机请求发送成功后,会返回实例ID,主机的创建和启动并不是立即完成的,需要调用查询实例状态信息列表查看实例信息,当返回信息中的状态为active时代表创建并启动成功。

使用须知

  1. 创建实例会涉及资源计费,建议您提前了解云服务器 ECS 的计费方式。

  2. 请妥善保管AccessKey,以防通过接口产生不知情订购资费。

  3. 该接口会创建实例并创建订单,支持按量、包月、包年订购实例产品,订购按月预付费及包年预付费实例产品时,将会返回支付链接,需用户自行前往该链接支付。

注意事项

  1. 若不指定launchTemplateId(模板ID),那么zoneId(可用区),imageId(镜像ID),flavorName(规格名称),networkId(网络ID)等相关参数必填。

  2. 弹性裸金属计算型与本地存储型规格目前仅支持挂载高性能型系统盘和数据盘,弹性裸金属暂不支持按量计费。

  3. 本接口正常支持最大300并发。

  4. 若您设置的系统盘size小于镜像要求的最小值,将自动更新为当前镜像所允许的最小值。例如:某linux镜像要求最小值为30,您设置的系统盘size为20,最终实例创建成功后size为30。

  5. 若参数publicNetwork.bandwidthSize的值大于0,则自动为实例创建弹性公网IP,并产生计费。

  6. 参数userData:您可传入UserData信息。因为传输API请求时,不会加密您设置的UserData,建议不要以明文方式传入机密的信息,例如密码和私钥等。如果必须传入,建议自行加密后,在实例内部以同样的方式反解密。

  7. 参数password:采用RSA对明文加密,用户可用该公钥自行加密明文得到密文。明文8-16位字符,同时包括数字、大小写字母和特殊字符,其中不能出现3个及以上连续或重复的数字,如123、111等,以及特殊字符最多不能超过3个,且需要在“~ @ # $ % * _ - + = , . ? [ ] { }”范围内。(password和keypairName仅能填写一个 )不建议使用包含姓名、电话、出生日期、账号名、系统名以及公司名的密码;不建议使用包含连续的字母、键位或重复的字母、字符的密码,比如abc、asd、@#$、AAA、###等。

  8. 公钥内容:

-----BEGIN PUBLIC KEY----- 
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC/VpRysi0bPRLS7sbgQDJHo1MAt9/bK +nwK5Pe3z0/O4cH5I/8kFNYy4yFsLMM+zyFvVw9C4wzjHaRcmEuF3ziJMC9PD5ufUWgfO 5nSGgZW1cmgjqnhcWJ3i+Azj72RnhKQRCn9DgJduEC9MiKfbyTICGd6FXf9cxb21nkxI7vtwIDAQAB 
-----END PUBLIC KEY-----
  1. 由于海光芯片与Windows系统存在已知的兼容性差异,使用此组合可能导致性能未达最优或偶发不稳定,如启动阶段蓝屏、系统崩溃等问题。建议您在生产部署业务前充分进行兼容性测试。

  2. 参数spotStrategy和spotPriceLimit:抢占式实例不与任何优惠叠加,仅支持互联网客户订购,支持产品类型为计算型c5规格。

使用建议

1.可以使用dryRun = true来进行参数预检。

请求示例

假设您需要在苏州可用区2创建两台实例。期望使用一些特定镜像、实例规格、网络ID,同时配置一定容量的系统盘和数据盘,并分配公网IP。相关配置请求参数如下:

{
    "zoneId": "cn-jiangsu-1b", // 设置可用区
    "imageId": "89fb5e86-ea26-4bac-b078-213093b8****", // 设置镜像ID
    "chargeMode": "HOUR", // 设置计费方式
    "flavorName": "c5.large.2", // 设置规格名称
    "bootVolume": {
        "size": 40, // 设置系统盘大小为40GB
        "volumeType": "highPerformance" // 设置系统盘类型为高性能型
    },
    "dataVolumes": [
        {
            "size": 40, // 设置数据盘大小为40GB
            "volumeType": "ssd" // 设置数据盘类型为高性能型
        }
    ],
    "privateNetwork": {
        "networkId": "84de0f1d-7718-4c6d-9f8c-b7e4a39d19d2" // 设置虚拟私有云网络ID
    },
    "publicNetwork": {
        "bandwidthSize": 10, // 设置弹性公网带宽为10Mb
        "ipType": "MOBILE" // 设置弹性公网类型
    },
    "instanceName": "test-ecs", // 设置实例名称
    "quantity": 2 // 设置创建数量
}

在上述配置基础上,创建不同类型的实例:

  1. 创建专属宿主机上云主机实例。
{
  "zoneId": "cn-jiangsu-1b", // 设置可用区
  "imageId": "89fb5e86-ea26-4bac-b078-213093b8****", // 设置镜像ID
  "chargeMode": "HOUR", // 设置计费方式,不支持按年;默认按量
  "flavorName": "c5.large.2", // 设置规格名称
  "bootVolume": {
    "size": 40, // 设置系统盘大小为40GB
    "volumeType": "highPerformance" // 设置系统盘类型为高性能型
  },
  "dataVolumes": [
    {
      "size": 40, // 设置数据盘大小为40GB
      "volumeType": "ssd", // 设置数据盘类型为高性能型
      "isShare": false // 是否设为共享数据盘
    }
  ],
  "privateNetwork": {
    "networkId": "84de0f1d-7718-4c6d-9f8c-b7e4a39d19d2", // 设置虚拟私有云网络ID
    "sourceDestCheck": true // 设置源目的地址检查
  },
  "instanceName": "test-ecs", // 设置实例名称
  "quantity": 2, // 设置创建数量
  "password": "xxxxxxx", // 实例密码
  "userData": "xxxxxxx", // 自定义参数
  "dedicatedHostClusterId": "9374" // 专属宿主机集群ID
}

注意: 除 keyPairName 外,上述示例中不包含的参数在订购宿主机上云主机实例时不生效。


推荐使用API Explorer调试

API Explorer支持接口在线可视化调用,同时自动生成动态代码示例,搭配OpenAPI SDK无需计算签名实现接口快速集成。

URL

POST https://ecloud.10086.cn/api/openapi-instance/v4/create-instances

请求参数

Body

参数名称
类型
必填
描述
instanceCreateInfo
InstanceCreateInfo
是

instanceCreateInfo

zoneId
string
否

可用区,可通过查询属地地域可用区信息接口获取。示例值:苏州可用区1的zoneId为cn-jiangsu-1a。

imageId
string
否
flavorName
string
否

规格名称。可通过查询实例可用规格列表获取。

autoRenew
boolean
否

是否自动续订。取值范围:

  • true:开启续订。
  • false:关闭续订。

默认值:false。

groupId
string
否

实例群组ID。可通过查询实例群组列表接口获取。

chargeMode
string
否

付费方式。取值范围:

  • YEAR:包年。
  • MONTH:包月。
  • HOUR:按量。

默认值:HOUR。

duration
integer(int32)
否

订购时长(月/年),单位由chargeMode指定。
取值范围:

  1. chargeMode = HOUR时:无需填写该参数,默认为0。
  2. chargeMode = MONTH时:政企集团或省集团客户取值范围为[0,60],如果取值为0,会设置成订购一个月并开启自动续订,1-60表示具体订购的月数; 互联网客户取值范围为[1,60],1-60表示具体订购的月数。
  3. chargeMode = YEAR时:包年付费填写需要订购的年数,取值范围为[1,5]。
quantity
integer(int32)
否

订购数量,取值范围为[1,300]。 默认值:1。

bootVolume
InstanceCreateBootVolume
否

系统盘。

size
integer(int32)
否

系统盘大小,单位为GB。最大取值为1024,最小取值不应小于镜像磁盘容量(即ImageId参数对应的minDisk,可通过查询镜像列表获取)。 默认值:

  1. Linux系统盘大小,max{20, 参数 imageId 对应的磁盘容量}。
  2. Windows系统盘大小,max{40, 参数 imageId 对应的磁盘容量}。
volumeType
string
否

系统盘类型,你可以通过查询可用区系统盘类型接口查看当前资源池可用区可用系统盘类型。详细请参考系统盘类型。

默认值:highPerformance。

displaySn
boolean
否

是否显示系统盘序列号,指定用户可设置,默认为空。取值范围:

  • true: 开启显示系统盘序列号。
  • false: 关闭显示系统盘序列号。
dataVolumes
<InstanceCreateDataVolume> array
否

数据盘信息集合列表。数据盘数量最高59块,具体数量以帮助中心规格为准;弹性裸金属最多添加15块数据盘(仅ebms.c6e.24xlarge.11和ebms.c6eh.28xlarge.14规格支持最多添加30块数据盘)。

size
integer(int32)
否

数据盘大小,单位为GB。取值范围为[10,32768]。

volumeType
string
否

数据盘类型。详细请参考数据盘类型。

默认值:capebs。

kmsKeyId
string
否

KMS密钥ID。您可以调用获取主密钥列表查看KMS密钥信息。若填写该参数,则对数据盘进行加密。该参数和isShare不可同时填写。

isShare
boolean
否

是否为共享数据盘。取值范围:

  • true:设置为共享数据盘。
  • false:不设置共享数据盘。

默认值:false。

privateNetwork
InstanceCreatePrivateNetwork
否

实例私有网络信息。

privateIp
string
否

指定IP地址。

networkId
string
否

指定与待创建实例同一可用区下的网络ID,您可以通过查询VPC下网络反参中的ID来获取该参数。

portId
string
否

指定网卡ID,您可以通过查询虚拟网卡列表获取。填写该参数时quantity取值只能为1。

portType
integer(int32)
否

网卡类型。取值范围:

  • 0:普通云主机网卡。
  • 1:云电脑网卡。云电脑网卡在调用关机释放资源后,网卡资源会进行释放。

默认值:0。

sourceDestCheck
boolean
否

是否开启源/目的地址检查。取值范围:

  • true:开启源/目的地址检查,会拦截源IP错误或不信任的数据包。
  • false:关闭源/目的地址检查,当服务器作网关、转发等功能时需关闭。

默认值:true。

注意:可通过虚拟私有云-可用区域中可用区类型确认当前可用区是否支持,其中B类可用区不支持,该参数不生效。

publicNetwork
InstanceCreatePublicNetwork
否

一体化订购公网IP产品。若新订购公网IP,则需要填写公网IP带宽大小;若使用已有公网IP,则填写eIpId。

ipType
string
否

公网IP类型。取值范围:

  • MOBILE:单线类型弹性公网IP。
  • MULTI_LINE:多线类型弹性公网IP。

默认值:MOBILE。

bandwidthSize
integer(int32)
否

公网IP带宽,单位:Mbps。取值范围为[0,500]。 注意:若该参数取值大于0,代表订购公网IP。 默认值:0。

chargeMode
string
否

公网IP带宽计费方式。取值范围:

  • bandwidthCharge:按带宽计费。
  • trafficCharge:按流量计费。

默认值:bandwidthCharge。

ipv4Bandwidth
boolean
否

是否开通IPv4公网带宽。取值范围:

  • true:开通ipv4公网带宽。
  • false:不开通ipv4公网带宽。

默认值:true。

ipv6Bandwidth
boolean
否

是否开通IPv6公网带宽。取值范围:

  • true: 开通ipv6公网带宽。
  • false: 不开通ipv6公网带宽。

默认值:false。

eIpId
string
否

已订购的弹性公网IP的ID,可通过查询公网IP列表(含带宽信息)接口获取。若填写该参数则不可新订购公网IP,且quantity取值只能为1。

sharedBandwidthId
string
否

已订购的共享带宽ID。可通过查询共享带宽列表接口获取。若填写该参数,不可填写bandwidthSize,eIpId,且chargeMode必须为bandwidthCharge。

securityGroupIds
<string> array
否

安全组ID数组。您可以通过查询安全组列表获取安全组ID。如果指定网卡ID(即privateNetwork.portId)不为空,此参数无效。安全组数量不能超过5个。

instanceName
string
否

实例名称。名称为5~59个字符,可包含英文、中文、数字,'-','-'不可在名称开头或末尾;

  1. 不指定实例名称时,实例名称与实例主机名称相同。
  2. 批量创建实例时,您可以批量设置有序的实例名称,并且可以包含方括号([])和逗号(,)。具体操作,请参见批量订购云主机时如何有序自定义设置实例名称。
instanceNameOption
InstanceNameOption
否

创建实例名字自定义参数。

hostName
string
否

实例主机名称,不指定主机名称时,随机生成。名称为5~59个字符,可包含英文、数字,'-','-'不可在名称开头或末尾;

  1. 若hostName为空,则随机生成主机名。
  2. 批量创建实例时,您可以批量设置有序的实例主机名称,并且可以包含方括号([])和逗号(,)。具体操作,请参见批量订购云主机时如何有序自定义设置实例名称。
allowInstanceNameDuplication
boolean
否

云主机实例名称重名参数,批量创建时生效。取值范围:

  • true:允许云主机实例重名。
  • false: 不允许云主机实例重名。

默认值:false。

allowHostNameDuplication
boolean
否

操作系统内部主机名重名参数,批量创建时生效。取值范围:

  • true:允许操作系统内部主机名重名。
  • false: 不允许操作系统内部主机名重名。

默认值:false。

password
string
否

实例密码。

  1. 采用RSA对明文加密,公钥内容详见接口说明,用户可用该公钥自行加密明文得到密文。
  2. 明文8-16位字符,同时包括数字、大小写字母和特殊字符,其中不能出现3个及以上连续或重复的数字以及特殊字符最多不能超过3个,且需要在“~ @ # $ % * _ - + = , . ? [ ] { }”范围内。
  3. password和keypairName仅能填写一个。
  4. 不建议使用包含姓名、电话、出生日期、账号名、系统名以及公司名的密码。
  5. 不建议使用包含连续的字母、键位或重复的字母、字符的密码,比如abc、asd、@#$、AAA、###等。
keyPairName
string
否

密钥对名称,可通过查询密钥列表获取。(password和keypairName仅能填写一个)。

userData
string
否

自定义参数,长度在[1,16384]个字符间。您可按照格式要求自行传入UserData信息。

  1. Windows支持bat格式,数据只能包含ASCII码字符,大小不能超过16KB。
  2. Linux支持user-data(shell脚本),数据只能包含ASCII码字符,大小不能超过16KB。
  3. 不同模式下底层拼接方法不一样,请严格按照各模式的脚本要求输入,否则可能会影响实例本身功能,详情可参考自定义数据说明。
description
string
否

实例描述,可输入[0,100]个字符。

dryRun
boolean
否

资源订购预检参数。取值范围:

  • true:发送检查请求,不会订购资源。如果检查不通过,则返回对应错误;如果检查通过,则返回错误码DryRunOperation。
  • false: 发送正常请求,通过检查后直接订购资源。

默认值:false。

launchTemplateId
string
否

启动模板 ID。您可以通过查询启动模板列表获取信息。

dedicatedHostClusterId
string
否

宿主机集群ID,您可以通过查看专属宿主机集群列表获取信息。

homotype
boolean
否

是否创建与宿主机同类型实例。

  • true: 创建与宿主机同类型实例。
  • false:不创建与宿主机同类型实例。

默认值:true。

gpuDriver
GpuDriver
否

GPU驱动版本信息。

cuda
string
是

GPU驱动安装cuda版本。

driver
string
是

GPU驱动安装driver版本。

cudnn
string
是

GPU驱动安装cudnn版本。

installGpuMonitorPlugin
boolean
否

是否自动安装GPU监控插件。

tags
<Tag> array
否

标签列表。
说明:

  1. 一次绑定的标签不能超过10个;
  2. 标签的键值不能以ecloud开头;
  3. 标签可绑定实例和硬盘资源。
key
string
是

标签键。

value
string
是

标签值。

cpuOptions
CpuOptions
否

CPU自定义参数。

stabilityPolicy
string
否

稳定性模式,指定客户可设置。取值范围:

  • BASE:虚拟机频率为当前CPU基频频率。
  • BALANCE:虚拟机频率设置为平衡模式。
  • CUSTOM:用户自定义设置频率范围。
    说明:选择CUSTOM模式时,如果设置超出当前支持的最大频率或者最小频率范围时,会自动设置成当前节点的最大频率或者最小频率。

默认值:BASE。

scalingMinFreq
integer(int32)
是

最小频率,单位Hz。仅当stabilityPolicy为CUSTOM时生效。

scalingMaxFreq
integer(int32)
是

最大频率,单位Hz。仅当stabilityPolicy为CUSTOM时生效。

threadsPerCore
integer(int32)
否

CPU 线程数,仅部分规格支持。取值范围:

  • 1: 关闭超线程。
  • 2: 开启超线程。

默认值:2。

topologyType
string
否

CPU 拓扑,仅部分规格支持。取值范围:

  • ContinuousCoreToHTMapping:HT连续模式。
  • DiscreteCoreToHTMapping:HT离散模式。 仅当threadsPerCore为2时生效。
customUserName
string
否

自定义用户名。自定义用户名为1-20个字符,可包含英文、数字和'-','-'不可在开头和末尾,不可全为数字。

spotStrategy
string
否

实例抢占策略。取值范围:

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

默认值:NoSpot。

spotPriceLimit
string
否

设置每小时最高价格,仅当spotStrategy为SpotWithPriceLimit时生效,取值范围[0,市场价],最多支持4位小数。

请求示例

POST https://ecloud.10086.cn/api/openapi-instance/v4/create-instances
{
	"zoneId":"cn-jiangsu-1a",
	"chargeMode":"HOUR",
	"flavorName":"s1.large.2",
	"bootVolume":{
		"size":40,
		"volumeType":"highPerformance"
	},
	"imageId":"9d652618-58a6-04ff-9d51-400480b79909",
	"privateNetwork":{
		"networkId":"d73fe71f-6753-4a0a-ab3c-243e2f32790e",
		"portType":0
	},
	"instanceName":"test-api-ip1",
	"password":"srzE9jsTwO0mo4EAhipn2gS1fZ9W/5Boi3fb0JME1j3gdFSKZ9u5pPCifzb/9mXQdpnasy/JKV70h5m7fSnLYtF33CMw0n9kqONNlIELUBurfoI9Wtyf0eKFmnDAxqV8UO4T2/BdO1WeF4Um9d9fyBe1OqFCczl15Jfaj9/GI9c=",
	"quantity":1
}

返回参数

返回码:200
OK
参数名称
类型
描述
body
InstanceOrderInfo

请求成功时返回的数据。

instanceIds
<string> array

主机实例ID集合。

orderExts
<OrderExt> array

订单项ID。

orderExtType
string

订单类型。vm(实例),highPerformance(高性能型系统盘),performanceOptimization(性能优化型系统盘)。

subOrderId
string

订单项ID。

orderId
string

订单ID。

paymentInfo
PaymentInfo

支付信息。

ActivityCode
string

交易代码。

BusiType
string

业务类型。

BusinessChannels
string

移动云全网渠道编码。

CerID
string

证书标识串。

ChargeMoney
string

充值金额。

CustomParam
string

商户自定义参数。

CustomerNumber
string

客户编码。

HomeProv
string

归属省份。

iDType
string

中国移动用户标识类型。

IDValue
string

中国移动用户号码。

NotifyURL
string

订单结果通知URL。

OrderMoney
string

订单总金额。

OrderNo
string

订单号。

Payment
string

用户支付金额。

ProductDesc
string

产品描述。

ProductID
string

产品编号。

ProductName
string

产品名称。

ProductURL
string

商品展示网址。

ReqChannel
string

请求方渠道编码。

ReturnURL
string

支付成功跳转返回页面URL。

SignValue
string

签名值。

TimeoutExpress
string

该笔订单允许的最晚付款时间。

WeiXinAppId
string

微信公众号ID/应用ID。

payLink
string

支付链接,paymentInfo节点下的所有以大写字母开头的参数,即序号为5.3~5.24的参数,用post+form表单的形式跳转到此链接。

procedureCode
enum(PREPAID,INTERNALAPPROVAL,POSTPAID)

付费类型。

resourceRemind
string

资源波动提示。

errorCode
string

统一错误码。

errorMessage
string

页面国际化错误提示。

errorParams
<string> array

统一错误码的自定义参数。

requestId
string

每个请求的序列号。

state
enum(OK,ERROR,EXCEPTION,ALARM,FORBIDDEN)

返回状态码。返回正常:OK,返回错误:ERROR,返回异常:EXCEPTION,需要告警实现的:ALARM,禁止访问:FORBIDDEN。

返回示例

返回码:200
OK
{
	"requestId":"reqId-b96e0631287345daaf3de263ac2bbe1e",
	"state":"OK",
	"body":{
		"procedureCode":"POSTPAID",
		"orderId":"MOP-O-25040326247628",
		"orderExts":[
			{
				"subOrderId":"MOP-T-25040394597920",
				"orderExtType":"vm"
			},
			{
				"subOrderId":"MOP-T-25040394597918",
				"orderExtType":"highPerformance"
			}
		],
		"instanceIds":[
			"e27c8f0b-3d81-4aae-a5c4-99269350ecd6"
		]
	}
}
本文档内容整理自移动云官方帮助中心(查看原文),仅供参考。