更新BEC虚机实例
更新时间:2023-04-28
接口描述
本接口用于更新BEC虚机实例配置。
请求结构
Plain Text
1PUT /v1/vm/instance/{vmId} HTTP/1.1
2Host: bec.baidubce.com
3Authorization: authorization string
4
5{
6 "type": "type",
7 "spec": spec,
8 "cpu":cpu,
9 "memory":memory,
10 "systemVolume": {
11 "volumeType": "volumeType",
12 "sizeInGB": sizeInGB,
13 "name": "name",
14 "pvcName": "pvcName"
15 },
16 "keyConfig": {
17 "type": "type",
18 "adminPass": "password",
19 "bccKeyPairIdList": [],
20 }
21 "bandwidth":bandwidth,
22 "dnsConfig": {
23 "dnsType": "dnsType",
24 "dnsAddress": "dnsAddress"
25 },
26 "networkConfig": {
27 "nodeType": "SINGLE",
28 "networksList": [
29 {
30 "netType": "INTERNAL_IP",
31 "netName": "eth0",
32 "eniId": "nic-xxx-xxx"
33 },
34 {
35 "netType": "PUBLIC_IP",
36 "netName": "eth1",
37 "eniId": "nic-xxx-xxx"
38 }
39 ]
40 },
41 "dataStorage":{
42 "name":"name",
43 "sizeInGB":sizeInGB,
44 "volumeType":"volumeType",
45 "pvcName": "pvcName"
46 },
47 "securityGroupIds": ["sgId"]
48}
请求头域
除公共头域外,无其它特殊头域。
请求参数
参数名称 | 类型 | 是否必需 | 参数位置 | 描述 |
---|---|---|---|---|
vmId | String | 是 | URL参数 | 虚机实例ID |
type | String | 是 | RequestBody参数 | 更新类型。取值为password、vmName、resource、securityGroup、hostname,分别为密码、虚机名字、资源配置、安全组、主机名 |
spec | String | 否 | RequestBody参数 | 规格族,传入按指定机型策略修改,不传则按随机分配策略修改。变配不能改变虚机策略或者机型;使用spec参数则不需要填写cpu/memory |
cpu | Integer | 否 | RequestBody参数 | CPU大小;修改带宽时必填;随机分配策略必填 |
memory | Integer | 否 | RequestBody参数 | 内存大小;随机分配策略必填 |
dataVolumeList | List<VolumeConfig> | 否 | RequestBody参数 | 数据盘列表(磁盘类型为CDS_HDD或CDS_SSD时可修改磁盘大小) |
systemVolume | SystemVolumeConfig | 否 | RequestBody参数 | 系统盘大小(磁盘类型为CDS_HDD或CDS_SSD时可修改磁盘大小) |
keyConfig | KeyConfig | 否 | RequestBody参数 | 密码或密钥配置 |
bandwidth | float | 否 | RequestBody参数 | 公网带宽大小(-1时为最大值),单位Mbps |
dnsConfig | DnsConfig | 否 | RequestBody参数 | DNS配置 |
needIpv6PublicIp | Boolean | 否 | RequestBody参数 | 是否开通IPv6公网,true为开通,false为不开通。缺省为false |
networkConfig | NetworkConfig | 否 | RequestBody参数 | 包含内外网卡名称的设置 |
vmName | String | 否 | RequestBody参数 | 实例名称 |
securityGroupIds | List<String> | 否 | RequestBody参数 | 虚机关联的安全组ID列表。仅限虚机的网络类型为vpc时有效。 |
hostname | String | 否 | RequestBody参数 | 虚机主机名,仅支持小写字母、数字以及-特殊字符,必须以字母开头,长度2-64。需同时指定参数type为hostname |
reboot | Boolean | 否 | RequestBody参数 | 显式地指定是否自动重启,true为重启,false为不重启。默认忽略此参数。 |
响应头域
除公共头域外,无其它特殊头域。
响应参数
参数名称 | 类型 | 描述 |
---|---|---|
details | VmInstanceDetailsVo | 虚机实例信息 |
action | String | 更新操作,返回为“update” |
result | Boolean | 操作是否成功,true:表示成功;false:表示失败 |
错误码
请参照错误返回章节的内容。
请求示例
更新资源配置
更新类型值为resource,表示更新虚机配置,包括CPU、内存、DNS、带宽、网卡、IP地址类型、数据盘。
仅修改带宽时不会导致虚机重启,其余情况默认均会导致虚机重启。
Plain Text
1PUT /v1/vm/instance/vm-6ahy6dli HTTP/1.1
2Host: bec.baidubce.com
3Authorization: bce-auth-v1/f81d3b34e48048fbb2634dc7882d7e21/2015-08-11T04:17:29Z/3600/host/74c506f68c65e26c633bfa104c863fffac5190fdec1ec24b7c03eb5d67d2e1de
4
5{
6 "vmId": "vm-6ahy6dl",
7 "type": "resource",
8 "spec": "bec.g2.c1m4"
9 "cpu": 1,
10 "memory": 4,
11 "dataVolumeList": [{
12 "sizeInGB": 20,
13 "volumeType": "NVME",
14 "name": "addNewDataDisk",
15 "pvcName": "lvm-6ahy6dl"
16 }],
17 "systemVolume": {
18 "volumeType": "NVME",
19 "sizeInGB": 40,
20 "name": "sys",
21 "pvcName": "lvm-6ahy6dl-rootfs"
22 },
23 "dnsConfig": {
24 "dnsType": "CUSTOMIZE",
25 "dnsAddress": "129.29.29.29"
26 },
27 "networkConfig": {
28 "nodeType": "SINGLE",
29 "networksList": [
30 {
31 "netType": "INTERNAL_IP",
32 "netName": "eth0",
33 "eniId": "nic-6ahy6dli-1"
34 }
35 {
36 "netType": "PUBLIC_IP",
37 "netName": "eth1",
38 "eniId": "nic-6ahy6dli-2"
39 }
40 ]
41 },
42 "needIpv6PublicIp": true,
43 "bandwidth": 67
44}
更新密码
密码限制长度为8~32位字符,由英文、数字和符号组成,符号仅限!@#$%^+*()。
Plain Text
1PUT /v1/vm/instance/vm-6ahy6dli HTTP/1.1
2Host: bec.baidubce.com
3Authorization: bce-auth-v1/f81d3b34e48048fbb2634dc7882d7e21/2015-08-11T04:17:29Z/3600/host/74c506f68c65e26c633bfa104c863fffac5190fdec1ec24b7c03eb5d67d2e1de
4
5 {
6 "keyConfig": {
7 "type": "bccKeyPair",
8 "bccKeyPairIdList": ["k-1MkI9Laa"]
9 },
10 "type": "password",
11 "vmId": "vm-6ahy6dli"
12 }
更新密钥
仅支持BCC密钥。使用前必须先在BCC的华北-北京区域创建密钥对。keyConfig的参数type填bccKeyPair,bccKeyPairIdList是bcc密钥对的keyId列表,keyId可通过BCC查询密钥对列表获得。
Plain Text
1PUT /v1/vm/instance/vm-6ahy6dli HTTP/1.1
2Host: bec.baidubce.com
3Authorization: bce-auth-v1/f81d3b34e48048fbb2634dc7882d7e21/2015-08-11T04:17:29Z/3600/host/74c506f68c65e26c633bfa104c863fffac5190fdec1ec24b7c03eb5d67d2e1de
4
5 {
6 "keyConfig": {
7 "type": "bccKeyPair",
8 "bccKeyPairIdList": ["k-1MkI9Laa"]
9 },
10 "type": "password",
11 "vmId": "vm-6ahy6dli"
12 }
更新安全组
仅限于虚机的网络为VPC网络
Plain Text
1PUT /v1/vm/instance/vm-6ahy6dli HTTP/1.1
2Host: bec.baidubce.com
3Authorization: bce-auth-v1/f81d3b34e48048fbb2634dc7882d7e21/2015-08-11T04:17:29Z/3600/host/uuid
4
5{
6 "type": "securityGroup",
7 "vmId": "vm-6ahy6dli",
8 "securityGroupIds": ["sg-i3zdwkp8","sg-kmmmiueq"]
9}
更新hostname
Plain Text
1PUT /v1/vm/instance/vm-6ahy6dli HTTP/1.1
2Host: bec.baidubce.com
3Authorization: bce-auth-v1/f81d3b34e48048fbb2634dc7882d7e21/2015-08-11T04:17:29Z/3600/host/uuid
4
5{
6 "type": "hostname",
7 "vmId": "vm-6ahy6dli",
8 "hostname": "mynewone"
9}
VPC网络变更网卡
对于VPC网络的虚机,支持自定义网卡名称和顺序:
- networkConfig.networksList为网络变配目标后的全量网卡的列表;注意:如果不在列表内的网卡,变配后该网卡将被移除!
- 如果变更网卡顺序,networksList为网络变配目标的全部网卡的列表,按照列表顺序排列即可;
- 如果更新既有网卡名称,必须携带eniId标识指定更新的网卡:
Plain Text
1 {
2 "netType": "PUBLIC_IP",
3 "netName": "eth0",
4 "eniId": "eni-xxx-xxx"
5 }
- 如果新增网卡,新增一个networks结构且不指定eniId
Plain Text
1 {
2 "netType": "PUBLIC_IP",
3 "netName": "newNetwork"
4 }
- 如果移除网卡,networksList不包括该网卡即可;
- 网卡变配操作将触发虚机自动重启,重启完成后网卡配置才能生效;
networksList为网卡列表,nodeType值SINGLE为单线,值TRIPLE为三线节点; 网卡变配示例如下,包含2个既有网卡和新增1个外网网卡:
Plain Text
1PUT /v1/vm/instance/vm-6ahy6dli HTTP/1.1
2Host: bec.baidubce.com
3Authorization: bce-auth-v1/f81d3b34e48048fbb2634dc7882d7e21/2015-08-11T04:17:29Z/3600/host/uuid
4
5{
6 "type": "resource",
7 "networkConfig": {
8 "nodeType": "SINGLE",
9 "networksList": [
10 {
11 "netType": "INTERNAL_IP",
12 "netName": "eth0",
13 "eniId": "nic-6ahy6dli-1"
14 },
15 {
16 "netType": "PUBLIC_IP",
17 "netName": "eth1",
18 "eniId": "nic-6ahy6dli-2"
19 },
20 {
21 "netType": "PUBLIC_IP",
22 "netName": "eth2"
23 }
24 ]
25 }
26}
响应示例
Plain Text
1HTTP/1.1 200 OK
2Content-Type: application/json;charset=UTF-8
3Date: Wed, 08 Jul 2015 03:28:11 GMT
4x-bce-request-id: d8752367-38e8-45e4-b4c7-e53be3137ce5
5Server: BWS
6
7{
8 "result": true,
9 "action": "update",
10 "details": {
11 "publicIp": "36.158.184.31",
12 "ipv6PublicIp": "",
13 "internalIp": null,
14 "multiplePublicIp": null,
15 "serviceProvider": "CHINA_MOBILE",
16 "vmId": "vm-i029wtci-0-m-xiangtan-f1gvv",
17 "uuid": "76050e65-b8e5-4fcf-a61b-dd2b71949370",
18 "vmName": "vm-i029wtci-0-m-xiangtan-f1gvv",
19 "status": "RUNNING",
20 "spec": "bec.c2.c1m2"
21 "cpu": 1,
22 "mem": 2,
23 "gpu": 0,
24 "regionId": "cn-xiangtan-cm"
25 "region": "CENTRAL_CHINA",
26 "city": "XIANGTAN",
27 "needPublicIp": true,
28 "needIpv6PublicIp": true,
29 "bandwidth": "100Mbps",
30 "osImage": {
31 "id": "49",
32 "imageId": "im-awwxnhme-2-u-huhehaote",
33 "name": "helloworld",
34 "imageType": "becCustom",
35 "snapshotId": null,
36 "cpu": 0,
37 "memory": 0,
38 "osType": "linux",
39 "osVersion": "7.3",
40 "osName": "CentOS",
41 "osBuild": "2020122100",
42 "osLang": "ENG",
43 "diskSize": 0,
44 "createTime": "2021-01-25T13:30:02Z",
45 "status": null,
46 "minMem": 0,
47 "minCpu": 0,
48 "minDiskGb": 0,
49 "desc": null,
50 "osArch": "x86_64 (64bit)",
51 "ephemeralSize": 0,
52 "imageDescription": null,
53 "shareToUserNumLimit": 0,
54 "sharedToUserNum": 0,
55 "fpgaType": null,
56 "name_fri": null
57 },
58 "dns":"customize-129.29.29.29",
59 "serviceId": "s-i029wtci",
60 "createTime": "2021-03-01T10:34:06Z",
61 "rootDiskSize": 40,
62 "dataStorage": 43,
63 "systemVolume": {
64 "volumeType": "SATA",
65 "sizeInGB": 40,
66 "name": "vm-rootfs",
67 "pvcName": "lvm-i029wtci-0-m-xiangtan-f1gvv-rootfs"
68 },
69 "dataVolumeList": [
70 {
71 "name": "volume1",
72 "volumeType": "NVME",
73 "sizeInGB": 21,
74 "pvcName": "lvm-i029wtci-0-m-xiangtan-f1gvv-0ya7f"
75 }
76 ]
77 }
78}
Model对象定义
VmInstanceDetailsVo
参数名称 | 类型 | 描述 |
---|---|---|
vmId | String | 虚机实例ID |
uuId | String | 虚机实例ID |
vmName | String | 虚机实例名称 |
status | String | 资源状态(CREATING、RUNNING、STOPPING、STOPPED、RESTARTING、REINSTALLING、STARTING、IMAGING、FAILED、UNKNOWN) |
spec | String | 分机型策略虚机规格族 |
cpu | Integer | CPU数量 |
mem | Integer | 内存数量 |
gpu | Integer | GPU数量 |
rootDiskSize | Integer | 系统盘数量 |
dataStorage | Integer | 数据盘数量 |
regionId | String | 节点ID |
region | String | 地域 |
serviceProvider | String | 运营商 |
city | String | 城市 |
needPublicIp | boolean | 是否开通公网 |
needIpv6PublicIp | Boolean | 是否开通IPv6公网 |
multiplePublicIp | List<IpInfo> | 三线公网IP |
ipv6PublicIp | String | IPv6公网IP |
internalIp | String | 内网IP |
bandwidth | String | 公网带宽大小 |
osImage | ImageDetail | 系统镜像详情 |
serviceId | String | 虚机服务ID |
createTime | Date | 创建时间 |
systemVolume | SystemVolumeConfig | 系统盘 |
dataVolumeList | List<VolumeConfig> | 数据盘列表 |
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 | osArch |
ephemeralSize | Integer | ephemeralSize |
imageDescription | String | 镜像描述 |
shareToUserNumLimit | Integer | 分享数量限制 |
sharedToUserNum | Integer | 分享数量 |
fpgaType | String | fpgaType |
name_fri | String | name_fri |
SystemVolumeConfig
参数名称 | 类型 | 描述 |
---|---|---|
volumeType | DiskType | 盘类型 |
sizeInGB | Integer | 盘尺寸 |
name | String | 盘名称 |
pvcName | String | PVC名称 |
VolumeConfig
参数名称 | 类型 | 描述 |
---|---|---|
volumeType | DiskType | 盘类型 |
sizeInGB | Integer | 盘尺寸 |
name | String | 盘名称 |
pvcName | String | PVC名称 |
KeyConfig
参数名称 | 类型 | 描述 |
---|---|---|
type | String | 类型。bccKeyPair为选择密钥对,password为选择的密码 |
bccKeyPairIdList | List<String> | 虚机密钥对ID列表 |
adminPass | String | 虚机密码限制长度为8~32位字符,英文、数字和符号必须同时存在,符号仅限!@#$%^+*() |
DnsConfig
参数名称 | 类型 | 描述 |
---|---|---|
dnsType | DnsType | DNS类型 |
dnsAddress | String | DNS地址,多个DNS地址以逗号分隔 |
DnsType
参数名称 | 描述 |
---|---|
NONE | 不需要设置 |
DEFAULT | 国内节点使用默认DNS地址(114.114.114.114), 海外节点使用默认DNS地址(8.8.8.8) |
CUSTOMIZE | 使用自定义DNS地址 |
LOCAL | 使用所属节点的local dns |
NetworkConfig
参数名称 | 类型 | 描述 |
---|---|---|
nodeType | String | 节点类型(SINGLE、TRIPLE,分别表示单线节点和三线节点) |
networksList | List<Networks> | 网卡信息,包含Networks。经典网络顺序固定为内+外,不可自定义;VPC网络可以自定义网卡顺序 |
Networks
参数名称 | 类型 | 描述 |
---|---|---|
netType | String | 网卡类型 (INTERNAL_IP表示内网;单线节点使用PUBLIC_IP表示单线公网网卡;三线节点用TRIPLE_CT、TRIPLE_UN、TRIPLE_CM分别表示三线公网的电信、联通、移动) |
netName | String | 网卡名称,内外网卡的名称不能重复;支持大小写字母,数字,"-_",必须以字母开头,长度3-16字符。 |
eniId | String | 网卡ID,更新网卡时需指定该ID。通过获取虚机实例详情获得eniId |