VPC
获取Endpoint
在确认您使用SDK时配置的Endpoint时,可先阅读开发人员指南中关于VPC服务域名的部分,理解Endpoint相关的概念。 百度智能云目前开放了多区域支持,请参考区域选择说明中网络产品VPC的部分。
注意: VPC API支持HTTP和HTTPS两种调用方式。为了提升数据的安全性,建议通过HTTPS调用
获取AK/SK
要使用百度智能云VPC,您需要拥有一个有效的 AK(Access Key ID)和SK(Secret Access Key)用来进行签名认证。AK/SK是由系统分配给用户的,均为字符串,用于标识用户,为访问服务做签名验证。 可以通过如下步骤获得并了解您的AK/SK信息:
新建VpcClient
VpcClient是VPC服务的客户端,为开发者与VPC服务进行交互提供了一系列的方法。 新建VpcClient时,需要先使用Endpoint、AK、SK对BceClientConfigurationl类型的config实例进行配置,再使用config实例对VpcClient进行配置,具体配置方法如下:
1HOST = b''
2AK = b''
3SK = b''
4config = BceClientConfiguration(credentials=BceCredentials(AK, SK), endpoint=HOST)
5self.the_client = vpc_client.VpcClient(config)
            创建VPC
函数声明
1@required(name=(bytes, str), cidr=(bytes, str))
2def create_vpc(self, name, cidr, description=None, client_token=None, config=None):
            参数含义
请参考OpenApi文档: https://cloud.baidu.com/doc/VPC/s/Njwvyuaq5
使用示例
1vpc_name = 'test_vpc_name'
2vpc_cidr = '192.168.240.0/20'
3description = 'test_vpc_descrition'
4self.the_client.create_vpc(vpc_name, vpc_cidr, description))
            返回值
操作成功:
1{
2    "vpcId":"vpc-1849ef6b"
3}
            操作失败:
抛出异常,异常列表参考:https://cloud.baidu.com/doc/VPC/s/sjwvyuhe7
代码示例
具体代码示例参考:  example_create_vpc.py
列举VPC
函数声明
1@required(marker=(bytes, str), max_Keys=int, is_Default=bool)
2def list_vpcs(self, marker=None, max_Keys=None, isDefault=None, config=None):
            参数含义
请参考OpenApi文档: https://cloud.baidu.com/doc/VPC/s/wjwvyub23  
使用示例
1self.the_client.list_vpcs()
            返回值
操作成功:   
1{
2"nextMarker": "vpc-xktdeMSf",
3"marker": "vpc-IyWRtII7",
4"maxKeys": 1,
5"isTruncated": true,
6"vpcs": [
7    {
8        "vpcId': "vpc-IyWRtII7",
9        "name": "VPC Name",
10        "isDefault": True,
11        "cidr": "0.0.0.0/0",
12        "description": "default",
13        "ipv6Cidr": "2400:da00:e003:4c00::/56",
14        "tags":[
15        {
16           "tagKey": "tagKey",
17           "tagValue": "tagValue"
18         }
19       ]
20    }
21	]
22} 
            操作失败:
抛出异常,异常列表参考:https://cloud.baidu.com/doc/VPC/s/sjwvyuhe7  
代码示例
具体代码示例参考:example_list_vpc.py
查询VPC
函数声明
1@required(vpc_id=(bytes, str))
2def get_vpc(self, vpc_id, config=None):
            参数含义
请参考OpenApi文档: https://cloud.baidu.com/doc/VPC/s/yjwvyuaeo
使用示例
1self.the_client.get_vpc(vpc_id)
            返回值
操作成功:  
1{   
2    "vpc": {
3        "vpcId': "vpc-IyWRtII7",
4        "name": u"\u9ed8\u8ba4\u79c1\u6709\u7f51\u7edc",
5        "isDefault": True,
6        "cidr": "0.0.0.0/0",
7        "ipv6Cidr": "2400:da00:e003:4c00::/56",
8        "description": "default",
9        "subnets": [
10	        {
11	          "name": "系统预定义子网",
12            	"subnetId": "sbn-IyWRnII7",
13            	"zoneName": "cn-bj-a",
14            	"cidr": "192.168.0.0/20",
15                "ipv6Cidr": "2400:da00:e003:4c11::/64",
16            	"vpcId": "vpc-IyrqYIQ7",
17            	"subnetType": "BCC",
18            	"description": ""
19                "createdTime": "2018-03-14T14:45:02Z"
20	        }
21    	],
22       "tags":[
23          {
24            "tagKey": "tagKey",
25            "tagValue": "tagValue"
26         }
27      ]
28    }   
29}  
            操作失败:
抛出异常,异常列表参考:https://cloud.baidu.com/doc/VPC/s/sjwvyuhe7  
代码示例
具体代码示例参考:example_get_vpc.py
更新VPC
函数声明
1@required(vpc_id=(bytes, str), name=(bytes, str))
2def update_vpc(self, vpc_id, name, description=None, client_token=None, config=None):
            参数含义
请参考OpenApi文档: https://cloud.baidu.com/doc/VPC/s/tjwvyubez
使用示例
1self.the_client.update_vpc(vpc_id, 'test_update_name', 'test_update_description')
            返回值
操作成功:  
1{   
2}  
            操作失败:
抛出异常,异常列表参考:https://cloud.baidu.com/doc/VPC/s/sjwvyuhe7  
代码示例
具体代码示例参考:  example_update_vpc.py
注意: 只允许更新vpc的name和description字段,cidr字段不能更新
删除VPC
函数声明
1@required(vpc_id=(bytes, str))
2def delete_vpc(self, vpc_id, client_token=None, config=None):
            参数含义
请参考OpenApi文档: https://cloud.baidu.com/doc/VPC/s/Ijwvyua0d
使用示例
1self.the_client.delete_vpc(vpc_id)
            返回值
操作成功:  
1{   
2}  
            操作失败:
抛出异常,异常列表参考:https://cloud.baidu.com/doc/VPC/s/sjwvyuhe7  
代码示例
具体代码示例参考:  example_delete_vpc.py
查询VPC内网IP
函数声明
1@required(vpc_id=(bytes, str))
2def get_private_ip_address_info(self, vpc_id, private_ip_range=None, private_ip_addresses=None, config=None):
            参数含义
请参考OpenApi文档: https://cloud.baidu.com/doc/VPC/s/2kih0m069
使用示例
1self.the_client.get_private_ip_address_info(vpc_id=vpc_id, private_ip_addresses=private_ip_addresses)
            返回值
操作成功:
1{
2  "vpc_private_ip_addresses": [
3    {
4      "cidr": "192.168.0.0/20",
5      "private_ip_address": "192.168.0.1",
6      "private_ip_address_type": "sys_occupancy",
7      "created_time": "1999-01-01T01:01:01Z"
8    }
9  ]
10}
            操作失败:
抛出异常,异常列表参考:https://cloud.baidu.com/doc/VPC/s/sjwvyuhe7  
代码示例
具体代码示例参考:  example_get_vpc_ip.py
