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进行配置,具体配置方法如下:
HOST = b''
AK = b''
SK = b''
config = BceClientConfiguration(credentials=BceCredentials(AK, SK), endpoint=HOST)
self.the_client = vpc_client.VpcClient(config)
创建VPC
函数声明
@required(name=(bytes, str), cidr=(bytes, str))
def create_vpc(self, name, cidr, description=None, client_token=None, config=None):
参数含义
请参考OpenApi文档: https://cloud.baidu.com/doc/VPC/s/Njwvyuaq5
使用示例
vpc_name = 'test_vpc_name'
vpc_cidr = '192.168.240.0/20'
description = 'test_vpc_descrition'
self.the_client.create_vpc(vpc_name, vpc_cidr, description))
返回值
操作成功:
{
"vpcId":"vpc-1849ef6b"
}
操作失败:
抛出异常,异常列表参考:https://cloud.baidu.com/doc/VPC/s/sjwvyuhe7
代码示例
具体代码示例参考: example_create_vpc.py
列举VPC
函数声明
@required(marker=(bytes, str), max_Keys=int, is_Default=bool)
def list_vpcs(self, marker=None, max_Keys=None, isDefault=None, config=None):
参数含义
请参考OpenApi文档: https://cloud.baidu.com/doc/VPC/s/wjwvyub23
使用示例
self.the_client.list_vpcs()
返回值
操作成功:
{
"nextMarker": "vpc-xktdeMSf",
"marker": "vpc-IyWRtII7",
"maxKeys": 1,
"isTruncated": true,
"vpcs": [
{
"vpcId': "vpc-IyWRtII7",
"name": "VPC Name",
"isDefault": True,
"cidr": "0.0.0.0/0",
"description": "default",
"ipv6Cidr": "2400:da00:e003:4c00::/56",
"tags":[
{
"tagKey": "tagKey",
"tagValue": "tagValue"
}
]
}
]
}
操作失败:
抛出异常,异常列表参考:https://cloud.baidu.com/doc/VPC/s/sjwvyuhe7
代码示例
具体代码示例参考:example_list_vpc.py
查询VPC
函数声明
@required(vpc_id=(bytes, str))
def get_vpc(self, vpc_id, config=None):
参数含义
请参考OpenApi文档: https://cloud.baidu.com/doc/VPC/s/yjwvyuaeo
使用示例
self.the_client.get_vpc(vpc_id)
返回值
操作成功:
{
"vpc": {
"vpcId': "vpc-IyWRtII7",
"name": u"\u9ed8\u8ba4\u79c1\u6709\u7f51\u7edc",
"isDefault": True,
"cidr": "0.0.0.0/0",
"ipv6Cidr": "2400:da00:e003:4c00::/56",
"description": "default",
"subnets": [
{
"name": "系统预定义子网",
"subnetId": "sbn-IyWRnII7",
"zoneName": "cn-bj-a",
"cidr": "192.168.0.0/20",
"ipv6Cidr": "2400:da00:e003:4c11::/64",
"vpcId": "vpc-IyrqYIQ7",
"subnetType": "BCC",
"description": ""
"createdTime": "2018-03-14T14:45:02Z"
}
],
"tags":[
{
"tagKey": "tagKey",
"tagValue": "tagValue"
}
]
}
}
操作失败:
抛出异常,异常列表参考:https://cloud.baidu.com/doc/VPC/s/sjwvyuhe7
代码示例
具体代码示例参考:example_get_vpc.py
更新VPC
函数声明
@required(vpc_id=(bytes, str), name=(bytes, str))
def update_vpc(self, vpc_id, name, description=None, client_token=None, config=None):
参数含义
请参考OpenApi文档: https://cloud.baidu.com/doc/VPC/s/tjwvyubez
使用示例
self.the_client.update_vpc(vpc_id, 'test_update_name', 'test_update_description')
返回值
操作成功:
{
}
操作失败:
抛出异常,异常列表参考:https://cloud.baidu.com/doc/VPC/s/sjwvyuhe7
代码示例
具体代码示例参考: example_update_vpc.py
注意: 只允许更新vpc的name和description字段,cidr字段不能更新
删除VPC
函数声明
@required(vpc_id=(bytes, str))
def delete_vpc(self, vpc_id, client_token=None, config=None):
参数含义
请参考OpenApi文档: https://cloud.baidu.com/doc/VPC/s/Ijwvyua0d
使用示例
self.the_client.delete_vpc(vpc_id)
返回值
操作成功:
{
}
操作失败:
抛出异常,异常列表参考:https://cloud.baidu.com/doc/VPC/s/sjwvyuhe7
代码示例
具体代码示例参考: example_delete_vpc.py
查询VPC内网IP
函数声明
@required(vpc_id=(bytes, str))
def 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
使用示例
self.the_client.get_private_ip_address_info(vpc_id=vpc_id, private_ip_addresses=private_ip_addresses)
返回值
操作成功:
{
"vpc_private_ip_addresses": [
{
"cidr": "192.168.0.0/20",
"private_ip_address": "192.168.0.1",
"private_ip_address_type": "sys_occupancy",
"created_time": "1999-01-01T01:01:01Z"
}
]
}
操作失败:
抛出异常,异常列表参考:https://cloud.baidu.com/doc/VPC/s/sjwvyuhe7
代码示例
具体代码示例参考: example_get_vpc_ip.py