所有文档

          弹性裸金属服务器

          实例

          BBC实例是百度云上的弹性裸金属服务器操作实例,也是计费、权限控制等高级功能的管理实体。

          创建实例

          使用以下代码可以创建一个或多个BBC实例。

          def create_instance(self):
              #如果用户未指定client_token参数,用uuid4生成一个随机字符串给client_token
              generate_client_token = str(uuid.uuid4())
              client_token = generate_client_token()
              #输入你选择的flavor(套餐)ID,通过SDK获取可用flavor id的方法详见套餐章节
              flavor_id = 'your-choose-flavor-id'
              #输入你要创建instance使用的镜像ID,通过SDK获取可用镜像ID的方法详见镜像章节
              image_id = 'your-choose-image-id'
              #输入你要创建instance使用的raid ID,通过SDK获取可用flavor id的方法详见套餐章节
              image_id = 'your-choose-raid-id'
              #输入待创建物理磁盘的大小,单位为GB,缺省为20
              root_disk_size_in_gb = 20
              #批量创建(购买)的虚拟机实例个数,必须为大于0的整数,可选参数,缺省为1
              purchase_count = 1
              #可用区,格式为:国家-区域-可用区,如'中国-北京-可用区A'就是'cn-bj-a'
              zone_name = 'cn-bj-a'
              #指定subnet信息,为空时将使用默认子网。
              subnet_id = '604cebcd-740d-49d1-a1ac-72a91f5e34aa'
              #指定security_group信息,可选参数,智能卡才需要
              security_group_id = 'g-1utufn3mtg1y'
              #选择付费方式:
              #付费方式为后付费
              post_paid_billing = bcc_model.Billing('Postpaid', 1)
              #付费方式为包年包月计费的预付费
              pre_paid_billing = bcc_model.Billing('Prepaid', 1)
              #实例名称
              instance_name = 'your-choose-instance-name' + client_token
              #指定使用的部署集id,可选参数
              deploy_set_id = 'your-choose-deploy-set-id'
              #设置实例管理员密码(8-16位字符,英文,数字和符号必须同时存在,符号仅限!@#$%^*())
              admin_pass = 'your-admin-pass'
              #设置自动续费时间单位,可选"month"或者"year"
              auto_renew_time_unit = "month"
              #设置自动续费时间,按月是1-9 按年是 1-3
              auto_renew_time = 1
              self.client.create_instance(client_token = client_token,
                                          flavor_id = flavor_id,
                                          image_id = image_id,
                                          raid_id = raid_id,
                                          root_disk_size_in_gb = root_disk_size_in_gb, 
                                          purchase_count = purchase_count, 
                                          zone_name = zone_name, 
                                          subnet_id = subnet_id, 
                                          security_group_id = security_group_id,
                                          billing = post_paid_billing,
                                          name = instance_name,
                                          deploy_set_id = deploy_set_id,
                                          admin_pass = admin_pass,
                                          auto_renew_time_unit = auto_renew_time_unit,
                                          auto_renew_time = auto_renew_time)

          查询实例列表

          使用以下代码查询所有BBC实例的列表及详情信息

          def list_instances(self):
              #批量获取列表的查询起始位置,是一个由系统产生的字符串
              self.client.list_instances(marker='your-marker')
              #设置返回数据大小
              self.client.list_instances(max_keys=100)
              #通过internal Ip过滤BBC列表
              self.client.list_instances(internal_ip='your-choose-internal-ip')
              #执行查询BBC实例列表操作
              self.client.list_instances()

          查询实例详情

          使用以下代码可以查询指定BBC实例的详细信息:

          def get_instance(self): 
              #设置你要操作的instance_id
              instance_id = 'your-choose-instance-id'
              #设置是否查询创建失败信息, True表示查询,默认为False
              contains_failed = True
              self.client.get_instance(instance_id = instance_id, contains_failed = contains_failed)

          启动实例

          使用以下代码可以启动指定BBC实例,实例状态必须为 Stopped,调用此接口才可以成功返回,否则提示409错误:

          def start_instance(self):
              #设置你要操作的instance_id
              instance_id = 'your-choose-instance-id'
              self.client.start_instance(instance_id = instance_id)

          停止实例

          使用以下代码可以停止指定BBC实例,只有状态为 Running 的实例才可以进行此操作,否则提示 409 错误:

          def stop_instance(self):
              #设置你要操作的instance_id
              instance_id = 'your-choose-instance-id'
              #是否强制停止实例,为True代表强制停止。缺省为False
              force_stop = False
              self.client.stop_instance(instance_id = instance_id, force_stop = force_stop))

          重启实例

          使用以下代码可以重启指定BBC实例,只有状态为 Running 的实例才可以进行此操作,否则提示 409 错误:

          def reboot_instance(self):
              #设置你要操作的instance_id
              instance_id = 'your-choose-instance-id'
              #是否强制重启实例,为True代表强制重启。缺省为False
              force_stop = False
              self.client.reboot_instance(instance_id = instance_id,  force_stop = force_stop))

          修改实例名称

          使用以下代码可以修改指定BBC实例的名称:

          def modify_instance_name(self):
              #设置你要操作的instance_id
              instance_id = 'your-choose-instance-id'
              name = 'name_modify'    
              self.client.modify_instance_attributes(instance_id = instance_id, name = name)

          修改实例描述

          使用以下代码可以修改指定BBC实例的描述:

          def modify_instance_desc(self):
              #设置你要操作的instance_id
              instance_id = 'your-choose-instance-id'
              desc = 'your_desc'   
              self.client.modify_instance_attributes(instance_id = instance_id, desc = desc)), 

          重装实例

          使用以下代码可以使用镜像重建指定BBC实例:

          def rebuild_instance(self):
              #设置你要操作的instance_id
              instance_id = 'your-choose-instance-id'
              #设置使用的镜像id
              image_id = 'your-choose-image-id'
              #设置管理员密码
              admin_pass = 'your-new-admin-pass'
              #是否保留数据,默认为true。当值为true时,raidId和sysRootSize字段不生效
              is_preserve_data = False
              #raid配置Id,可通过调用SDK的get_flavor_raid接口获得。此参数在isPreserveData为false时为必填,在isPreserveData为true时不生效
              raid_id = 'your_raid_id'
              #系统盘根分区大小,默认为20G,取值范围为20-100。此参数在isPreserveData为true时不生效
              sys_root_size = 20
              self.client.rebuild_instance(instance_id = instance_id, 
                                           image_id = image_id, 
                                           admin_pass = admin_pass,
                                           is_preserve_data = is_preserve_data, 
                                           raid_id = raid_id, 
                                           sys_root_size = sys_root_size)

          释放实例

          对于后付费Postpaid以及预付费Prepaid过期的BBC实例,可以使用以下代码将其释放:

          def release_instance(self):
              #设置你要操作的instance_id
              instance_id = 'your-choose-instance-id'
              self.client.release_instance(instance_id = instance_id)

          修改实例密码

          使用以下代码可以修改指定BBC实例的管理员密码:

          def modify_instance_password(self):
              #设置你要操作的instance_id
              instance_id = 'your-choose-instance-id'
              #设置新的密码
              admin_pass = 'your-new-admin-pass'
              self.client.modify_instance_password(instance_id = instance_id, admin_pass = admin_pass)

          查询实例VPC/Subnet信息

          使用以下代码可以通过BBC实例id查询VPC/Subnet信息:

          def get_vpc_subnet(self):
              #设置你要操作的instance_id
              instance_ids = ['your-choose-instance-id']
              self.client.get_vpc_subnet(bbc_ids = instance_ids)

          开通自动续费(包含关联产品)

          使用以下代码可以开通自动续费

          • 仅限预付费产品生效
          def create_auto_renew_rules(self):
              #设置你要操作的instance_id
              instance_id = 'your-choose-instance-id'
              #设置自动续费时间单位
              renew_time_unit = "month"
              #设置自动续费时间
              renew_time = 1
              self.client.create_auto_renew_rules(instance_id, renew_time_unit, renew_time)

          取消自动续费(包含关联产品)

          使用以下代码可以取消自动续费

          • 仅限预付费产品生效
          def delete_auto_renew_rules(self):
              #设置你要操作的instance_id
              instance_id = 'your-choose-instance-id'
              self.client.delete_auto_renew_rules(instance_id)
          上一篇
          BbcClient
          下一篇
          镜像