更新BEC虚机实例
更新时间:2023-04-28
接口描述
本接口用于更新BEC虚机实例配置。
请求结构
PUT /v1/vm/instance/{vmId} HTTP/1.1
Host: bec.baidubce.com
Authorization: authorization string
{
"type": "type",
"spec": spec,
"cpu":cpu,
"memory":memory,
"systemVolume": {
"volumeType": "volumeType",
"sizeInGB": sizeInGB,
"name": "name",
"pvcName": "pvcName"
},
"keyConfig": {
"type": "type",
"adminPass": "password",
"bccKeyPairIdList": [],
}
"bandwidth":bandwidth,
"dnsConfig": {
"dnsType": "dnsType",
"dnsAddress": "dnsAddress"
},
"networkConfig": {
"nodeType": "SINGLE",
"networksList": [
{
"netType": "INTERNAL_IP",
"netName": "eth0",
"eniId": "nic-xxx-xxx"
},
{
"netType": "PUBLIC_IP",
"netName": "eth1",
"eniId": "nic-xxx-xxx"
}
]
},
"dataStorage":{
"name":"name",
"sizeInGB":sizeInGB,
"volumeType":"volumeType",
"pvcName": "pvcName"
},
"securityGroupIds": ["sgId"]
}
请求头域
除公共头域外,无其它特殊头域。
请求参数
参数名称 | 类型 | 是否必需 | 参数位置 | 描述 |
---|---|---|---|---|
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地址类型、数据盘。
仅修改带宽时不会导致虚机重启,其余情况默认均会导致虚机重启。
PUT /v1/vm/instance/vm-6ahy6dli HTTP/1.1
Host: bec.baidubce.com
Authorization: bce-auth-v1/f81d3b34e48048fbb2634dc7882d7e21/2015-08-11T04:17:29Z/3600/host/74c506f68c65e26c633bfa104c863fffac5190fdec1ec24b7c03eb5d67d2e1de
{
"vmId": "vm-6ahy6dl",
"type": "resource",
"spec": "bec.g2.c1m4"
"cpu": 1,
"memory": 4,
"dataVolumeList": [{
"sizeInGB": 20,
"volumeType": "NVME",
"name": "addNewDataDisk",
"pvcName": "lvm-6ahy6dl"
}],
"systemVolume": {
"volumeType": "NVME",
"sizeInGB": 40,
"name": "sys",
"pvcName": "lvm-6ahy6dl-rootfs"
},
"dnsConfig": {
"dnsType": "CUSTOMIZE",
"dnsAddress": "129.29.29.29"
},
"networkConfig": {
"nodeType": "SINGLE",
"networksList": [
{
"netType": "INTERNAL_IP",
"netName": "eth0",
"eniId": "nic-6ahy6dli-1"
}
{
"netType": "PUBLIC_IP",
"netName": "eth1",
"eniId": "nic-6ahy6dli-2"
}
]
},
"needIpv6PublicIp": true,
"bandwidth": 67
}
更新密码
密码限制长度为8~32位字符,由英文、数字和符号组成,符号仅限!@#$%^+*()。
PUT /v1/vm/instance/vm-6ahy6dli HTTP/1.1
Host: bec.baidubce.com
Authorization: bce-auth-v1/f81d3b34e48048fbb2634dc7882d7e21/2015-08-11T04:17:29Z/3600/host/74c506f68c65e26c633bfa104c863fffac5190fdec1ec24b7c03eb5d67d2e1de
{
"keyConfig": {
"type": "bccKeyPair",
"bccKeyPairIdList": ["k-1MkI9Laa"]
},
"type": "password",
"vmId": "vm-6ahy6dli"
}
更新密钥
仅支持BCC密钥。使用前必须先在BCC的华北-北京区域创建密钥对。keyConfig的参数type填bccKeyPair,bccKeyPairIdList是bcc密钥对的keyId列表,keyId可通过BCC查询密钥对列表获得。
PUT /v1/vm/instance/vm-6ahy6dli HTTP/1.1
Host: bec.baidubce.com
Authorization: bce-auth-v1/f81d3b34e48048fbb2634dc7882d7e21/2015-08-11T04:17:29Z/3600/host/74c506f68c65e26c633bfa104c863fffac5190fdec1ec24b7c03eb5d67d2e1de
{
"keyConfig": {
"type": "bccKeyPair",
"bccKeyPairIdList": ["k-1MkI9Laa"]
},
"type": "password",
"vmId": "vm-6ahy6dli"
}
更新安全组
仅限于虚机的网络为VPC网络
PUT /v1/vm/instance/vm-6ahy6dli HTTP/1.1
Host: bec.baidubce.com
Authorization: bce-auth-v1/f81d3b34e48048fbb2634dc7882d7e21/2015-08-11T04:17:29Z/3600/host/uuid
{
"type": "securityGroup",
"vmId": "vm-6ahy6dli",
"securityGroupIds": ["sg-i3zdwkp8","sg-kmmmiueq"]
}
更新hostname
PUT /v1/vm/instance/vm-6ahy6dli HTTP/1.1
Host: bec.baidubce.com
Authorization: bce-auth-v1/f81d3b34e48048fbb2634dc7882d7e21/2015-08-11T04:17:29Z/3600/host/uuid
{
"type": "hostname",
"vmId": "vm-6ahy6dli",
"hostname": "mynewone"
}
VPC网络变更网卡
对于VPC网络的虚机,支持自定义网卡名称和顺序:
- networkConfig.networksList为网络变配目标后的全量网卡的列表;注意:如果不在列表内的网卡,变配后该网卡将被移除!
- 如果变更网卡顺序,networksList为网络变配目标的全部网卡的列表,按照列表顺序排列即可;
- 如果更新既有网卡名称,必须携带eniId标识指定更新的网卡:
{
"netType": "PUBLIC_IP",
"netName": "eth0",
"eniId": "eni-xxx-xxx"
}
- 如果新增网卡,新增一个networks结构且不指定eniId
{
"netType": "PUBLIC_IP",
"netName": "newNetwork"
}
- 如果移除网卡,networksList不包括该网卡即可;
- 网卡变配操作将触发虚机自动重启,重启完成后网卡配置才能生效;
networksList为网卡列表,nodeType值SINGLE为单线,值TRIPLE为三线节点; 网卡变配示例如下,包含2个既有网卡和新增1个外网网卡:
PUT /v1/vm/instance/vm-6ahy6dli HTTP/1.1
Host: bec.baidubce.com
Authorization: bce-auth-v1/f81d3b34e48048fbb2634dc7882d7e21/2015-08-11T04:17:29Z/3600/host/uuid
{
"type": "resource",
"networkConfig": {
"nodeType": "SINGLE",
"networksList": [
{
"netType": "INTERNAL_IP",
"netName": "eth0",
"eniId": "nic-6ahy6dli-1"
},
{
"netType": "PUBLIC_IP",
"netName": "eth1",
"eniId": "nic-6ahy6dli-2"
},
{
"netType": "PUBLIC_IP",
"netName": "eth2"
}
]
}
}
响应示例
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
{
"result": true,
"action": "update",
"details": {
"publicIp": "36.158.184.31",
"ipv6PublicIp": "",
"internalIp": null,
"multiplePublicIp": null,
"serviceProvider": "CHINA_MOBILE",
"vmId": "vm-i029wtci-0-m-xiangtan-f1gvv",
"uuid": "76050e65-b8e5-4fcf-a61b-dd2b71949370",
"vmName": "vm-i029wtci-0-m-xiangtan-f1gvv",
"status": "RUNNING",
"spec": "bec.c2.c1m2"
"cpu": 1,
"mem": 2,
"gpu": 0,
"regionId": "cn-xiangtan-cm"
"region": "CENTRAL_CHINA",
"city": "XIANGTAN",
"needPublicIp": true,
"needIpv6PublicIp": true,
"bandwidth": "100Mbps",
"osImage": {
"id": "49",
"imageId": "im-awwxnhme-2-u-huhehaote",
"name": "helloworld",
"imageType": "becCustom",
"snapshotId": null,
"cpu": 0,
"memory": 0,
"osType": "linux",
"osVersion": "7.3",
"osName": "CentOS",
"osBuild": "2020122100",
"osLang": "ENG",
"diskSize": 0,
"createTime": "2021-01-25T13:30:02Z",
"status": null,
"minMem": 0,
"minCpu": 0,
"minDiskGb": 0,
"desc": null,
"osArch": "x86_64 (64bit)",
"ephemeralSize": 0,
"imageDescription": null,
"shareToUserNumLimit": 0,
"sharedToUserNum": 0,
"fpgaType": null,
"name_fri": null
},
"dns":"customize-129.29.29.29",
"serviceId": "s-i029wtci",
"createTime": "2021-03-01T10:34:06Z",
"rootDiskSize": 40,
"dataStorage": 43,
"systemVolume": {
"volumeType": "SATA",
"sizeInGB": 40,
"name": "vm-rootfs",
"pvcName": "lvm-i029wtci-0-m-xiangtan-f1gvv-rootfs"
},
"dataVolumeList": [
{
"name": "volume1",
"volumeType": "NVME",
"sizeInGB": 21,
"pvcName": "lvm-i029wtci-0-m-xiangtan-f1gvv-0ya7f"
}
]
}
}
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 |