更新BEC虚机服务
接口描述
本接口用于更新BEC虚机服务,包括扩容虚机服务、更新服务内所有实例的密码或密钥、更新服务配置、更新服务自定义名称等。
请求结构
PUT /v1/vm/service/{serviceId} HTTP/1.1
Host: bec.baidubce.com
Authorization: authorization string
{
"type": type,
"spec": spec,
"cpu":cpu,
"memory":memory,
"adminPass":adminPass,
"bandwidth":bandwidth,
"dataStorage":{
"name":name,
"sizeInGB":sizeInGB,
"volumeType":NVME
},
"serviceName":serviceName,
"deployInstances":{
"regionId": regionId,
"region":region,
"serviceProvider":serviceProvider,
"city":city,
"replicas":replicas
},
"replicaTemplate": {
"type": type,
"templateId": templateId
},
}
请求头域
除公共头域外,无其它特殊头域。
请求参数
参数名称 | 类型 | 是否必需 | 参数位置 | 描述 |
---|---|---|---|---|
serviceId | String | 是 | URL参数 | 虚机服务ID |
type | String | 是 | RequestBody参数 | 更新类型,取值为 password、replicas、resource、serviceName、securityGroup,分别表示密码、副本数量、虚机资源、服务名字、安全组。其中安全组只适用于VPC网络的虚机。 |
spec | String | 否 | RequestBody参数 | 规格族,传入按指定机型策略创建,不传则按随机分配策略创建;使用spec参数则不需要填写cpu/memory |
cpu | Integer | 否 | RequestBody参数 | CPU大小;随机分配策略必填 |
memory | Integer | 否 | RequestBody参数 | 内存大小;随机分配策略必填 |
dataStorage | VolumeConfig | 否 | RequestBody参数 | 数据盘大小 |
keyConfig | KeyConfig | 是 | RequestBody参数 | 密码或密钥配置 |
bandwidth | float | 否 | RequestBody参数 | 公网带宽大小(-1时为最大值),单位Mbps |
serviceName | String | 否 | RequestBody参数 | 服务名称 |
deployInstances | List<DeploymentInstance> | 否 | RequestBody参数 | 部署区域列表 |
securityGroupIds | List<String> | 否 | RequestBody参数 | 只适用网络类型为vpc的实例 |
响应头域
除公共头域外,无其它特殊头域。
响应参数
参数名称 | 类型 | 描述 |
---|---|---|
result | boolean | 是否成功,true:成功;false:失败 |
action | String | 操作描述 |
detail | VmServiceBriefVo | 操作对象返回 |
错误码
请参照错误返回章节的内容。
请求示例
扩容虚机服务
PUT /v1/vm/service/s-lqrs2a7u HTTP/1.1
Host: bec.baidubce.com
Authorization: bce-auth-v1/f81d3b34e48048fbb2634dc7882d7e21/2015-08-11T04:17:29Z/3600/host/74c506f68c65e26c633bfa104c863fffac5190fdec1ec24b7c03eb5d67d2e1de
{
"type":"replicas",
"serviceId":"s-lqrs2a7u",
"deployInstances":[
{
"regionId": "cn-chengdu-un",
"region":"SOUTH_WEST",
"city":"CHENGDU",
"serviceProvider":"CHINA_UNICOM",
"replicas":2
}]
}
更新虚机服务配置
PUT /v1/vm/service/s-lqrs2a7u HTTP/1.1
Host: bec.baidubce.com
Authorization: bce-auth-v1/f81d3b34e48048fbb2634dc7882d7e21/2015-08-11T04:17:29Z/3600/host/74c506f68c65e26c633bfa104c863fffac5190fdec1ec24b7c03eb5d67d2e1de
{
"type": "resource",
"serviceId": "s-lqrs2a7u",
"spec": "bec.c2.c1m2"
"cpu": 1,
"memory": 2,
"bandwidth": 99
}
更新虚机服务内所有虚机实例的密码
目前虚机登录支持密码和密钥两种方式,密码和密钥需要二选一。密码限制长度为8~32位字符,包括英文、数字和符号,符号仅限!@#$%^+*()。
PUT /v1/vm/service/s-lqrs2a7u HTTP/1.1
Host: bec.baidubce.com
Authorization: bce-auth-v1/f81d3b34e48048fbb2634dc7882d7e21/2015-08-11T04:17:29Z/3600/host/74c506f68c65e26c633bfa104c863fffac5190fdec1ec24b7c03eb5d67d2e1de
{
"type": "password",
"serviceId": "s-lqrs2a7u",
"keyConfig": {
"type": "password",
"adminPass": "password"
}
}
更新虚机服务内所有虚机实例的密钥
目前虚机登录支持密码和密钥两种方式,密码和密钥需要二选一。密钥仅支持BCC密钥,在使用前必须先在BCC的华北-北京区域创建密钥对。
以下是更新虚机服务内所有虚机实例的密钥,其中:
- keyConfig的参数type填bccKeyPair
-
bccKeyPairIdList填bcc密钥对的keyId
keyId可以通过BCC查询密钥对列表获得。
PUT /v1/vm/service/s-lqrs2a7u HTTP/1.1 Host: bec.baidubce.com Authorization: bce-auth-v1/f81d3b34e48048fbb2634dc7882d7e21/2015-08-11T04:17:29Z/3600/host/74c506f68c65e26c633bfa104c863fffac5190fdec1ec24b7c03eb5d67d2e1de { "type": "password", "service": "vm-immgo4ap", "keyConfig": { "type": "bccKeyPair", "bccKeyPairIdList": [ "k-UDUCAe4n", "k-lGMRwvfW", "k-gMgYnQbo" ] } }
更新虚机服务名称
PUT /v1/vm/service/s-lqrs2a7u HTTP/1.1
Host: bec.baidubce.com
Authorization: bce-auth-v1/f81d3b34e48048fbb2634dc7882d7e21/2015-08-11T04:17:29Z/3600/host/74c506f68c65e26c633bfa104c863fffac5190fdec1ec24b7c03eb5d67d2e1de
{
"serviceId": "s-lqrs2a7u",
"type": "serviceName",
"serviceName": "YourNewName"
}
扩容实例使用VPC网络注意事项
变配:目前不支持经典网络虚机与VPC网络虚机的互相变配
注意VPC网络分节点创建,不能跨节点指定VPC。 扩容VPC网络的虚机,请求DeploymenetInstance的网络类型networkType为vpc
扩容节点如果选择vpc网络,可以指定使用自定义已创建好的vpcId和subnetId; 如果没有指定vpcId和subnetId,系统会为每个节点创建并使用默认的私有网络和子网;默认私有网络CIDR为172.16.0.0/20,默认子网CIDR为172.16.0.0/24
"deployInstances": [
{
"regionId": regionId,
"region": region,
"serviceProvider": serviceProvider,
"city": city,
"networkType":"vpc",
"vpcId": vpcId,
"subnetId": subnetId,
"replicas": replicas
}
]
指定安全组(securityGroupIds)只适用于vpc网络的实例。如果选用了vpc网络,但是没有指定安全组ID,BEC会创建并使用一个默认的安全组,默认安全组规则如下:
方向 | 协议 | 端口 | 类型 | 目的地址 |
---|---|---|---|---|
出站 | 全部协议 | 1-65535 | IPv4 | 目的IP: 0.0.0.0/0 |
响应示例
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Date: Wed, 08 Jul 2015 03:28:11 GMT
x-bce-request-id: d8752367-38e8-45e4-b4c7-e53be3137ce5
Server: BWS
{
"action": "update",
"details": {
"bandwidth": "100Mbps",
"createTime": "2021-02-08T12:06:33Z",
"deployInstances": [
{
"regionId": "cn-chengdu-un",
"city": "CHENGDU",
"region": "SOUTH_WEST",
"replicas": 1,
"serviceProvider": "CHINA_UNICOM"
}
],
"osImage": {
"cpu": 0,
"createTime": "2020-11-13T13:47:10Z",
"desc": "ubuntu-18.04-amd64-20201113213429",
"diskSize": 0,
"ephemeralSize": 0,
"fpgaType": "",
"id": "8d3e507f-8b7f-44aa-a3b2-fc52fedecdc3",
"imageDescription": "ubuntu-18.04-amd64-20201113213429",
"imageId": "m-IIyr1NaO",
"imageType": "common",
"memory": 0,
"minCpu": 0,
"minDiskGb": 20,
"minMem": 1,
"name": "ubuntu-18.04-amd64-20201113213429",
"name_fri": null,
"osArch": "amd64 (64bit)",
"osBuild": "2020111300",
"osLang": "ENG",
"osName": "Ubuntu",
"osType": "linux",
"osVersion": "18.04 LTS",
"shareToUserNumLimit": 0,
"sharedToUserNum": 0,
"snapshotId": "",
"status": "active"
},
"regions": 1,
"runningInstances": 1,
"serviceId": "s-lqrs2a7u",
"serviceName": "service-name",
"status": "NORMAL",
"totalBandwidth": "100Mbps",
"totalCpu": 1,
"totalDisk": 20,
"totalGpu": 0,
"totalInstances": 1,
"totalMem": 2,
"totalRootDisk": 40
},
"result": true
}
Model对象定义
ActionInfoVo
参数名称 | 类型 | 描述 |
---|---|---|
result | Boolean | 是否成功,true:成功;false:失败 |
action | String | 操作描述 |
detail | VmServiceBriefVo | 操作对象返回 |
VmServiceBriefVo
参数名称 | 类型 | 描述 |
---|---|---|
serviceId | String | 虚机服务ID |
serviceName | String | 虚机服务名称 |
status | String | 资源状态(NORMAL、FAILED) |
totalCpu | float | CPU数量 |
totalMem | float | 内存数量 |
totalRootDisk | Integer | 系统盘数量 |
totalDisk | Integer | 数据盘数量 |
regions | Integer | 区域数量 |
deployInstances | List<DeploymentInstance> | 部署区域列表 |
totalInstances | Integer | 总实例数 |
runningInstances | Integer | 运行实例数 |
osImage | ImageDetail | 系统镜像详情 |
createTime | Date | 创建时间 |
ImageDetail
参数名称 | 类型 | 描述 |
---|---|---|
id | String | ID |
imageId | String | imageId |
name | String | 镜像名称 |
imageType | String | 镜像类型 |
snapshotId | String | 快照ID |
cpu | Integer | CPU数量 |
memory | Integer | 内存数量 |
osType | String | OS类型 |
osVersion | String | OS版本 |
osName | String | OS名称 |
osBuild | String | OS创建时间 |
osLang | String | OS语言 |
diskSize | Integer | 磁盘大小 |
createTime | Date | 创建时间 |
minCpu | Integer | 最小CPU数量 |
minMem | Integer | 最小内存数量 |
minDiskGb | Integer | 最小磁盘数量 |
desc | String | 描述 |
osArch | String | OS架构 |
ephemeralSize | Integer | ephemeralSize |
imageDescription | String | 镜像描述 |
shareToUserNumLimit | Integer | 分享数量限制 |
sharedToUserNum | Integer | 分享数量 |
fpgaType | String | fpga类型 |
name_fri | String | name_fri |
DeploymentInstance
参数名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
regionId | String | 否,海外节点为必填。 | 节点ID,由“国家码-城市-运营商”的小写字母组成字符串。例如 cn-hangzhou-cm,其中国家码标准为ISO 3166-2,城市为拼音,运营商为中国移动cm/中国电信ct/中国联通un/三线ix,海外节点运营商为bgp。如果传regjionId,则可以不传region、serviceProvider、city。 |
region | Region | 否 | 区域 |
serviceProvider | ServiceProvider | 否 | 运营商 |
subServiceProviders | List<String> | 否 | 仅适用于VPC三线节点。可以指定运营商公网,值为ct,un,cm,其中ct电信、un联通、cm移动。如果不指定该参数则默认三个运营商 |
city | String | 否 | 城市 |
replicas | Integer | 是 | 副本数,最小为1 |
networkType | String | 否 | 网络类型,枚举值有classic(经典网络)或vpc(私有网络)。开通VPC白名单后,默认网络为VPC;不支持变配网络类型;扩容的实例不限于原网络类型。 |
vpcId | String | 否 | 指定私有网络ID。只有网络类型为vpc时生效;若不指定vpcId,则创建使用一个默认的私有网络 |
subnetId | String | 否 | 指定私有网络的子网ID。只有网络类型为vpc时生效。若不指定subnetId时则会创建使用默认VPC的默认子网 |
VolumeConfig
参数名称 | 类型 | 描述 |
---|---|---|
name | String | 磁盘名称 |
sizeInGB | Integer | 磁盘大小(单位G) |
volumeType | DiskType | 磁盘类型(NVME、SATA) |
KeyConfig
参数名称 | 类型 | 描述 |
---|---|---|
type | String | 类型,bccKeyPair为选择密钥对,password为选择的密码 |
bccKeyPairIdList | List<String> | BCC虚机密钥对ID列表 |
adminPass | String | 虚机密码限制长度为8~32位字符,包括英文、数字和符号,符号仅限!@#$%^+*() |
ReplicaTemplate
参数名称 | 类型 | 描述 |
---|---|---|
type | String | 模板类型(template或instance)。类型为template是基于虚机模板扩容;类型为instance是基于已存在的虚机实例扩容。 |
templateId | String | 当type为template时填写虚机模板ID(需要先通过控制台上创建虚机模板,ID格式为tmpl-xxxxx);type为instance时填虚机实例ID |
ServiceProvider
编码 | 描述 |
---|---|
CHINA_MOBILE | 中国移动 |
CHINA_UNICOM | 中国联通 |
CHINA_TELECOM | 中国电信 |
TRIPLE_LINE | 三线 |
BGP | BGP |