子网
获取Endpoint
在确认您使用SDK时配置的Endpoint时,可先阅读开发人员指南中关于VPC服务域名的部分,理解Endpoint相关的概念。 百度智能云目前开放了多区域支持,请参考区域选择说明中网络产品VPC的部分。
注意: 子网 API支持HTTP和HTTPS两种调用方式。为了提升数据的安全性,建议通过HTTPS调用
获取AK/SK
要使用百度智能云子网,您需要拥有一个有效的 AK(Access Key ID)和SK(Secret Access Key)用来进行签名认证。AK/SK是由系统分配给用户的,均为字符串,用于标识用户,为访问服务做签名验证。 可以通过如下步骤获得并了解您的AK/SK信息:
新建SubnetClient
SubnetClient是Subnet服务的客户端,为开发者与Subnet服务进行交互提供了一系列的方法。 新建SubnetClient时,需要先使用Endpoint、AK、SK对BceClientConfigurationl类型的config实例进行配置,再使用config实例对SubnetClient进行配置,具体配置方法如下:
1HOST = b'bcc.bj.baidubce.com'
2AK = b''
3SK = b''
4config = BceClientConfiguration(credentials=BceCredentials(AK, SK), endpoint=HOST)
5self.the_client = subnet_client.SubnetClient(config)
创建子网
函数声明
1@required(name=(bytes, str), zone_name=(bytes, str), cidr=(bytes, str), vpc_id=(bytes, str))
2def create_subnet(self, name, zone_name, cidr, vpc_id, subnet_type=None, description=None, client_token=None, config=None)
参数含义
请参考OpenApi文档: https://cloud.baidu.com/doc/VPC/s/Yjwvyu8o1
使用示例
1subnet_name = 'test_subnet_name'
2subnet_cidr = '192.168.0.64/26'
3vpc_id = 'vpc-51csm6rxs9mg'
4self.the_client.create_subnet(subnet_name, 'cn-bj-a', subnet_cidr, vpc_id))
返回值
操作成功:
1{
2 "subnetId":"sbn-1A09ef6b"
3}
操作失败:
抛出异常,异常列表参考:https://cloud.baidu.com/doc/VPC/s/sjwvyuhe7
代码示例
具体代码示例参考: example_create_subnet.py
列举子网
函数声明
1@required(marker=(bytes, str),
2 max_Keys=int,
3 vpc_id=(bytes, str),
4 zone_name=(bytes, str),
5 subnet_type=(bytes, str))
6def list_subnets(self, marker=None, max_keys=None, vpc_id=None,
7 zone_name=None, subnet_type=None, config=None):
参数含义
请参考OpenApi文档: https://cloud.baidu.com/doc/VPC/s/xjwvyu8zu
使用示例
1self.the_client.list_subnets()
返回值
操作成功:
1{
2 "nextMarker": "sbn-IyarenI7",
3 "marker": "sbn-IyWRnII7",
4 "maxKeys": 1,
5 "isTruncated": true,
6 "subnets": [
7 {
8 "name": "系统预定义子网",
9 "subnetId": "sbn-IyWRnII7",
10 "zoneName": "cn-bj-a",
11 "cidr": "192.168.0.0/20",
12 "ipv6Cidr": "",
13 "vpcId": "vpc-IyrqYIQ7",
14 "subnetType": "BCC",
15 "description": "",
16 "createdTime": "2020-11-19T12:46:01Z",
17 "tags": [
18 {
19 "tagKey": "aa",
20 "tagValue": "bb"
21 }
22 ]
23 }
24 ]
25}
操作失败:
抛出异常,异常列表参考:https://cloud.baidu.com/doc/VPC/s/sjwvyuhe7
代码示例
具体代码示例参考: example_list_subnet.py
查询子网
函数声明
1@required(subnet_id=(bytes, str))
2def get_subnet(self, subnet_id, config=None):
参数含义
请参考OpenApi文档: https://cloud.baidu.com/doc/VPC/s/Sjwvyu89a
使用示例
1self.the_client.get_subnet(subnet_id)
返回值
操作成功:
1{
2 "subnet":
3 {
4 "name": "系统预定义子网",
5 "subnetId": "sbn-IyWRnII7",
6 "zoneName": "cn-bj-a",
7 "cidr": "192.168.0.0/20",
8 "ipv6Cidr": "",
9 "vpcId": "vpc-IyrqYIQ7",
10 "subnetType": "BCC",
11 "availableIp": 4090,
12 "description": "",
13 "createdTime": "2020-11-19T12:46:01Z"
14 }
15}
操作失败:
抛出异常,异常列表参考:https://cloud.baidu.com/doc/VPC/s/sjwvyuhe7
代码示例
具体代码示例参考: example_get_subnet.py
更新子网
函数声明
1@required(subnet_id=(bytes, str),
2 name=(bytes, str),
3 description=(bytes, str))
4def update_subnet(self, subnet_id, name, description=None, client_token=None, config=None):
参数含义
请参考OpenApi文档: https://cloud.baidu.com/doc/VPC/s/3jwvyu7wm
使用示例
1self.the_client.update_subnet(subnet_id, 'test_update_name1', 'test_update_description1')
返回值
操作成功:
1{
2}
操作失败:
抛出异常,异常列表参考:https://cloud.baidu.com/doc/VPC/s/sjwvyuhe7
代码示例
具体代码示例参考: example_update_subnet.py
注意: 只允许更新子网的name和description字段,cidr、zone_name和type字段不能更新
删除子网
函数声明
1@required(subnet_id=(bytes, str))
2def delete_subnet(self, subnet_id, client_token=None, config=None):
参数含义
请参考OpenApi文档: https://cloud.baidu.com/doc/VPC/s/6jwvyu9b8
使用示例
1self.the_client.delete_subnet(subnet_id)
返回值
操作成功:
1{
2}
操作失败:
抛出异常,异常列表参考:https://cloud.baidu.com/doc/VPC/s/sjwvyuhe7
代码示例
具体代码示例参考: example_delete_subnet.py
创建预留网段
函数声明
1@required(subnet_id=(bytes, str),
2 ip_cidr=(bytes, str),
3 ip_version=int,
4 description=(bytes, str))
5def create_subnet_ipreserve(self, subnet_id, ip_cidr, ip_version, description=None,client_token=None, config=None):
参数含义
请参考OpenAPI文档:https://cloud.baidu.com/doc/VPC/s/xlgyjw2kn
返回值
操作成功:
1{
2 "ipReserveId":"ipr-te2pa9cv4ikk"
3}
操作失败:
返回错误,错误代码列表参考:https://cloud.baidu.com/doc/VPC/s/sjwvyuhe7
代码示例
具体代码示例参考: example_create_subnet_ipreserve.py
查询预留网段列表
函数声明
1@required(subnet_id=(bytes, str),
2 marker=(bytes, str),
3 max_keys=int)
4def list_subnet_ipreserve(self, subnet_id=None, marker=None, max_keys=None, config=None):
参数含义
请参考OpenAPI文档:https://cloud.baidu.com/doc/VPC/s/Flgyjya1o
返回值
操作成功:
1{
2 "marker": "",
3 "nextMarker": "ipr-7xp6wvzqpmhd",
4 "maxKeys": 1,
5 "isTruncated": true,
6 "ipReserves":[
7 {
8 "ipReserveId":"ipr-tqsbpf5hcvbp",
9 "subnetId":"sbn-a4cikyt7756r",
10 "ipCidr":"192.168.0.200/30",
11 "ipVersion":"4",
12 "description":"test",
13 "createdTime":"2023-04-27T03:44:38Z",
14 "updatedTime":"2023-04-27T03:45:38Z"
15 }
16 ]
17}
操作失败: 返回错误,错误代码列表参考:https://cloud.baidu.com/doc/VPC/s/sjwvyuhe7
代码示例
具体代码示例参考: example_list_subnet_ipreserve.py
删除预留网段
函数声明
1@required(ip_reserve_id=(bytes, str))
2def delete_subnet_ipreserve(self, ip_reserve_id, lient_token=None, config=None):
参数含义
请参考OpenAPI文档:https://cloud.baidu.com/doc/VPC/s/6lgyjz8jn
返回值
操作成功:
1{}
操作失败:
返回错误,错误代码列表参考:https://cloud.baidu.com/doc/VPC/s/sjwvyuhe7
代码示例
具体代码示例参考: example_delete_subnet_ipreserve.py