子网
获取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进行配置,具体配置方法如下:
HOST = b'bcc.bj.baidubce.com'
AK = b''
SK = b''
config = BceClientConfiguration(credentials=BceCredentials(AK, SK), endpoint=HOST)
self.the_client = subnet_client.SubnetClient(config)
创建子网
函数声明
@required(name=(bytes, str), zone_name=(bytes, str), cidr=(bytes, str), vpc_id=(bytes, str))
def 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
使用示例
subnet_name = 'test_subnet_name'
subnet_cidr = '192.168.0.64/26'
vpc_id = 'vpc-51csm6rxs9mg'
self.the_client.create_subnet(subnet_name, 'cn-bj-a', subnet_cidr, vpc_id))
返回值
操作成功:
{
"subnetId":"sbn-1A09ef6b"
}
操作失败:
抛出异常,异常列表参考:https://cloud.baidu.com/doc/VPC/s/sjwvyuhe7
代码示例
具体代码示例参考: example_create_subnet.py
列举子网
函数声明
@required(marker=(bytes, str),
max_Keys=int,
vpc_id=(bytes, str),
zone_name=(bytes, str),
subnet_type=(bytes, str))
def list_subnets(self, marker=None, max_keys=None, vpc_id=None,
zone_name=None, subnet_type=None, config=None):
参数含义
请参考OpenApi文档: https://cloud.baidu.com/doc/VPC/s/xjwvyu8zu
使用示例
self.the_client.list_subnets()
返回值
操作成功:
{
"nextMarker": "sbn-IyarenI7",
"marker": "sbn-IyWRnII7",
"maxKeys": 1,
"isTruncated": true,
"subnets": [
{
"name": "系统预定义子网",
"subnetId": "sbn-IyWRnII7",
"zoneName": "cn-bj-a",
"cidr": "192.168.0.0/20",
"ipv6Cidr": "",
"vpcId": "vpc-IyrqYIQ7",
"subnetType": "BCC",
"description": "",
"createdTime": "2020-11-19T12:46:01Z",
"tags": [
{
"tagKey": "aa",
"tagValue": "bb"
}
]
}
]
}
操作失败:
抛出异常,异常列表参考:https://cloud.baidu.com/doc/VPC/s/sjwvyuhe7
代码示例
具体代码示例参考: example_list_subnet.py
查询子网
函数声明
@required(subnet_id=(bytes, str))
def get_subnet(self, subnet_id, config=None):
参数含义
请参考OpenApi文档: https://cloud.baidu.com/doc/VPC/s/Sjwvyu89a
使用示例
self.the_client.get_subnet(subnet_id)
返回值
操作成功:
{
"subnet":
{
"name": "系统预定义子网",
"subnetId": "sbn-IyWRnII7",
"zoneName": "cn-bj-a",
"cidr": "192.168.0.0/20",
"ipv6Cidr": "",
"vpcId": "vpc-IyrqYIQ7",
"subnetType": "BCC",
"availableIp": 4090,
"description": "",
"createdTime": "2020-11-19T12:46:01Z"
}
}
操作失败:
抛出异常,异常列表参考:https://cloud.baidu.com/doc/VPC/s/sjwvyuhe7
代码示例
具体代码示例参考: example_get_subnet.py
更新子网
函数声明
@required(subnet_id=(bytes, str),
name=(bytes, str),
description=(bytes, str))
def update_subnet(self, subnet_id, name, description=None, client_token=None, config=None):
参数含义
请参考OpenApi文档: https://cloud.baidu.com/doc/VPC/s/3jwvyu7wm
使用示例
self.the_client.update_subnet(subnet_id, 'test_update_name1', 'test_update_description1')
返回值
操作成功:
{
}
操作失败:
抛出异常,异常列表参考:https://cloud.baidu.com/doc/VPC/s/sjwvyuhe7
代码示例
具体代码示例参考: example_update_subnet.py
注意: 只允许更新子网的name和description字段,cidr、zone_name和type字段不能更新
删除子网
函数声明
@required(subnet_id=(bytes, str))
def delete_subnet(self, subnet_id, client_token=None, config=None):
参数含义
请参考OpenApi文档: https://cloud.baidu.com/doc/VPC/s/6jwvyu9b8
使用示例
self.the_client.delete_subnet(subnet_id)
返回值
操作成功:
{
}
操作失败:
抛出异常,异常列表参考:https://cloud.baidu.com/doc/VPC/s/sjwvyuhe7
代码示例
具体代码示例参考: example_delete_subnet.py
创建预留网段
函数声明
@required(subnet_id=(bytes, str),
ip_cidr=(bytes, str),
ip_version=int,
description=(bytes, str))
def 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
返回值
操作成功:
{
"ipReserveId":"ipr-te2pa9cv4ikk"
}
操作失败:
返回错误,错误代码列表参考:https://cloud.baidu.com/doc/VPC/s/sjwvyuhe7
代码示例
具体代码示例参考: example_create_subnet_ipreserve.py
查询预留网段列表
函数声明
@required(subnet_id=(bytes, str),
marker=(bytes, str),
max_keys=int)
def list_subnet_ipreserve(self, subnet_id=None, marker=None, max_keys=None, config=None):
参数含义
请参考OpenAPI文档:https://cloud.baidu.com/doc/VPC/s/Flgyjya1o
返回值
操作成功:
{
"marker": "",
"nextMarker": "ipr-7xp6wvzqpmhd",
"maxKeys": 1,
"isTruncated": true,
"ipReserves":[
{
"ipReserveId":"ipr-tqsbpf5hcvbp",
"subnetId":"sbn-a4cikyt7756r",
"ipCidr":"192.168.0.200/30",
"ipVersion":"4",
"description":"test",
"createdTime":"2023-04-27T03:44:38Z",
"updatedTime":"2023-04-27T03:45:38Z"
}
]
}
操作失败: 返回错误,错误代码列表参考:https://cloud.baidu.com/doc/VPC/s/sjwvyuhe7
代码示例
具体代码示例参考: example_list_subnet_ipreserve.py
删除预留网段
函数声明
@required(ip_reserve_id=(bytes, str))
def delete_subnet_ipreserve(self, ip_reserve_id, lient_token=None, config=None):
参数含义
请参考OpenAPI文档:https://cloud.baidu.com/doc/VPC/s/6lgyjz8jn
返回值
操作成功:
{}
操作失败:
返回错误,错误代码列表参考:https://cloud.baidu.com/doc/VPC/s/sjwvyuhe7
代码示例
具体代码示例参考: example_delete_subnet_ipreserve.py