实例
创建实例
使用以下代码可以创建BCC实例,包括专属实例、普通型Ⅰ 型实例、普通型ⅠI 型实例、普通型ⅠII 型实例、GPU实例、计算优化I型实例、计算优化II型实例、存储优化I型实例:
from baidubce.auth.bce_credentials import BceCredentials
from baidubce.bce_client_configuration import BceClientConfiguration
from baidubce.services.bcc import bcc_client, bcc_model
if __name__ == '__main__':
# 设置您的ak、sk和要访问的地域
HOST = b'http://bcc.bj.baidubce.com'
AK = b'ak'
SK = b'sk'
config = BceClientConfiguration(credentials=BceCredentials(AK, SK),
endpoint=HOST)
client = bcc_client.BccClient(config)
response = client.create_instance(
instance_type='N6', # 待创建虚拟机实例的类型
cpu_count=1, # 待创建虚拟机实例的CPU核数
memory_capacity_in_gb=4, # 待创建虚拟机实例的内存容量,单位GB
image_id='m-***', # 镜像ID
root_disk_size_in_gb=20, # 待创建虚拟机实例的系统盘大小,单位GB,默认是40GB,范围为[40, 2048]GB,超过40GB按照云磁盘价格收费。注意指定的系统盘大小需要满足所使用镜像最小磁盘空间限制。
root_disk_storage_type='enhanced_ssd_pl1', # 待创建虚拟机实例系统盘介质,默认使用SSD型云磁盘
create_cds_list=[ # 待创建的CDS磁盘列表
bcc_model.CreateCdsModel(
cdsSizeInGB=50, # CDS磁盘容量,必须为大于0的整数,单位为GB,大小为0~5120G
storageType='enhanced_ssd_pl1')], # CDS磁盘存储类型,默认是hp1(高性能云磁盘)。
eip_name='eip***', # 长度1~65个字节,字母开头,可包含字母数字-_/.字符。若不传该参数,服务会自动生成name。
internet_charge_type='BANDWIDTH_PREPAID', # 公网带宽计费方式,若不指定internetChargeType,默认为按使用带宽计费。
purchase_count=1, # 批量创建(购买)的虚拟机实例个数,必须为大于0的整数,可选参数,缺省为1。
name='instance-***', # 虚拟机名字。默认都不指定name。如果指定name:批量时name作为名字的前缀。后端将加上后缀,后缀生成方式:name{ -序号}。
hostname='hostn***', # 虚拟机主机名。默认都不指定hostname。如果指定hostname:批量时hostname作为名字的前缀。后端将加上后缀,后缀生成方式:name{ -序号}。
admin_pass='***', # 待创建的实例管理员密码,8-16位字符,英文,数字和符号必须同时存在,符号仅限!@#$%^*()。
zone_name='cn-bj-a', # 指定zone信息,默认为空,由系统自动选择,可通过调用查询可用区列表接口查询可用区列表。zoneName命名规范是“国家-region-可用区序列",小写,例如北京可用区A为"cn-bj-a"。
subnet_id='sbn-***', # 指定subnet信息,为空时将使用默认子网
security_group_id='g-***', # 指定securityGroup信息,为空时将使用默认安全组
asp_id='asp-***', # 自动快照策略ID
tags=[bcc_model.TagModel('key***', 'value***')], # 待创建虚机的标签列表
)
print(response)
创建实例(通过规格参数)
使用以下代码可以通过规格参数创建BCC实例
from baidubce.auth.bce_credentials import BceCredentials
from baidubce.bce_client_configuration import BceClientConfiguration
from baidubce.services.bcc import bcc_client, bcc_model
if __name__ == '__main__':
# 设置您的ak、sk和要访问的地域
HOST = b'http://bcc.bj.baidubce.com'
AK = b'ak'
SK = b'sk'
config = BceClientConfiguration(credentials=BceCredentials(AK, SK),
endpoint=HOST)
client = bcc_client.BccClient(config)
response = client.create_instance_by_spec(
spec='bcc.g5.c1m4', # 实例规格
image_id='m-***', # 镜像ID
root_disk_size_in_gb=20, # 待创建虚拟机实例的系统盘大小,单位GB,默认是40GB,范围为[40, 2048]GB,超过40GB按照云磁盘价格收费。注意指定的系统盘大小需要满足所使用镜像最小磁盘空间限制。
root_disk_storage_type='enhanced_ssd_pl1', # 待创建虚拟机实例系统盘介质,默认使用SSD型云磁盘
create_cds_list=[ # 待创建的CDS磁盘列表
bcc_model.CreateCdsModel(
cdsSizeInGB=50, # CDS磁盘容量,必须为大于0的整数,单位为GB,大小为0~5120G
storageType='enhanced_ssd_pl1')], # CDS磁盘存储类型,默认是hp1(高性能云磁盘)。
eip_name='eip***', # 长度1~65个字节,字母开头,可包含字母数字-_/.字符。若不传该参数,服务会自动生成name。
internet_charge_type='BANDWIDTH_PREPAID', # 公网带宽计费方式,若不指定internetChargeType,默认为按使用带宽计费。
purchase_count=1, # 批量创建(购买)的虚拟机实例个数,必须为大于0的整数,可选参数,缺省为1。
name='instance-***', # 虚拟机名字。默认都不指定name。如果指定name:批量时name作为名字的前缀。后端将加上后缀,后缀生成方式:name{ -序号}。
hostname='hostn***', # 虚拟机主机名。。默认都不指定hostname。如果指定hostname:批量时hostname作为名字的前缀。后端将加上后缀,后缀生成方式:name{ -序号}。
admin_pass='***', # 待创建的实例管理员密码,8-16位字符,英文,数字和符号必须同时存在,符号仅限!@#$%^*()。
zone_name='cn-bj-a', # 指定zone信息,默认为空,由系统自动选择,可通过调用查询可用区列表接口查询可用区列表。zoneName命名规范是“国家-region-可用区序列",小写,例如北京可用区A为"cn-bj-a"。
subnet_id='sbn-***', # 指定subnet信息,为空时将使用默认子网
security_group_id='g-***', # 指定securityGroup信息,为空时将使用默认安全组
asp_id='asp-***', # 自动快照策略ID
tags=[bcc_model.TagModel('key***', 'value***')], # 待创建虚机的标签列表
)
print(response)
-
必传参数:
- 规格名称(例如 bcc.g4.c1m1)
- 镜像ID
- 可选参数:参考普通创建实例接口
创建实例在专属服务器
使用以下代码可以在特定服务器中创建BCC实例:
def create_instance_from_dedicated_host(self):
#如果用户未指定client_token参数,用uuid4生成一个随机字符串给client_token
generate_client_token = str(uuid.uuid4())
client_token = generate_client_token()
#设置镜像id
image_id = 'your-choose-image-id'
#设置专属服务器id
dedicated_host_id = 'your-choose-dedicated-host-id'
#设置实例名
instance_name = 'your-choose-instance-name' + client_token
#设置实例管理员密码(8-16位字符,英文,数字和符号必须同时存在,符号仅限!@#$%^*())
admin_pass = 'your-admin-pass'
#指定subnet信息,为空时将使用默认子网
subnet_id = 'your-choose-subnet-id'
#指定security_group_id信息,为空时将使用默认安全组
security_group_id = 'your-choose-security-group-id'
#DCC专属服务器实例可以创建多块本地盘,需要指定磁盘类型及大小
#其它类型只能用一块本地盘,使用默认类型,只需指定大小
#设置创建本地磁盘大小
ephemeral_disk = EphemeralDisk(6144)
#设置本地盘类型为默认类型
ephemeral_disks = [ephemeral_disk.__dict__, ephemeral_disk.__dict__]
self.assertEqual(
type(self.client.create_instance_from_dedicated_host(1, #设置创建BCC的CPU核数
2, #设置创建BCC的内存大小GB
image_id, #设置创建BCC的镜像
dedicated_host_id, #设置创建BCC的专属服务器
purchase_count=1,# 批量创建BCC实例时使用,必须为大于0的整数
name=instance_name,# 设置创建BCC的名称
admin_pass=admin_pass,# 设置实例管理员密码
subnet_id=subnet_id,# 指定subnet信息,为空时将使用默认子网
security_group_id=security_group_id,# 指定securityGroup信息,为空时将使用默认安全组
client_token=client_token
ephemeral_disks) #设置创建BCC的本地盘
baidubce.bce_response.BceResponse)
创建实例在专属服务器(支持对明文密码加密)
使用以下代码可以在特定服务器中创建BCC实例:
def create_instance_from_dedicated_host_with_encrypted_password(self):
#如果用户未指定client_token参数,用uuid4生成一个随机字符串给client_token
generate_client_token = str(uuid.uuid4())
client_token = generate_client_token()
#设置镜像id
image_id = 'your-choose-image-id'
#设置专属服务器id
dedicated_host_id = 'your-choose-dedicated-host-id'
#设置实例名
instance_name = 'your-choose-instance-name' + client_token
#设置实例管理员密码(8-16位字符,英文,数字和符号必须同时存在,符号仅限!@#$%^*())
admin_pass = 'your-admin-pass'
#指定subnet信息,为空时将使用默认子网
subnet_id = 'your-choose-subnet-id'
#指定security_group_id信息,为空时将使用默认安全组
security_group_id = 'your-choose-security-group-id'
#DCC专属服务器实例可以创建多块本地盘,需要指定磁盘类型及大小
#其它类型只能用一块本地盘,使用默认类型,只需指定大小
#设置创建本地磁盘大小
ephemeral_disk = EphemeralDisk(6144)
#设置本地盘类型为默认类型
ephemeral_disks = [ephemeral_disk.__dict__, ephemeral_disk.__dict__]
self.assertEqual(
type(self.client.create_instance_from_dedicated_host_with_encrypted_password(1, #设置创建BCC的CPU核数
2, #设置创建BCC的内存大小GB
image_id, #设置创建BCC的镜像
dedicated_host_id, #设置创建BCC的专属服务器
purchase_count=1,# 批量创建BCC实例时使用,必须为大于0的整数
name=instance_name,# 设置创建BCC的名称
admin_pass=admin_pass,# 设置实例管理员密码
subnet_id=subnet_id,# 指定subnet信息,为空时将使用默认子网
security_group_id=security_group_id,# 指定securityGroup信息,为空时将使用默认安全组
client_token=client_token
ephemeral_disks) #设置创建BCC的本地盘
baidubce.bce_response.BceResponse)
查询实例列表
以下代码可以查询BCC虚机实例列表,支持通过内网ip、专属服务器id、可用区名称进行筛选:
from baidubce.auth.bce_credentials import BceCredentials
from baidubce.bce_client_configuration import BceClientConfiguration
from baidubce.services.bcc import bcc_client
if __name__ == '__main__':
# 设置您的ak、sk和要访问的地域
HOST = b'http://bcc.bj.baidubce.com'
AK = b'ak'
SK = b'sk'
# 设置默认配置
config = BceClientConfiguration(credentials=BceCredentials(AK, SK),
endpoint=HOST)
# 创建bcc client
client = bcc_client.BccClient(config)
res = client.list_instances(marker='i-***', # 批量获取列表的查询的起始位置,是一个由系统生成的字符串
max_keys=1, # 每页包含的最大数量,最大数量通常不超过1000,缺省值为1000
internal_ip='192.168.***.***', # 内网IP
dedicated_host_id='d-***', # 专属服务器ID
zone_name='cn-bj-d', # 可用区信息
instance_ids='i-***', # 多个实例ID,英文逗号分割,最多支持100个
instance_names='***', # 多个实例名称,英文逗号分割,最多支持100个
cds_ids='v-***', # 多个cds磁盘ID,英文逗号分割,最多支持100个
deployset_ids='dset-***', # 多个部署集ID,英文逗号分割,最多支持100个
security_group_ids='g-***', # 多个安全组ID,英文逗号分割,最多支持100个
payment_timing='Postpaid', # 支付方式(Prepaid / Postpaid)
status='Running', # 实例状态(Recycled / Running / Stopped / Stopping / Starting)
tags='***', # 多个标签,逗号分割,格式:tagKey:tagValue 或 tagKey
vpc_id='vpc-***', # vpcId,只能与privateIps查询参数组合使用
private_ips='192.168.***.***', # 多个内网IP,英文逗号分隔,最多支持100个,必须和vpcId组合使用
)
print(res)
查询实例详情
使用以下代码可以查询指定BCC虚机的详细信息:
def get_instance(self):
#设置你要操作的instance_id
instance_id = 'your-choose-instance-id'
#设置是否返回创建失败信息,True表示返回创建失败信息,默认为False
contains_failed = True
self.assertEqual(
type(self.client.get_instance(instance_id, contains_failed)),
baidubce.bce_response.BceResponse)
启动实例
使用以下代码可以启动指定BCC虚机实例:
from baidubce.auth.bce_credentials import BceCredentials
from baidubce.bce_client_configuration import BceClientConfiguration
from baidubce.services.bcc import bcc_client
if __name__ == '__main__':
# 设置您的ak、sk和要访问的地域
HOST = b'http://bcc.bj.baidubce.com'
AK = b'ak'
SK = b'sk'
# 设置默认配置
config = BceClientConfiguration(credentials=BceCredentials(AK, SK),
endpoint=HOST)
# 创建bcc client
client = bcc_client.BccClient(config)
# 设置你要操作的instance_id
instance_id = 'i-***'
resp = client.start_instance(instance_id)
print(resp)
停止实例
使用以下代码可以停止指定BCC虚机实例:
from baidubce.auth.bce_credentials import BceCredentials
from baidubce.bce_client_configuration import BceClientConfiguration
from baidubce.services.bcc import bcc_client, bcc_model
if __name__ == '__main__':
# 设置您的ak、sk和要访问的地域
HOST = 'http://bcc.bj.baidubce.com'
AK = 'ak'
SK = 'sk'
# 设置默认配置
config = BceClientConfiguration(credentials=BceCredentials(AK, SK),
endpoint=HOST)
# 创建bcc client
client = bcc_client.BccClient(config)
resp = client.stop_instance(
instance_id='i-***', # 待停止的实例ID
force_stop=False, # 指定实例是否强制关机,可选值:True、False,缺省为false
stopWithNoCharge=True # 指定实例是否关机不计费,可选值:true、false,缺省为false
)
print(resp)
重启实例
使用以下代码可以重启指定BCC虚机实例:
from baidubce.auth.bce_credentials import BceCredentials
from baidubce.bce_client_configuration import BceClientConfiguration
from baidubce.services.bcc import bcc_client
if __name__ == '__main__':
# 设置您的ak、sk和要访问的地域
HOST = b'http://bcc.bj.baidubce.com'
AK = b'ak'
SK = b'sk'
# 设置默认配置
config = BceClientConfiguration(credentials=BceCredentials(AK, SK),
endpoint=HOST)
# 创建bcc client
client = bcc_client.BccClient(config)
# 设置你要操作的instance_id
instance_id = 'i-***'
# 重启实例
resp = client.reboot_instance(instance_id)
print(resp)
修改实例密码
使用以下代码可以修改指定BCC虚机实例的管理员密码:
from baidubce.auth.bce_credentials import BceCredentials
from baidubce.bce_client_configuration import BceClientConfiguration
from baidubce.services.bcc import bcc_client
if __name__ == '__main__':
# 设置您的ak、sk和要访问的地域
HOST = b'http://bcc.bj.baidubce.com'
AK = b'ak'
SK = b'sk'
# 设置默认配置
config = BceClientConfiguration(credentials=BceCredentials(AK, SK),
endpoint=HOST)
# 创建bcc client
client = bcc_client.BccClient(config)
# 设置你要操作的instance_id
instance_id = 'i-***'
# 设置新的密码
admin_pass = '***'
# 执行修改实例密码的操作
resp = client.modify_instance_password(instance_id, admin_pass)
print(resp)
修改实例属性
使用以下代码可以修改指定BCC虚机实例的名称或网卡队列数:
def modify_instance_attributes(self):
#设置你要操作的instance_id
instance_id = 'your-choose-instance-id'
name = 'name_modify'
neteth_queuecount = 3 # 新的网卡队列数
self.assertEqual(
type(self.client.modify_instance_attributes(instance_id,
name=name,
neteth_queuecount= neteth_queuecount)),
baidubce.bce_response.BceResponse)
修改实例描述(新)
使用以下代码可以修改指定BCC虚机实例的描述:
from baidubce.auth.bce_credentials import BceCredentials
from baidubce.bce_client_configuration import BceClientConfiguration
from baidubce.services.bcc import bcc_client
if __name__ == '__main__':
# 设置您的ak、sk和要访问的地域
HOST = b'http://bcc.bj.baidubce.com'
AK = b'ak'
SK = b'sk'
# 设置默认配置
config = BceClientConfiguration(credentials=BceCredentials(AK, SK),
endpoint=HOST)
# 创建bcc client
client = bcc_client.BccClient(config)
# 设置你要操作的instance_id
instance_id = 'i-***'
# 修改instance的描述
desc = 'your_new_description'
resp = client.modify_instance_desc(instance_id, desc)
print(resp)
重装实例
使用以下代码可以使用镜像重建指定BCC虚机实例:
from baidubce.auth.bce_credentials import BceCredentials
from baidubce.bce_client_configuration import BceClientConfiguration
from baidubce.services.bcc import bcc_client
if __name__ == '__main__':
# 设置您的ak、sk和要访问的地域
HOST = b'http://bcc.bj.baidubce.com'
AK = b'ak'
SK = b'sk'
# 设置默认配置
config = BceClientConfiguration(credentials=BceCredentials(AK, SK),
endpoint=HOST)
# 创建bcc client
client = bcc_client.BccClient(config)
res = client.rebuild_instance(instance_id="i-***", # 指定的实例ID
image_id="m-***", # 指定的镜像ID
admin_pass="***", # 机器密码(8-16位字符,英文,数字和符号必须同时存在,符号仅限!@#$%^*()),密码需要加密传输
key_pair_id="k-***", # 待重装实例所要绑定的密钥对ID,必须传递adminPass、keypairId其中一个参数
)
print(res)
释放实例
对于后付费Postpaid以及预付费Prepaid过期的BCC虚机实例,可以使用以下代码将其释放:
from baidubce.auth.bce_credentials import BceCredentials
from baidubce.bce_client_configuration import BceClientConfiguration
from baidubce.services.bcc import bcc_client
if __name__ == '__main__':
# 设置您的ak、sk和要访问的地域
HOST = b'http://bcc.bj.baidubce.com'
AK = b'ak'
SK = b'sk'
# 设置默认配置
config = BceClientConfiguration(credentials=BceCredentials(AK, SK),
endpoint=HOST)
# 创建bcc client
client = bcc_client.BccClient(config)
resp = client.release_instance(instance_id='i-sxb2****') # 释放实例ID
print (resp)
实例扩缩容
支持对BCC虚机的CPU以及内存进行扩容操作,具体可参考以下代码:
from baidubce.auth.bce_credentials import BceCredentials
from baidubce.bce_client_configuration import BceClientConfiguration
from baidubce.services.bcc import bcc_client
if __name__ == '__main__':
# 设置您的ak、sk和要访问的地域
HOST = b'http://bcc.bj.baidubce.com'
AK = b'ak'
SK = b'sk'
# 设置默认配置
config = BceClientConfiguration(credentials=BceCredentials(AK, SK),
endpoint=HOST)
# 创建bcc client
client = bcc_client.BccClient(config)
resp = client.resize_instance(instance_id="i-sxb2****", # 实例id
cpu_count=4, # cpu核数
memory_capacity_in_gb=16, # 内存大小
live_resize=True) # 是否是在线变配
print (resp)
将实例加入安全组
以下代码可以将指定BCC虚机实例加入到指定安全组内:
def bind_instance_to_security_group(self):
#指定security_group_id信息
security_group_id = 'your-choose-security-group-id'
#设置你要操作的instance_id
instance_id = 'your-choose-instance-id'
self.assertEqual(
type(self.client.bind_instance_to_security_group(instance_id,security_group_id)),
baidubce.bce_response.BceResponse)
将实例移出安全组
以下代码可以将指定实例移出指定安全组中:
def unbind_instance_from_security_group(self):
#指定security_group_id信息
security_group_id = 'your-choose-security-group-id'
#设置你要操作的instance_id
instance_id = 'your-choose-instance-id'
self.assertEqual(
type(self.client.unbind_instance_from_security_group(instance_id,security_group_id)),
baidubce.bce_response.BceResponse)
绑定实例到标签(新)
以下代码可以将指定BCC虚机实例绑定指定标签:
from baidubce.auth.bce_credentials import BceCredentials
from baidubce.bce_client_configuration import BceClientConfiguration
from baidubce.services.bcc import bcc_client, bcc_model
if __name__ == '__main__':
# 设置您的ak、sk和要访问的地域
HOST = b'http://bcc.bj.baidubce.com'
AK = b'ak'
SK = b'sk'
# 设置默认配置
config = BceClientConfiguration(credentials=BceCredentials(AK, SK),
endpoint=HOST)
# 创建bcc client
client = bcc_client.BccClient(config)
# 输入标签信息,支持一次绑定多个标签
instance_tag1 = bcc_model.TagModel(tagKey='TestKey01',tagValue='TestValue01')
instance_tag2 = bcc_model.TagModel(tagKey='TestKey02',tagValue='TestValue02')
instance_tag_list = []
instance_tag_list.append(instance_tag1)
instance_tag_list.append(instance_tag2)
# 设置你要操作的instance_id
instance_id = 'i-***'
# 执行绑定绑定实例到标签的操作
resp = client.bind_instance_to_tags(instance_id=instance_id, tags=instance_tag_list)
print(resp)
解绑实例标签(新)
以下代码可以将指定BCC虚机实例解绑指定标签:
from baidubce.auth.bce_credentials import BceCredentials
from baidubce.bce_client_configuration import BceClientConfiguration
from baidubce.services.bcc import bcc_client, bcc_model
if __name__ == '__main__':
# 设置您的ak、sk和要访问的地域
HOST = b'http://bcc.bj.baidubce.com'
AK = b'ak'
SK = b'sk'
# 设置默认配置
config = BceClientConfiguration(credentials=BceCredentials(AK, SK),
endpoint=HOST)
# 创建bcc client
client = bcc_client.BccClient(config)
# 输入标签信息,支持一次绑定多个标签
instance_tag1 = bcc_model.TagModel(tagKey='Key***',tagValue='Value***')
instance_tag2 = bcc_model.TagModel(tagKey='Key***',tagValue='Value***')
instance_tag_list = []
instance_tag_list.append(instance_tag1)
instance_tag_list.append(instance_tag2)
# 设置你要操作的instance_id
instance_id = 'i-***'
# 执行解绑实例标签的操作
resp = client.unbind_instance_from_tags(instance_id=instance_id, tags=instance_tag_list)
print(resp)
查询实例地址
使用以下代码可以查询指定BCC虚机实例的VNC URL:
from baidubce.auth.bce_credentials import BceCredentials
from baidubce.bce_client_configuration import BceClientConfiguration
from baidubce.services.bcc import bcc_client
if __name__ == '__main__':
# 设置您的ak、sk和要访问的地域
HOST = b'http://bcc.bj.baidubce.com'
AK = b'ak'
SK = b'sk'
# 设置默认配置
config = BceClientConfiguration(credentials=BceCredentials(AK, SK),
endpoint=HOST)
# 创建bcc client
client = bcc_client.BccClient(config)
print(client.get_instance_vnc("i-***")) # i-*** 为虚拟机实例ID
实例续费
对BCC虚机的续费操作,可以延长过期时长,以下代码可以对磁盘进行续费:
from baidubce.auth.bce_credentials import BceCredentials
from baidubce.bce_client_configuration import BceClientConfiguration
from baidubce.services.bcc import bcc_client
from baidubce.services.bcc import bcc_model
if __name__ == '__main__':
# 设置您的ak、sk和要访问的地域
HOST = b'http://bcc.bj.baidubce.com'
AK = b'ak'
SK = b'sk'
# 设置默认配置
config = BceClientConfiguration(credentials=BceCredentials(AK, SK),
endpoint=HOST)
# 创建bcc client
client = bcc_client.BccClient(config)
res = client.purchase_reserved_instance(instance_id='i-***', # 虚拟机实例ID
billing=bcc_model.Billing('Prepaid', 1), # 订单详情,本接口针对预付费实例进行续费,续费单位为月
related_renew_flag='CDS_EIP', # 设置实例关联续费标识,默认为空字符串
client_token='random-uuid' # 幂等性Token,是一个长度不超过64位的ASCII字符串
)
print(res)
创建抢占实例
使用以下代码可以创建BCC抢占实例:
from baidubce.auth.bce_credentials import BceCredentials
from baidubce.bce_client_configuration import BceClientConfiguration
from baidubce.services.bcc import bcc_client, bcc_model
if __name__ == '__main__':
# 设置您的ak、sk和要访问的地域
HOST = b'http://bcc.bj.baidubce.com'
AK = b'ak'
SK = b'sk'
config = BceClientConfiguration(credentials=BceCredentials(AK, SK),
endpoint=HOST)
client = bcc_client.BccClient(config)
response = client.create_instance_of_bid(
bid_model='market', # 抢占实例出价模型, 市场价: "market" 自定义:"custom"。
instance_type='N6', # 待创建虚拟机实例的类型
cpu_count=1, # 待创建虚拟机实例的CPU核数
memory_capacity_in_gb=4, # 待创建虚拟机实例的内存容量,单位GB
image_id='m-***', # 镜像ID
root_disk_size_in_gb=20, # 待创建虚拟机实例的系统盘大小,单位GB,默认是40GB,范围为[40, 2048]GB,超过40GB按照云磁盘价格收费。注意指定的系统盘大小需要满足所使用镜像最小磁盘空间限制。
root_disk_storage_type='enhanced_ssd_pl1', # 待创建虚拟机实例系统盘介质,默认使用SSD型云磁盘
create_cds_list=[ # 待创建的CDS磁盘列表
bcc_model.CreateCdsModel(
cdsSizeInGB=50, # CDS磁盘容量,必须为大于0的整数,单位为GB,大小为0~5120G
storageType='enhanced_ssd_pl1')], # CDS磁盘存储类型,默认是hp1(高性能云磁盘)。
eip_name='eipN***', # 长度1~65个字节,字母开头,可包含字母数字-_/.字符。若不传该参数,服务会自动生成name。
internet_charge_type='BANDWIDTH_PREPAID', # 公网带宽计费方式,若不指定internetChargeType,默认为按使用带宽计费。
purchase_count=1, # 批量创建(购买)的虚拟机实例个数,必须为大于0的整数,可选参数,缺省为1。
name='instance-***', # 虚拟机名字。默认都不指定name。如果指定name:批量时name作为名字的前缀。后端将加上后缀,后缀生成方式:name{ -序号}。
hostname='host***', # 虚拟机主机名。默认都不指定hostname。如果指定hostname:批量时hostname作为名字的前缀。后端将加上后缀,后缀生成方式:name{ -序号}。
admin_pass='***', # 待创建的实例管理员密码,8-16位字符,英文,数字和符号必须同时存在,符号仅限!@#$%^*()。
zone_name='cn-bj-a', # 指定zone信息,默认为空,由系统自动选择,可通过调用查询可用区列表接口查询可用区列表。zoneName命名规范是“国家-region-可用区序列",小写,例如北京可用区A为"cn-bj-a"。
subnet_id='sbn-***', # 指定subnet信息,为空时将使用默认子网
security_group_id='g-***', # 指定securityGroup信息,为空时将使用默认安全组
asp_id='asp-***', # 自动快照策略ID
tags=[bcc_model.TagModel('key***', 'value***')], # 待创建虚机的标签列表
)
print(response)
查询回收站实例列表
使用以下代码可以查询回收站实例列表
from baidubce.auth.bce_credentials import BceCredentials
from baidubce.bce_client_configuration import BceClientConfiguration
from baidubce.services.bcc import bcc_client
if __name__ == '__main__':
# 设置您的ak、sk和要访问的地域
HOST = b'http://bcc.bj.baidubce.com'
AK = b'ak'
SK = b'sk'
# 设置默认配置
config = BceClientConfiguration(credentials=BceCredentials(AK, SK),
endpoint=HOST)
# 创建bcc client
client = bcc_client.BccClient(config)
resp = client.list_recycled_instances(payment_timing="postpaid", recycle_begin='2023-11-21T20:00:00Z')
print(resp)
定时释放 (限定后付费实例)
使用以下代码可以设置后付费实例定时释放,到达预设时间后自动释放bcc,自动释放时间可查询实例详情ReleaseTime。
from baidubce.auth.bce_credentials import BceCredentials
from baidubce.bce_client_configuration import BceClientConfiguration
from baidubce.services.bcc import bcc_client, bcc_model
if __name__ == '__main__':
# 设置您的ak、sk和要访问的地域
HOST = 'http://bcc.bj.baidubce.com'
AK = 'ak'
SK = 'sk'
# 设置默认配置
config = BceClientConfiguration(credentials=BceCredentials(AK, SK),
endpoint=HOST)
# 创建bcc client
client = bcc_client.BccClient(config)
resp = client.auto_release_instance(
instance_id="i-***", # 实例ID
release_time='2023-12-15T14:20:00Z') # 释放时间,格式yyyy-MM-dd'T'HH:mm:ss'Z'
print(resp)
查询关联部署集的实例详情
使用以下代码可以查询关联了部署集的实例详情
def test_get_instance_with_deploy_set(self):
instance_id = "i-oUXBvdIx"
self.assertEqual(
type(self.client.get_instance_with_deploy_set(instance_id)),
baidubce.bce_response.BceResponse)
print(self.client.get_instance(instance_id))
查询关联部署集和失败相关字段实例详情
使用以下代码可以查询关联部署集和失败相关字段实例详情
def test_get_instance_with_deploy_set_and_failed(self):
"""
test case for get_instance
"""
instance_id = "i-oUXBvdIx"
self.assertEqual(
type(self.client.get_instance_with_deploy_set_and_failed(instance_id)),
baidubce.bce_response.BceResponse)
print(self.client.get_instance(instance_id))
删除实例与部署集之间的关系
使用以下代码可以删除实例与部署集之间的关系
from baidubce.auth.bce_credentials import BceCredentials
from baidubce.bce_client_configuration import BceClientConfiguration
from baidubce.services.bcc import bcc_client
if __name__ == '__main__':
# 设置您的ak、sk和要访问的地域
HOST = b'http://bcc.bj.baidubce.com'
AK = b'ak'
SK = b'sk'
# 设置默认配置
config = BceClientConfiguration(credentials=BceCredentials(AK, SK),
endpoint=HOST)
# 创建bcc client
client = bcc_client.BccClient(config)
resp = client.del_instance_deploy(instance_id_list=['i-***', 'i-***'], # 实例ID列表
deploy_set_id='dset-***' # 部署集ID
)
修改实例主机名
使用以下代码可以修改实例主机名
from baidubce.auth.bce_credentials import BceCredentials
from baidubce.bce_client_configuration import BceClientConfiguration
from baidubce.services.bcc import bcc_client
if __name__ == '__main__':
# 设置您的ak、sk和要访问的地域
HOST = b'http://bcc.bj.baidubce.com'
AK = b'ak'
SK = b'sk'
# 设置默认配置
config = BceClientConfiguration(credentials=BceCredentials(AK, SK),
endpoint=HOST)
# 创建bcc client
client = bcc_client.BccClient(config)
resp = client.modify_instance_hostname(instance_id="i-***", # 指定的实例ID
hostname="new-hostname", # 实例主机名
reboot=True, # 是否自动重启
is_open_hostname_domain=True, # 是否开启hostname domain
)
后付费资源从回收站恢复计费
使用以下代码可以将后付费资源从回收站恢复计费
from baidubce.auth.bce_credentials import BceCredentials
from baidubce.bce_client_configuration import BceClientConfiguration
from baidubce.services.bcc import bcc_client
if __name__ == '__main__':
# 设置您的ak、sk和要访问的地域
HOST = b'http://bcc.bj.baidubce.com'
AK = b'ak'
SK = b'sk'
# 设置默认配置
config = BceClientConfiguration(credentials=BceCredentials(AK, SK),
endpoint=HOST)
# 创建bcc client
client = bcc_client.BccClient(config)
# 需要从回收站恢复计费的实例id
instance_ids = ["i-***", "i-***"]
resp = client.recovery_instances(instance_ids)
print(resp)
查询竞价实例市场价
使用以下代码可以查询竞价实例市场价
def test_get_bid_instance_price(self):
"""
test case for get_bid_instance_price
"""
resp = self.client.get_bid_instance_price(instance_type='N3', cpu_count=1, memory_cap_in_gb=1,
root_disk_size_in_gb=20)
self.assertEqual(
type(resp),
baidubce.bce_response.BceResponse)
if resp is not None and resp.content is not None:
print(json.loads(resp.content.decode('utf-8')))
else:
print(resp)
查询竞价实例套餐
使用以下代码可以查询竞价实例套餐
def test_list_bid_flavor(self):
"""
test case for list_bid_flavor
"""
resp = self.client.list_bid_flavor()
self.assertEqual(
type(resp),
baidubce.bce_response.BceResponse)
if resp is not None and resp.content is not None:
print(json.loads(resp.content.decode('utf-8')))
else:
print(resp)
释放保护
使用以下代码可以为BCC实例设置释放保护,实例当前设置可查询实例详情DeletionProtection,默认0不保护,1释放保护中:
def test_modify_deletion_protection(self):
"""
test case for modify_deletion_protection
"""
resp = self.client.modify_deletion_protection("i-XS7Db00e", 1)
self.assertEqual(
type(resp),
baidubce.bce_response.BceResponse)
if resp is not None and resp.content is not None:
print(json.loads(resp.content.decode('utf-8')))
else:
print(resp)
查询实例套餐价格
通过以下代码可以查询实例资源套餐规格对应的价格
from baidubce.auth.bce_credentials import BceCredentials
from baidubce.bce_client_configuration import BceClientConfiguration
from baidubce.services.bcc import bcc_client
if __name__ == '__main__':
# 设置您的ak、sk和要访问的地域
HOST = b'http://bcc.bj.baidubce.com'
AK = b'ak'
SK = b'sk'
# 设置默认配置
config = BceClientConfiguration(credentials=BceCredentials(AK, SK),
endpoint=HOST)
# 创建bcc client
client = bcc_client.BccClient(config)
resp = client.get_price_by_spec(spec_id="g5", # 实例规格族id
spec="bcc.g5.c2m8", # 实例套餐规格
payment_timing="prepay", # 付费方式,包括Postpaid(后付费),Prepaid(预付费)两种
zone_name="cn-bj-d", # 可用区名称
purchase_num=2, # 实例数量
purchase_length=2 # 购买时长,单位:月
)
print(resp)
实例变更子网
如下代码可以变更实例的子网
from baidubce.auth.bce_credentials import BceCredentials
from baidubce.bce_client_configuration import BceClientConfiguration
from baidubce.services.bcc import bcc_client
if __name__ == '__main__':
# 设置您的ak、sk和要访问的地域
HOST = b'http:/bcc.bj.baidubce.com'
AK = b'ak'
SK = b'sk'
# 设置默认配置
config = BceClientConfiguration(credentials=BceCredentials(AK, SK),
endpoint=HOST)
# 创建bcc client
client = bcc_client.BccClient(config)
res = client.instance_change_subnet(instance_id="i-***", # 虚拟机实例ID
subnet_id="sbn-***", # 变更后的子网ID
internal_ip="10.59.***.***", # 指定内网IP,不指定则随机生成
reboot=True, # 变更后是否重启
security_group_ids=["g-p8x***"], # 普通安全组,不支持和企业安全组同时指定,仅变更VPC时生效
enterprise_security_group_ids=["esg-***"], # 企业安全组,不支持和普通安全组同时指定,仅变更VPC时生效
client_token='random-uuid' # 幂等性Token,是一个长度不超过64位的ASCII字符串
)
print(res)
实例变更VPC
如下代码可以变更实例的VPC
from baidubce.auth.bce_credentials import BceCredentials
from baidubce.bce_client_configuration import BceClientConfiguration
from baidubce.services.bcc import bcc_client, bcc_model
if __name__ == '__main__':
# 设置您的ak、sk和要访问的地域
HOST = b'http://bcc.bj.baidubce.com'
AK = b'ak'
SK = b'sk'
# 设置默认配置
config = BceClientConfiguration(credentials=BceCredentials(AK, SK),
endpoint=HOST)
# 创建bcc client
client = bcc_client.BccClient(config)
instance_id = "i-oUXB****" # 实例id
subnet_id = "sbn-5k3wawcr****" # 子网id
internal_ip = "192.168.*.*" # 内网ip
resp = client.instance_change_vpc(instance_id=instance_id, subnet_id=subnet_id, internal_ip=internal_ip)
print (resp)
查询实例绑定的弹性网卡列表
使用以下代码可以查询实例绑定的弹性网卡列表
def test_list_instance_enis(self):
"""
test case for list_instance_enis
"""
resp = self.client.list_instance_enis(instance_id="i-oUXBvdIx")
self.assertEqual(
type(resp),
baidubce.bce_response.BceResponse)
if resp is not None and resp.content is not None:
print(json.loads(resp.content.decode('utf-8')))
else:
print(resp)
查询实例套餐规格(新)
通过以下代码可以查询实例资源套餐规格列表信息
from baidubce.auth.bce_credentials import BceCredentials
from baidubce.bce_client_configuration import BceClientConfiguration
from baidubce.services.bcc import bcc_client
if __name__ == '__main__':
# 设置您的ak、sk和要访问的地域
HOST = b'http://bcc.bj.baidubce.com'
AK = b'ak'
SK = b'sk'
# 设置默认配置
config = BceClientConfiguration(credentials=BceCredentials(AK, SK),
endpoint=HOST)
# 创建bcc client
client = bcc_client.BccClient(config)
resp = client.list_flavor_spec(zone_name='cn-bj-d')
print(resp)
变配实例(通过实例套餐规格)
使用以下代码可以选择CPU,MemoryCapacityInGB,EphemeralDisks变配指定BCC实例:
def test_resize_instance_by_spec(self):
"""
test case for resize_instance_by_spec
"""
resp = self.client.resize_instance_by_spec(instance_id="i-oUXBvdIx", spec='bcc.ic1.c1m1')
self.assertEqual(
type(resp),
baidubce.bce_response.BceResponse)
if resp is not None and resp.content is not None:
print(json.loads(resp.content.decode('utf-8')))
else:
print(resp)
重装实例(批量)
使用以下代码批量重装实例:
from baidubce.auth.bce_credentials import BceCredentials
from baidubce.bce_client_configuration import BceClientConfiguration
from baidubce.services.bcc import bcc_client
if __name__ == '__main__':
# 设置您的ak、sk和要访问的地域
HOST = b'http://bcc.bj.baidubce.com'
AK = b'ak'
SK = b'sk'
# 设置默认配置
config = BceClientConfiguration(credentials=BceCredentials(AK, SK),
endpoint=HOST)
# 创建bcc client
client = bcc_client.BccClient(config)
res = client.batch_rebuild_instances(instance_ids=["i-***", "i-***"], # 指定的实例ID列表,最多100个
image_id="m-***", # 指定的镜像ID
admin_pass="***", # 机器密码(8-16位字符,英文,数字和符号必须同时存在,符号仅限!@#$%^*()),密码需要加密传输
keypair_id="k-***", # 待重装实例所要绑定的密钥对ID,必须传递adminPass、keypairId其中一个参数
)
print(res)
计费变更-转预付费
使用以下代码对实例计费变更-转预付费:
from baidubce.auth.bce_credentials import BceCredentials
from baidubce.bce_client_configuration import BceClientConfiguration
from baidubce.services.bcc import bcc_client
if __name__ == '__main__':
# 设置您的ak、sk和要访问的地域
HOST = b'http://bcc.bj.baidubce.com'
AK = b'ak'
SK = b'sk'
# 设置默认配置
config = BceClientConfiguration(credentials=BceCredentials(AK, SK),
endpoint=HOST)
# 创建bcc client
client = bcc_client.BccClient(config)
resp = client.change_to_prepaid(instance_id="i-sxb2****", # 实例ID
duration=2, # 续费时长,单位为月
relation_cds=True) # 是否关联CDS转预付费
print (resp)
查询可关机不计费的实例列表
查询可关机不计费的BCC实例列表:
def test_list_instance_no_charge(self):
"""
test case for list_instance_no_charge
"""
resp = self.client.list_instance_no_charge(keypair_id='k-Mk1c8QPE', zone_name='cn-bj-a')
self.assertEqual(
type(resp),
baidubce.bce_response.BceResponse)
if resp is not None and resp.content is not None:
print(json.loads(resp.content.decode('utf-8')))
else:
print(resp)
取消竞价实例订单
通过以下代码可以取消竞价实例订单
def test_cancel_bid_order(self):
"""
test case for cancel_bid_order
"""
resp = self.client.cancel_bid_order(order_id='test_id')
self.assertEqual(
type(resp),
baidubce.bce_response.BceResponse)
if resp is not None and resp.content is not None:
print(json.loads(resp.content.decode('utf-8')))
else:
print(resp)
开通自动续费(包含关联产品)
自动续费仅限预付费产品
from baidubce.auth.bce_credentials import BceCredentials
from baidubce.bce_client_configuration import BceClientConfiguration
from baidubce.services.bcc import bcc_client, bcc_model
if __name__ == '__main__':
# 设置您的ak、sk和要访问的地域
HOST = 'http://bcc.bj.baidubce.com'
AK = 'ak'
SK = 'sk'
# 设置默认配置
config = BceClientConfiguration(credentials=BceCredentials(AK, SK),
endpoint=HOST)
# 创建bcc client
client = bcc_client.BccClient(config)
resp = client.batch_create_auto_renew_rules(
instance_id='i-***', # 实例ID
renew_eip=True, # 是否合并eip自动续费,默认值为True
renew_cds=True, # 是否合并cds自动续费,默认值为True
renew_time=2, # 续费时长
renew_time_unit='year' # 续费时间单位,month/year
)
print(resp)
关闭自动续费(包含关联产品)
自动续费仅限预付费产品
from baidubce.auth.bce_credentials import BceCredentials
from baidubce.bce_client_configuration import BceClientConfiguration
from baidubce.services.bcc import bcc_client, bcc_model
if __name__ == '__main__':
# 设置您的ak、sk和要访问的地域
HOST = 'http://bcc.bj.baidubce.com'
AK = 'ak'
SK = 'sk'
# 设置默认配置
config = BceClientConfiguration(credentials=BceCredentials(AK, SK),
endpoint=HOST)
# 创建bcc client
client = bcc_client.BccClient(config)
resp = client.batch_delete_auto_renew_rules(
instance_id='i-***', # 实例id
renew_eip=True, # 是否合并关闭eip自动续费,默认值为True
renew_cds=True # 是否合并关闭cds自动续费,默认值为True
)
print(resp)
释放回收站实例
回收站实例7天后自动释放,清理回收站资源,可以使用以下代码将其释放:
# !/usr/bin/env python
# coding=utf-8
from baidubce.services.bcc import bcc_client
from baidubce.auth.bce_credentials import BceCredentials
from baidubce.bce_client_configuration import BceClientConfiguration
if __name__ == '__main__':
# 设置您的ak、sk和要访问的地域
HOST = b'http://bcc.bj.baidubce.com'
AK = b'ak'
SK = b'sk'
# 设置默认配置
config = BceClientConfiguration(credentials=BceCredentials(AK, SK),
endpoint=HOST)
# 创建bcc client
client = bcc_client.BccClient(config)
# 实例ID
instanceId = "i-***"
# 请求从回收站中删除实例
response = client.delete_recycled_instance(instance_id=instanceId)
print(response)
根据实例ID批量查询实例列表
以下代码可以根据实例ID批量查询实例列表
from baidubce.auth.bce_credentials import BceCredentials
from baidubce.bce_client_configuration import BceClientConfiguration
from baidubce.services.bcc import bcc_client
if __name__ == '__main__':
# 设置您的ak、sk和要访问的地域
HOST = b'http://bcc.bj.baidubce.com'
AK = b'ak'
SK = b'sk'
# 设置默认配置
config = BceClientConfiguration(credentials=BceCredentials(AK, SK),
endpoint=HOST)
# 创建bcc client
client = bcc_client.BccClient(config)
resp = client.list_instance_by_instance_ids(instance_ids=['i-***', 'i-***', 'i-***'], # 待查询的实例id列表
marker='123', # 批量获取列表的查询的起始位置
max_keys=10000, # 每页包含的最大数量
)
print(resp)
批量删除实例
以下代码可以批量删除实例,同时也可以选择删除其关联的资源
from baidubce.auth.bce_credentials import BceCredentials
from baidubce.bce_client_configuration import BceClientConfiguration
from baidubce.services.bcc import bcc_client
if __name__ == '__main__':
# 设置您的ak、sk和要访问的地域
HOST = b'http://bcc.bj.baidubce.com'
AK = b'ak'
SK = b'sk'
# 设置默认配置
config = BceClientConfiguration(credentials=BceCredentials(AK, SK),
endpoint=HOST)
# 创建bcc client
client = bcc_client.BccClient(config)
resp = client.batch_delete_instance_with_related_resource(instance_ids=['i-***'], # 实例ID
related_release_flag=True, # 删除实例时是否同时删除关联的资源
)
print(resp)
批量重启实例
使用以下代码可以批量重启实例
from baidubce.auth.bce_credentials import BceCredentials
from baidubce.bce_client_configuration import BceClientConfiguration
from baidubce.services.bcc import bcc_client
if __name__ == '__main__':
# 设置您的ak、sk和要访问的地域
HOST = b'http://bcc.bj.baidubce.com'
AK = b'ak'
SK = b'sk'
# 设置默认配置
config = BceClientConfiguration(credentials=BceCredentials(AK, SK),
endpoint=HOST)
# 创建bcc client
client = bcc_client.BccClient(config)
resp = client.batch_start_instance(instance_ids=['i-***', 'i-***'])
print(resp)
批量停止实例
使用以下代码可以批量停止实例
from baidubce.auth.bce_credentials import BceCredentials
from baidubce.bce_client_configuration import BceClientConfiguration
from baidubce.services.bcc import bcc_client, bcc_model
if __name__ == '__main__':
# 设置您的ak、sk和要访问的地域
HOST = 'http://bcc.bj.baidubce.com'
AK = 'ak'
SK = 'sk'
# 设置默认配置
config = BceClientConfiguration(credentials=BceCredentials(AK, SK),
endpoint=HOST)
# 创建bcc client
client = bcc_client.BccClient(config)
resp = client.batch_stop_instance(
instance_ids=['i-***', 'i-***'], # 实例id组成的集合
force_stop=False, # 指定实例是否强制关机,可选值:True、False
stop_with_no_charge=True # 是否关机计费
)
print(resp)
批量变配实例
使用以下代码可以批量变配实例
from baidubce.auth.bce_credentials import BceCredentials
from baidubce.bce_client_configuration import BceClientConfiguration
from baidubce.services.bcc import bcc_client
if __name__ == '__main__':
# 设置您的ak、sk和要访问的地域
HOST = b'http://bcc.bj.baidubce.com'
AK = b'ak'
SK = b'sk'
# 设置默认配置
config = BceClientConfiguration(credentials=BceCredentials(AK, SK),
endpoint=HOST)
# 创建bcc client
client = bcc_client.BccClient(config)
# 执行批量变配实例的操作
resp = client.batch_resize_instance(instance_ids=['i-***'], # 实例id组成的集合,最多30个
spec='bcc.g5.c8m32', # 批量变配的实例规格
subnet_id='sbn-***', # 子网id
logical_zone='cn-bj-d', # 可用区
internal_ip_v4='ipv4', 内网IP
)
print(resp)
查询可以变配的实例规格
使用以下代码可以查询可以变配的实例规格
from baidubce.auth.bce_credentials import BceCredentials
from baidubce.bce_client_configuration import BceClientConfiguration
from baidubce.services.bcc import bcc_client
if __name__ == '__main__':
# 设置您的ak、sk和要访问的地域
HOST = b'http://bcc.bj.baidubce.com'
AK = b'ak'
SK = b'sk'
# 设置默认配置
config = BceClientConfiguration(credentials=BceCredentials(AK, SK),
endpoint=HOST)
# 创建bcc client
client = bcc_client.BccClient(config)
# 执行查询可以变配的实例规格的操作
resp = client.list_available_resize_specs(instance_ids=['i-***'], # 实例ID。实例ID、实例规格和规格族ID有且只能传一个
# spec='bcc.g5.c2m8', # 实例规格
# spec_id='subnet_id', # 规格族ID
# logical_zone='zone_name', # 实例所在可用区。若传入spec或specId,则该参数为必填。
)
print(resp)
批量转预付费
使用以下代码可以将实例批量转预付费,若需要对实例关联的cds变更,则必须在CdsList中传入所有需要转为预付费的cdsId,若所有cds均变更计费传入all。
from baidubce.auth.bce_credentials import BceCredentials
from baidubce.bce_client_configuration import BceClientConfiguration
from baidubce.services.bcc import bcc_client
from baidubce.services.bcc.bcc_model import PayTimingChangeReqModel
if __name__ == '__main__':
# 设置您的ak、sk和要访问的地域
HOST = b'http://bcc.bj.baidubce.com'
AK = b'ak'
SK = b'sk'
# 设置默认配置
config = BceClientConfiguration(credentials=BceCredentials(AK, SK),
endpoint=HOST)
# 创建bcc client
client = bcc_client.BccClient(config)
req1 = PayTimingChangeReqModel('i-***', cdsList=['all'], autoPay=True, duration=1)
req2 = PayTimingChangeReqModel('i-***', cdsList=['all'], duration=1)
req = [req1, req2]
resp = client.batch_change_instance_to_prepay(req)
print(resp)
批量转后付费
使用以下代码可以将实例批量转后付费,若需要对实例关联的cds变更,则必须在CdsList中传入所有需要转为后付费的cdsId,若所有cds均变更计费传入all。
from baidubce.auth.bce_credentials import BceCredentials
from baidubce.bce_client_configuration import BceClientConfiguration
from baidubce.services.bcc import bcc_client
from baidubce.services.bcc.bcc_model import PayTimingChangeReqModel
if __name__ == '__main__':
# 设置您的ak、sk和要访问的地域
HOST = b'http://bcc.bj.baidubce.com'
AK = b'ak'
SK = b'sk'
# 设置默认配置
config = BceClientConfiguration(credentials=BceCredentials(AK, SK),
endpoint=HOST)
# 创建bcc client
client = bcc_client.BccClient(config)
req1 = PayTimingChangeReqModel('i-***', cdsList=['all'])
req2 = PayTimingChangeReqModel('i-***', cdsList=['all'])
req = [req1, req2]
resp = client.batch_change_instance_to_postpay(req)
print(resp)
获取实例角色列表
使用以下代码可以获取实例角色列表
from baidubce.auth.bce_credentials import BceCredentials
from baidubce.bce_client_configuration import BceClientConfiguration
from baidubce.services.bcc import bcc_client, bcc_model
if __name__ == '__main__':
# 设置您的ak、sk和要访问的地域
HOST = b'http://bcc.bj.baidubce.com'
AK = b'ak'
SK = b'sk'
# 设置默认配置
config = BceClientConfiguration(credentials=BceCredentials(AK, SK),
endpoint=HOST)
# 创建bcc client
client = bcc_client.BccClient(config)
# 执行获取实例角色列表的操作
resp = client.list_instance_roles()
print(resp)
绑定角色
使用以下代码可以为BCC实例绑定角色
from baidubce.auth.bce_credentials import BceCredentials
from baidubce.bce_client_configuration import BceClientConfiguration
from baidubce.services.bcc import bcc_client, bcc_model
if __name__ == '__main__':
# 设置您的ak、sk和要访问的地域
HOST = b'http://bcc.bj.baidubce.com'
AK = b'ak'
SK = b'sk'
# 设置默认配置
config = BceClientConfiguration(credentials=BceCredentials(AK, SK),
endpoint=HOST)
# 创建bcc client
client = bcc_client.BccClient(config)
# 执行绑定角色的操作
resp = client.bind_instance_role(['i-***', 'i-***'], # 实例ID列表
role_name='BCC_Test', # 角色名称
)
print(resp)
解绑角色
使用以下代码可以为BCC实例解绑角色
from baidubce.auth.bce_credentials import BceCredentials
from baidubce.bce_client_configuration import BceClientConfiguration
from baidubce.services.bcc import bcc_client, bcc_model
if __name__ == '__main__':
# 设置您的ak、sk和要访问的地域
HOST = b'http://bcc.bj.baidubce.com'
AK = b'ak'
SK = b'sk'
# 设置默认配置
config = BceClientConfiguration(credentials=BceCredentials(AK, SK),
endpoint=HOST)
# 创建bcc client
client = bcc_client.BccClient(config)
# 执行解绑角色的操作
resp = client.unbind_instance_role(['i-***', 'i-***'], # 实例ID列表
role_name='BCC_Test' # 角色名称
)
print(resp)
添加Ipv6
使用以下代码可以为BCC实例添加Ipv6
from baidubce.auth.bce_credentials import BceCredentials
from baidubce.bce_client_configuration import BceClientConfiguration
from baidubce.services.bcc import bcc_client, bcc_model
if __name__ == '__main__':
# 设置您的ak、sk和要访问的地域
HOST = 'http://bcc.bj.baidubce.com'
AK = 'ak'
SK = 'sk'
# 设置默认配置
config = BceClientConfiguration(credentials=BceCredentials(AK, SK),
endpoint=HOST)
# 创建bcc client
client = bcc_client.BccClient(config)
resp = client.add_ipv6(
instance_id='i-***', # 实例id
ipv6_address='240c:4081:8005:ca0b:***:***', # ipv6地址,为空表示自动分配ipv6
reboot=True) # 是否重启,true表示重启,为空表示不重启
print(resp)
释放Ipv6
使用以下代码可以为BCC实例释放Ipv6
from baidubce.auth.bce_credentials import BceCredentials
from baidubce.bce_client_configuration import BceClientConfiguration
from baidubce.services.bcc import bcc_client, bcc_model
if __name__ == '__main__':
# 设置您的ak、sk和要访问的地域
HOST = 'http://bcc.bj.baidubce.com'
AK = 'ak'
SK = 'sk'
# 设置默认配置
config = BceClientConfiguration(credentials=BceCredentials(AK, SK),
endpoint=HOST)
# 创建bcc client
client = bcc_client.BccClient(config)
resp = client.delete_ipv6(
instance_id='i-***', # 实例id
reboot=True) # 是否重启,true表示重启,为空表示不重启
print(resp)
批量添加主网卡辅助IP
如下代码可以批量添加主网卡辅助IP:
from baidubce.auth.bce_credentials import BceCredentials
from baidubce.bce_client_configuration import BceClientConfiguration
from baidubce.services.bcc import bcc_client
if __name__ == '__main__':
# 设置您的ak、sk和要访问的地域
HOST = b'http://bcc.bj.baidubce.com'
AK = b'ak'
SK = b'sk'
# 设置默认配置
config = BceClientConfiguration(credentials=BceCredentials(AK, SK),
endpoint=HOST)
# 创建bcc client
client = bcc_client.BccClient(config)
private_ips = ["192.168.***.***", "192.168.***.***"]
res = client.batch_add_ip(instance_id="i-***", # 实例ID
private_ips=private_ips, # 辅助IP,和SecondaryPrivateIpAddressCount不可同时使用
# secondary_private_ip_address_count=2 # 自动分配IP数量,和PrivateIps不可同时使用
allocate_multi_ipv6_addr=True # 是否分配IPV6,创建IPV6必须是True
)
print(res)
批量删除网卡辅助IP
如下代码可以批量删除主网卡辅助IP:
from baidubce.auth.bce_credentials import BceCredentials
from baidubce.bce_client_configuration import BceClientConfiguration
from baidubce.services.bcc import bcc_client
if __name__ == '__main__':
# 设置您的ak、sk和要访问的地域
HOST = b'http://bcc.bj.baidubce.com'
AK = b'ak'
SK = b'sk'
# 设置默认配置
config = BceClientConfiguration(credentials=BceCredentials(AK, SK),
endpoint=HOST)
# 创建bcc client
client = bcc_client.BccClient(config)
private_ips = ["192.168.***.***", "192.168.***.***"]
res = client.batch_delete_ip(instance_id="i-***", # 实例ID
private_ips=private_ips, # 辅助IP
)
print(res)
释放实例(POST)
使用以下代码释放单个后付费云服务器实例:
from baidubce.auth.bce_credentials import BceCredentials
from baidubce.bce_client_configuration import BceClientConfiguration
from baidubce.services.bcc import bcc_client
if __name__ == '__main__':
# 设置您的ak、sk和要访问的地域
HOST = b'http://bcc.bj.baidubce.com'
AK = b'ak'
SK = b'sk'
# 设置默认配置
config = BceClientConfiguration(credentials=BceCredentials(AK, SK),
endpoint=HOST)
# 创建bcc client
client = bcc_client.BccClient(config)
res = client.release_instance_with_related_resources(instance_id="i-***", # 实例id
related_release_flag=True, # 是否关联释放当前时刻,实例挂载的EIP和数据盘
delete_cds_snapshot_flag=True, # 是否释放云磁盘快照
delete_related_enis_flag=True, # 实例释放时是否删除关联的ENI
bcc_recycle_flag=True # 实例释放时是否进入回收站
)
print(res)
释放预付费实例(POST)
释放预付费云服务器实例,释放后实例所使用的物理资源都被收回,相关数据全部丢失且不可恢复。 释放的时候默认只释放云服务器实例和系统盘,用户可以选择是否关联释放云服务器实例挂载的EIP和数据盘,关联的EIP和数据盘需全部释放或全部不释放,不支持选择部分释放,部分不释放。 当选择关联释放EIP和数据盘,云磁盘快照可选择一同关联释放,若数据盘不关联释放,云磁盘快照也不支持关联释放。
from baidubce.auth.bce_credentials import BceCredentials
from baidubce.bce_client_configuration import BceClientConfiguration
from baidubce.services.bcc import bcc_client
if __name__ == '__main__':
# 设置您的ak、sk和要访问的地域
HOST = b'http://bcc.bj.baidubce.com'
AK = b'ak'
SK = b'sk'
# 设置默认配置
config = BceClientConfiguration(credentials=BceCredentials(AK, SK),
endpoint=HOST)
# 创建bcc client
client = bcc_client.BccClient(config)
res = client.release_prepaid_instance_with_related_resources(instance_id="i-***", # 实例id
related_release_flag=True, # 是否关联释放当前实例挂载的EIP和数据盘(只有该字段为true时 delete_cds_snapshot_flag字段才会有效,若该字段为false,delete_cds_snapshot_flag字段的值无效)
delete_cds_snapshot_flag=True, # 是否释放云磁盘快照
delete_related_enis_flag=True, # 实例释放时是否删除关联的ENI
)
print(res)