创建实例(通过指定实例套餐规格)
更新时间:2024-10-15
前提条件
创建实例需要实名认证,没有通过实名认证的可以前往百度智能云官网控制台中的安全认证下的个人认证或企业认证中进行认证。
BCC实例
-
计费注意事项:
- 创建计费方式为后付费的实例需要账户现金余额+通用代金券大于100;预付费方式的实例则需要账户现金余额大于等于实例费用。
- 指定公网IP带宽创建,计费方式为按照带宽计费。
-
实例注意事项:
- 通过spec字段指定需要创建的虚机类型,通过实例套餐规格列表接口来查看可使用实例套餐及套餐规格。
- 同一实例不可以同时购买GPU卡和FPGA卡,购买带有GPU卡或FPGA卡的实例时必须通过cardCount指定要购买的虚机所携带的GPU卡或FPGA卡数量。
-
存储注意事项:
- 创建实例时可以指定系统盘大小,指定系统盘大小范围为[40, 500]GB,可指定系统盘磁盘类型可参见StorageType。
- 创建实例时添加的系统盘在创建之后无法更改,且不支持单独创建或添加系统盘。
- 系统盘不支持挂载、卸载、删除。
- 创建CDS系统盘和数据盘时,支持按照1GB步长选择磁盘大小。
- 缺省情形下,一个实例最多只能挂载5个云磁盘。
- BCC实例的系统盘最大不能超过500G。
- 每个实例最多只能购买一块临时数据盘,临时数据盘默认只有hp1类型。
- 创建存储优化型实例时必须购买临时数据盘,通过ephemeralDisks指定临时盘数据盘大小,默认nvme类型数据盘,无需指定。
-
网络注意事项:
- BCC实例支持用户自定义安全组和子网,两者需要同时指定在同一个VPC下。如果未指定安全组和子网,在创建专属实例时会自动加入系统默认的安全组和子网内。
-
其他注意事项:
- 支持批量创建,且如果创建过程中有一个实例创建失败,所有实例将全部回滚,均创建失败,如果创建时包含CDS,CDS也会回滚。
- 创建接口为异步创建,可通过查询指定实例详情接口查询实例状态。
请求
请求结构
POST /v{version}/instanceBySpec?clientToken={clientToken} HTTP/1.1
Host: bcc.bj.baidubce.com
Authorization: authorization string
{
"spec": spec,
"rootDiskSizeInGb":rootDiskSizeInGb,
"rootDiskStorageType":"rootDiskStorageType",
"adminPass": "adminPass",
"ephemeralDisks": [
{
"storageType": storageType,
"sizeInGB": size
},
{
"storageType": storageType,
"sizeInGB": size
}
],
"createCdsList": [
{
"storageType": storageType,
"cdsSizeInGB": cdsSizeInGB,
"snapshotId": snapshotId
}
],
"name": "name",
"hostname": "hostname",
"autoSeqSuffix": autoSeqSuffix,
"isOpenHostnameDomain": isOpenHostnameDomain,
"imageId": "imageId",
"networkCapacityInMbps": networkCapacityInMbps,
"eipName": "eipName",
"autoRenewTimeUnit": "autoRenewTimeUnit",
"autoRenewTime": autoRenewTime,
"cdsAutoRenew": cdsAutoRenew,
"internetChargeType": internetChargeType,
"dedicatedHostId": dedicatedHostId,
"purchaseCount": purchaseCount,
"billing":{
"paymentTiming": paymentTiming,
"reservation": {
"reservationLength": reservationLength
}
},
"zoneName": zoneName,
"subnetId": subnetId,
"securityGroupId": securityGroupId,
"relationTag": relationTag,
"isOpenIpv6": isOpenIpv6,
"tags": [
{
"tagKey": tagKey,
"tagValue": tagValue
}
],
"userData": "",
"keypairId": keypairId,
"aspId": "aspId",
"specId": "specId",
"resGroupId": "resGroupId",
"ehcClusterId": "ehcClusterId"
}
请求头域
除公共头域外,无其它特殊头域。
请求参数
参数名称 | 类型 | 是否必需 | 参数位置 | 描述 |
---|---|---|---|---|
version | String | 是 | URL参数 | API版本号 |
clientToken | String | 是 | Query参数 | 幂等性Token,是一个长度不超过64位的ASCII字符串,详见链接。 |
imageId | String | 是 | RequestBody参数 | 待创建虚拟机实例的镜像ID,可通过调用查询镜像列表接口选择获取所需镜像ID。 |
spec | String | 否 | RequestBody参数 | 待创建虚拟机实例的套餐规格(使用该参数可替代填写instanceType,cpuCount,memoryCapacityInGB,gpuCard,fpgaCard,cardCount,ephemeralDisks参数),通过使用实例套餐规格列表接口来查看可使用实例套餐及套餐规格。 |
rootDiskSizeInGb | int | 否 | RequestBody参数 | 待创建虚拟机实例的系统盘大小,单位GB,默认是40GB,范围为[40, 100]GB,超过40GB按照云磁盘价格收费。注意指定的系统盘大小需要满足所使用镜像最小磁盘空间限制。 |
rootDiskStorageType | String | 否 | RequestBody参数 | 待创建虚拟机实例系统盘介质,默认使用SSD型云磁盘,可指定系统盘磁盘类型可参见StorageType。 |
ephemeralDisks | List<EphemeralDisk> | 否 | RequestBody参数 | BCC实例最多只能使用一块本地盘,使用默认磁盘类型,需要指定磁盘大小。创建FPGA实例或GPU实例该参数无效,默认使用指定大小的本地磁盘。 |
createCdsList | List<CreateCdsModel> | 否 | RequestBody参数 | 待创建的CDS磁盘列表,具体数据格式参见下述CreateCdsModel |
networkCapacityInMbps | int | 否 | RequestBody参数 | 公网带宽,单位为Mbps。必须为0~200之间的整数,为0表示不分配公网IP,默认为0Mbps |
eipName | String | 否 | RequestBody参数 | 长度1~65个字节,字母开头,可包含字母数字-_/.字符。若不传该参数,服务会自动生成name。 |
internetChargeType | String | 否 | RequestBody参数 | 公网带宽计费方式,可选参数详见internetChargeType,若不指定internetChargeType,默认付费方式同BCC,预付费默认为包年包月按带宽,后付费默认为按使用带宽计费。 |
purchaseCount | int | 否 | RequestBody参数 | 批量创建(购买)的虚拟机实例个数,必须为大于0的整数,可选参数,缺省为1 |
name | String | 否 | RequestBody参数 | 虚拟机名字(可选)。默认都不指定name。如果指定name:批量时name作为名字的前缀。后端将加上后缀,后缀生成方式:name{ -序号}。如果没有指定name,则自动生成,方式:{instance-八位随机串-序号}。注:随机串从0~9a~z生成;序号按照count的数量级,依次递增,如果count为100,则序号从000~100递增,如果为10,则从00~10递增。支持大小写字母、数字、中文以及-_ /.特殊字符,必须以字母开头,长度1-65。 |
hostname | String | 否 | RequestBody参数 | 虚拟机主机名(可选)。默认都不指定hostname。如果指定hostname:批量时hostname作为名字的前缀。后端将加上后缀,后缀生成方式:name{ -序号}。如果没有指定name,则自动生成,方式:{instance-八位随机串-序号}。注:随机串从0~9a~z生成;序号按照count的数量级,依次递增,如果count为100,则序号从000~100递增,如果为10,则从00~10递增。仅支持小写字母、数字以及- . 特殊字符,必须以字母开头,不可连续使用特殊符号,不支持特殊符号开头或结尾,长度2-64。 |
autoSeqSuffix | boolean | 否 | RequestBody参数 | 是否自动生成name和hostname有序后缀(可选参数) 是:true 否:false |
isOpenHostnameDomain | boolean | 否 | RequestBody参数 | 是否自动生成hostname domain(可选参数) 是:true 否:false |
adminPass | String | 否 | RequestBody参数 | 待指定的实例管理员密码,8-16位字符,英文,数字和符号必须同时存在,符号仅限!@#$%^*(),密码需要加密传输 |
billing | Billing | 是 | RequestBody参数 | 订单、计费相关参数 |
zoneName | String | 否 | RequestBody参数 | 指定zone信息,默认为空,由系统自动选择,可通过调用查询可用区列表接口查询可用区列表。zoneName命名规范是“国家-region-可用区序列",小写,例如北京可用区A为"cn-bj-a"。专属实例使用专属服务器所在zone,无需指定该字段。 |
subnetId | String | 否 | RequestBody参数 | 指定subnet信息,为空时将使用默认子网 |
securityGroupId | String | 否 | RequestBody参数 | 已废弃,指定securityGroup信息,为空时将使用默认安全组 |
securityGroupIds | List |
否 | RequestBody参数 | 指定securityGroup信息列表,为空时将使用默认安全组 |
enterpriseSecurityGroupIds | List |
否 | RequestBody参数 | 指定企业安全组信息列表,不为空时,securityGroupIds无效,为空时将使用默认安全组 |
relationTag | boolean | 否 | RequestBody参数 | 待创建实例指定的标签是否需要和已有标签键进行关联,默认为false。注意值为true时要保证该标签键已存在 |
isOpenIpv6 | boolean | 否 | RequestBody参数 | 待创建实例是否开启ipv6,只有当镜像和子网都支持ipv6时才可开启,true表示开启,false表示关闭,不传表示自动适配镜像和子网的ipv6支持情况 |
tags | List<TagModel> | 否 | RequestBody参数 | 待创建的标签列表,具体数据格式参见下述TagModel |
keypairId | String | 否 | RequestBody参数 | 待创建实例所要绑定的密钥对ID |
autoRenewTimeUnit | String | 否 | RequestBody参数 | 按月付费或者按年付费 月是"month",年是"year" |
autoRenewTime | int | 否 | RequestBody参数 | 自动续费的时间 按月是1-9 按年是 1-3 |
cdsAutoRenew | boolean | 否 | RequestBody参数 | cds是否自动续费 是:true 否:false |
aspId | String | 否 | RequestBody参数 | 自动快照策略ID |
bidModel | String | 否 | RequestBody参数 | 竞价实例出价模型, 市场价: "market" 自定义:"custom"。参考BidModel |
bidPrice | String | 否 | RequestBody参数 | 竞价实例出价金额,若是自定义出价,且出价金额小于市场价,则不允许创建。当bidModel='custom'时才有效。 |
dedicatedHostId | String | 否 | RequestBody参数 | 专属服务器id,指定虚机置放位置时指定该值。 |
deployId | String | 否 | RequestBody参数 | 指定实例所在的部署集id |
deployIdList | List |
否 | RequestBody参数 | 指定实例所在的部署集id列表 |
userData | String | 否 | RequestBody参数 | 若实例满足使用实例自定义数据的限制,您可传入UserData信息。因为传输API请求时,不会加密您设置的UserData,建议不要以明文方式传入机密的信息,例如密码和私钥等。如果必须传入,建议加密后,然后以Base64的方式编码后再传入,在实例内部以同样的方式反解密。 |
specId | String | 否 | RequestBody参数 | 规格族 |
deletionProtection | int | 否 | RequestBody参数 | 实例释放保护,默认0未开启,1开启,开启后禁止手动释放虚机 |
isOpenHostEye | Boolean | 否 | RequestBody参数 | 是否开启主机安全,true:开启,false:关闭;不传默认开启 |
hosteyeType | String | 否 | RequestBody参数 | 主机安全类型,isOpenHostEye为true时生效; "enterprise",表示开启企业版主机安全;“open”或不传,表示开启基础版主机安全 |
resGroupId | String | 否 | RequestBody参数 | 指定实例要绑定的资源组id |
enableJumboFrame | boolean | 否 | RequestBody参数 | 是否开启Jumbo帧,默认值false,开启:true,关闭:false。注意:只有支持Jumbo帧的套餐才能开启 |
enableHt | boolean | 否 | RequestBody参数 | 是否开启Ht,ebc使用,默认值true, true:开启,false:关闭 |
dataPartitionType | String | 否 | RequestBody参数 | 数据盘文件格式,可选值:xfs,ext4 |
rootPartitionType | String | 否 | RequestBody参数 | 系统盘文件格式,可选值:xfs,ext4 |
fileSystems | List<FileSystemModel> | 否 | RequestBody参数 | 指定实例要挂载的cfs文件系统列表 |
disableRootDiskSerial | Boolean | 否 | RequestBody参数 | 创建实例时是否隐藏系统盘SN,默认false。 true:隐藏 fase:不隐藏 |
internalIps | List |
否 | RequestBody参数 | 内网IP列表 |
networkPurchaseType | String | 否 | RequestBody参数 | EIP线路类型,包含标准BGP(BGP)和增强BGP(BGP_S),默认标准BGP |
ehcClusterId | String | 否 | RequestBody参数 | 创建roce实例时可选参数,若为空则使用默认EHC集群 |
返回
返回头域
除公共头域,无其它特殊头域。
返回参数
参数名称 | 类型 | 描述 |
---|---|---|
instanceIds | List |
虚机实例ID的集合,其中ID符合BCE规范,必须是一个定长字符串,且只允许包含大小写字母、数字、连字号(-)和下划线(_)。 |
warningList | List |
创建虚机产生的warning信息 |
错误码
错误码 | 错误描述 | HTTP状态码 | 中文解释 |
---|---|---|---|
Instance.InsufficientRootDiskSize | Not enough root disk size. | 400 | 使用镜像过大,系统盘大小不够 |
Instance.InvalidateRootDiskStorageType | Invalidate root disk storage type. | 400 | 无效的系统盘介质 |
Instance.InstanceBeBanned | The instance is banned, contact technical support for assistance. | 403 | Bcc服务已被封禁 |
Instance.GlobalInstanceQuotaLimitExceeded | Quota exceeds limit for regional postpaid instances pool, contact technical support for further assistance. | 413 | 后付费类型的虚机数目超出当前区域预售额度限制 |
Instance.InstanceQuotaLimitExceeded | Quota exceeds limit. | 413 | 实例个数超过限制 |
Instance.EipQuotaLimitExceeded | The number of eip will exceed the limit. | 413 | 合并购买时eip个数超过限制 |
Instance.InvalidateConfiguration | Invalidate cpu memory configuration. | 400 | 无效的虚机配置 |
BadRequest | spec is invalid. | 400 | 待创建虚拟机实例的套餐规格参数无效 |
Instance.MKTImageInstanceNotSupportCreateSnapshotException | Instance with mkt image not support create system snapshot. | 403 | 云市场镜像不支持创建系统快照 |
示例
请求示例(通过指定实例套餐规格spec创建实例)
POST /v2/instanceBySpec?clientToken=be31b98c-5e41-4838-9830-9be700de5a20 HTTP/1.1
Host: bcc.bj.baidubce.com
ContentType: application/json
Authorization: bce-auth-v1/f81d3b34e48048fbb2634dc7882d7e21/2015-08-11T04:17:29Z/3600/host/74c506f68c65e26c633bfa104c863fffac5190fdec1ec24b7c03eb5d67d2e1de
{
"spec": "bcc.g3.c4m12",
"createCdsList": [
{
"storageType": "std1",
"cdsSizeInGB": 5
}
],
"name": "example",
"imageId": "m-mRjO3cjs",
"networkCapacityInMbps": 0,
"purchaseCount": 1,
"billing":{
"paymentTiming":"Prepaid",
"reservation": {
"reservationLength": 1
}
}
}
返回示例
HTTP/1.1 200 OK
x-bce-request-id: 1214cca7-4ad5-451d-9215-71cb844c0a50
Date: Wed, 03 Dec 2014 06:42:19 GMT
Content-Type: application/json;charset=UTF-8
Server: BWS
{
"instanceIds": [
"i-T1I3OtUO"
],
"warningList": [
"warning info"
]
}