实例
所有文档
menu

云服务器 BCC

实例

产品详情自助选购

创建实例

使用以下代码可以创建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)

类型编码请参考实例类型磁盘类型GPU类型

创建实例(通过规格参数)

使用以下代码可以通过规格参数创建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, # 是否是在线变配
                                  enable_jumbo_frame=False) # 是否开启Jumbo帧,True开启Jumbo帧,Flase关闭Jumbo帧。默认为空,为空表示:变配到不支持Jumbo帧的规格时,不开启Jumbo帧;
                                                            # 从不支持变配到支持的规格时,不开启Jumbo帧;从支持到支持得规格是,若实例变配前开启Jumbo帧,变配后也开启Jumbo帧,若变配前不开启,则变配后也不开启。
    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=1000, # 每页包含的最大数量
                                                    )
        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,最多100个
                                                                  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)
    # 实例ID,最多100个
    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组成的集合,最多100个
        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]
    # req集合元素最多100个
    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]
    # req集合元素最多100个
    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,最多100个,和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,最多100个
                              )
    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)
上一篇
BccClient
下一篇
磁盘