对等连接
对等连接 SDK文档
获取Endpoint
在确认您使用SDK配置Endpoint时,可先阅读开发人员指南中关于 VPC服务域名的部分,理解Endpoint相关的概念。 百度智能云目前开放了多区域支持,请参考区域选择说明中网络产品VPC的部分,对等连接服务是VPC服务的一部分,使用VPC服务的域名。
获取密钥
要使用百度云产品,您需要拥有一个百度云账号和一个有效的 AK(Access Key ID)、SK(Secret Access Key)用来进行签名认证。可以通过如下步骤获得并了解您的AK/SK信息: 1. 注册百度云账号 2. 创建AK/SK
peerconn_client
peerconn_client将对等连接服务的API进行封装,简化了开发者与对等连接服务的交互,用户可调用peerconn_client中的方法对对等连接进行配置,peerconn_client中方法返回参数与API方法一致。
新建peerconn_client
新建peerconn_client时,需要先使用Endpoint、AK、SK对BceClientConfiguration类型config实例进行配置,再使用config实例对peerconn_client进行配置,具体配置方法如下:
HOST = b''
AK = b''
SK = b''
config = BceClientConfiguration(
credentials=BceCredentials(AK, SK), endpoint=HOST)
self.client = peerconn_client.PeerConnClient(config)
创建对等连接
创建对等连接时,需注意:
- 对于同账号的对等连接,系统会触发对端自动接受。
- 跨账号的对等连接,必须接受端接受后对等连接才可用。
- 对于本端区域和对端区域相同的对等连接,billing参数只支持后付费(需要传billing参数,但是计费账单为0)。
- 任意两个VPC之间最多只能存在一条对等连接。
- 发起端和接收端的VPC不能是同一个。
- 如果本端vpc和对端vpc均为中继vpc,则不可以建立对等连接。
可以使用create_peerconn函数在指定VPC之间创建对等连接,函数定义如下:
@required(bandwidth_in_mbps=int,
local_vpc_id=(bytes, str),
peer_vpc_id=(bytes, str),
peer_region=(bytes, str))
def create_peerconn(self, bandwidth_in_mbps, local_vpc_id,
peer_vpc_id, peer_region, description=None,
local_if_name=None, peer_account_id=None,
peer_if_name=None, client_token=None,
billing=None, config=None)
参数含义
请参考OpenAPI文档: https://cloud.baidu.com/doc/VPC/s/bjwvyue8y
返回值
操作成功:
{
"peerConnId": "peerconn-9td54fmx143e"
}
操作失败:
抛出异常,异常列表参考:对等连接异常列表
代码示例 具体代码示例参考:example_create_peerconn.py
查询对等连接列表
可以使用list_peerconns函数查询对等连接列表,函数定义如下:
@required(vpc_id=(bytes, str))
def list_peerconns(self, vpc_id, marker=None,
max_keys=None, config=None)
参数含义
请参考OpenAPI文档:https://cloud.baidu.com/doc/VPC/s/Fjwvyuemr
返回值
操作成功:
{
"peerConns":[
{
"peerConnId":"peerconn-9td54fmx143e",
"role":"initiator",
"status":"active",
"bandwithInMbp":500,
"description":"peer_diff_account",
"localIfId":"qpif-ken2yc9j8x56",
"localIfName":"int-SpLVk25R",
"localVpcId":"vpc-13vuxu016dew",
"localRegion":"bj",
"peerVpcId":"vpc-jcvmhw9h1a35",
"peerRegion":"bj",
"peerAccountId":"75c14a239bb24b9e88b695e8e9e47952",
"dnsStatus":"close",
"paymentTiming":"Postpaid",
"createdTime" :"2018-08-07 19:46:55",
"expiredTime":expiredTime
}
]
"marker":"peerconn-9td54fmx143e",
"isTruncated": true,
"nextMarker": "peerconn-srbvvxmjn7ux",
"maxKeys": 1
}
操作失败:
抛出异常,异常列表参考:对等连接异常列表
代码示例
具体代码示例参考:example_list_peerconn.py
查询对等连接详情
可以使用get_nat函数查询NAT详情,函数定义如下:
@required(peer_conn_id=(bytes, str))
def get_peerconn(self, peer_conn_id, config=None)
参数含义
请参考OpenAPI文档:https://cloud.baidu.com/doc/VPC/s/Sjwvyudwm
返回值
操作成功:
{
"peerConnId":"peerconn-cbp4xrtzk3fb",
"role":"initiator",
"status":"active",
"bandwithInMbp":1000,
"description":"mypeerconn",
"localIfId":"qpif-qz9a61ujsizt",
"localIfName":"dsds",
"localVpcId":"20fada00-f66e-40de-bed4-954af13dc0b2",
"localRegion":"bj",
"peerVpcId":"1aa1427d-92cf-45d0-bc31-ab4d9fe71425",
"peerRegion":"bj",
"peerAccountId":"75c14a239bb24b9e88b695e8e9e47952",
"createdTime": "2018-08-03 20:38:43"
"expiredTime":null,
"dnsStatus":"close",
"paymentTiming":"Postpaid",
"tags":[
{
"tagKey": "tagKey",
"tagValue": "tagValue"
}
]
}
操作失败:
抛出异常,异常列表参考:对等连接异常列表
代码示例
具体代码示例参考:example_get_peerconn.py
更新对等连接本端接口名称和备注
可以使用update_peerconn函数更新对等连接,函数定义如下:
@required(peer_conn_id=(bytes, str), local_if_id=(bytes, str))
def update_peerconn(self, peer_conn_id, local_if_id, description=None,
local_if_name=None, client_token=None, config=None)
参数含义
请参考OpenAPI文档:https://cloud.baidu.com/doc/VPC/s/1jwvyufpd
返回值
操作成功:
无特殊返回参数
操作失败:
抛出异常,异常列表参考:对等连接异常列表
代码示例
具体代码示例参考:example_update_peerconn.py
处理对等连接申请
- 发起端发出的连接请求超时时间为7天,超时后发起端对等连接的状态为协商失败。
- 接收端拒绝后,发起端对等连接状态为协商失败。
可以使用handle_peerconn函数更新对等连接,函数定义如下:
@required(peer_conn_id=(bytes, str), action=(bytes, str))
def handle_peerconn(self, peer_conn_id, action, client_token=None,
config=None)
参数含义
请参考OpenAPI文档:https://cloud.baidu.com/doc/VPC/s/wjwvyud6p
返回值
操作成功:
无特殊返回参数
操作失败:
抛出异常,异常列表参考:对等连接异常列表
代码示例
具体代码示例参考:example_handle_peerconn.py
释放对等连接
可以使用delete_peerconn函数释放对等连接,函数定义如下:
@required(peer_conn_id=(bytes, str))
def delete_peerconn(self, peer_conn_id, client_token=None,
config=None)
参数含义
请参考OpenAPI文档:https://cloud.baidu.com/doc/VPC/s/0jwvyucfy
返回值
操作成功:
无特殊返回参数
操作失败:
抛出异常,异常列表参考:对等连接异常列表
代码示例
具体代码示例参考:example_delete_peerconn.py
对等连接带宽升降级
可以使用resize_peerconn函数释放对等连接,函数定义如下:
@required(peer_conn_id=(bytes, str), new_bandwidth_in_mbps=int)
def resize_peerconn(self, peer_conn_id, new_bandwidth_in_mbps,
client_token=None, config=None)
参数含义
请参考OpenAPI文档:https://cloud.baidu.com/doc/VPC/s/Wjwvyufcb
返回值
操作成功:
无特殊返回参数
操作失败:
抛出异常,异常列表参考:对等连接异常列表
代码示例
具体代码示例参考:example_resize_peerconn.py
对等连接续费
- 后付费的对等连接不能续费。
- 跨账号续费操作只能由发起端来操作。
可以使用purchase_reserved_peerconn函数释放对等连接,函数定义如下:
@required(peer_conn_id=(bytes, str))
def purchase_reserved_peerconn(self, peer_conn_id, client_token=None,
billing=None, config=None)
参数含义
请参考OpenAPI文档:https://cloud.baidu.com/doc/VPC/s/9jwvyudie
返回值
操作成功:
无特殊返回参数
操作失败:
抛出异常,异常列表参考:对等连接异常列表
代码示例
具体代码示例参考:example_purchase_reserved_peerconn.py
开启对等连接同步DNS
- 对等连接的状态为可用的时候才能开启DNS。
- 对等连接的DNS状态为同步中或同步关闭中不可开启同步DNS。
可以使用open_peerconn_dns_sync函数释放对等连接,函数定义如下:
@required(peer_conn_id=(bytes, str), role=(bytes, str))
def open_peerconn_dns_sync(self, peer_conn_id, role,
client_token=None, config=None)
参数含义
请参考OpenAPI文档:https://cloud.baidu.com/doc/VPC/s/Qjwvyuf0h
返回值
操作成功:
无特殊返回参数
操作失败:
抛出异常,异常列表参考:对等连接异常列表
代码示例
具体代码示例参考:example_open_peerconn_sync_dns.py
关闭对等连接同步DNS
- 对等连接的状态为可用的时候才能关闭DNS。
- 对等连接的DNS状态为同步中或同步关闭中不可关闭同步DNS。
可以使用close_peerconn_dns_sync函数释放对等连接,函数定义如下:
@required(peer_conn_id=(bytes, str), role=(bytes, str))
def close_peerconn_dns_sync(self, peer_conn_id, role,
client_token=None, config=None)
参数含义
请参考OpenAPI文档:https://cloud.baidu.com/doc/VPC/s/ojwvyucs2
返回值
操作成功:
无特殊返回参数
操作失败:
抛出异常,异常列表参考:对等连接异常列表
代码示例
具体代码示例参考:example_close_peerconn_dns_sync.py