对等连接
对等连接 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)
参数说明如下:
参数名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
bandwidth_in_mbps | int | 是 | 对等连接最大带宽,单位mbps |
local_vpc_id | bytes或str | 是 | 本端VPC ID |
peer_vpc_id | bytes或str | 是 | 对端VPC ID |
peer_region | bytes或str | 是 | 对端地域 |
description | bytes或str | 否 | 描述 |
local_if_name | bytes或str | 否 | 本端接口名称 |
peer_account_id | bytes或str | 否 | 对端账号ID |
peer_if_name | bytes或str | 否 | 对端接口名称 |
client_token | bytes或str | 否 | 幂等性Token,是一个长度不超过64位的ASCII字符串,详见幂等性Token |
billing | 自定义Billing类型 | 否 | 计费方式,默认为后付费,支持按月预付费购买,详见计费说明 |
config | BceClientConfiguration | 否 | 默认为初始化peerconn_client时的config |
其中自定义Billing类型定义见peerconn_model.py 地域参数如下: | 名称 |取值 | | --- | --- | | 北京 | bj| | 广州 | gz| | 苏州 |su | | 上海 |fsh | | 香港|hkg | | 保定|bd | | 度小满金融专区|hb-fsg | | 武汉|fwh | | 新加坡|sin | | 度小满金融专区二|bjfsg |
查询对等连接列表
可以使用list_peerconns函数查询对等连接列表,函数定义如下:
@required(vpc_id=(bytes, str))
def list_peerconns(self, vpc_id, marker=None,
max_keys=None, config=None)
参数说明如下: | 参数名称 |类型 |是否必需 |描述 | | --- | --- | --- | --- | | vpc_id | bytes或str |是 |NAT网关所属VPC的ID | |marker | bytes或str | 否 |批量获取列表的查询的起始位置 | |maxKeys | int | 否 |每页包含的最大数量,最大数量不超过1000。缺省值为1000| |config | BceClientConfiguration | 否 |默认为初始化peerconn_client时的config |
查询对等连接详情
可以使用get_nat函数查询NAT详情,函数定义如下:
@required(peer_conn_id=(bytes, str))
def get_peerconn(self, peer_conn_id, config=None)
参数说明如下: | 参数名称 |类型 |是否必需 |描述 | | --- | --- | --- | --- | | peer_conn_id | bytes或str | 是 |对等连接的ID| |config | BceClientConfiguration | 否 |默认为初始化peerconn_client时的config |
更新对等连接本端接口名称和备注
可以使用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)
参数说明如下: | 参数名称 |类型 |是否必需 |描述 | | --- | --- | --- | --- | | peer_conn_id | bytes或str | 是 |对等连接的ID| |local_if_id | bytes或str | 是 |本端接口ID | |description | bytes或str | 否 |描述| |local_if_name | bytes或str | 否 |本端接口名称| |client_token | bytes或str | 否 |幂等性Token,是一个长度不超过64位的ASCII字符串,详见幂等性Token | |config | BceClientConfiguration | 否 |默认为初始化peerconn_client时的config |
处理对等连接申请
- 发起端发出的连接请求超时时间为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)
参数说明如下: | 参数名称 |类型 |是否必需 |描述 | | --- | --- | --- | --- | | peer_conn_id | bytes或str | 是 |对等连接的ID| |action | bytes或str | 是 |本接口中拒绝参数取值reject接受参数取值accept | |client_token | bytes或str | 否 |幂等性Token,是一个长度不超过64位的ASCII字符串,详见幂等性Token | |config | BceClientConfiguration | 否 |默认为初始化peerconn_client时的config |
释放对等连接
可以使用delete_peerconn函数释放对等连接,函数定义如下:
@required(peer_conn_id=(bytes, str))
def delete_peerconn(self, peer_conn_id, client_token=None,
config=None)
参数说明如下: | 参数名称 |类型 |是否必需 |描述 | | --- | --- | --- | --- | | peer_conn_id | bytes或str | 是 |对等连接的ID| |client_token | bytes或str | 否 |幂等性Token,是一个长度不超过64位的ASCII字符串,详见幂等性Token | |config | BceClientConfiguration | 否 |默认为初始化peerconn_client时的config |
对等连接带宽升降级
可以使用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)
参数说明如下: | 参数名称 |类型 |是否必需 |描述 | | --- | --- | --- | --- | | peer_conn_id | bytes或str | 是 |对等连接的ID| | new_bandwidth_in_mbps | int | 是 |对等连接升级带宽| |client_token | bytes或str | 否 |幂等性Token,是一个长度不超过64位的ASCII字符串,详见幂等性Token | |config | BceClientConfiguration | 否 |默认为初始化peerconn_client时的config |
对等连接续费
- 后付费的对等连接不能续费。
- 跨账号续费操作只能由发起端来操作。
可以使用purchase_reserved_peerconn函数释放对等连接,函数定义如下:
@required(peer_conn_id=(bytes, str))
def purchase_reserved_peerconn(self, peer_conn_id, client_token=None,
billing=None, config=None)
参数说明如下: | 参数名称 |类型 |是否必需 |描述 | | --- | --- | --- | --- | | peer_conn_id | bytes或str | 是 |对等连接的ID| |billing | 自定义Billing类型 | 否 |计费方式,默认为1个月 | |client_token | bytes或str | 否 |幂等性Token,是一个长度不超过64位的ASCII字符串,详见幂等性Token | |config | BceClientConfiguration | 否 |默认为初始化peerconn_client时的config |
开启对等连接同步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)
参数说明如下: | 参数名称 |类型 |是否必需 |描述 | | --- | --- | --- | --- | | peer_conn_id | bytes或str | 是 |对等连接的ID| |role | bytes或str | 是 |发起端"initiator" 接收端"acceptor" | |client_token | bytes或str | 否 |幂等性Token,是一个长度不超过64位的ASCII字符串,详见幂等性Token | |config | BceClientConfiguration | 否 |默认为初始化peerconn_client时的config |
关闭对等连接同步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)
参数说明如下: | 参数名称 |类型 |是否必需 |描述 | | --- | --- | --- | --- | | peer_conn_id | bytes或str | 是 |对等连接的ID| |role | bytes或str | 是 |发起端"initiator" 接收端"acceptor" | |client_token | bytes或str | 否 |幂等性Token,是一个长度不超过64位的ASCII字符串,详见幂等性Token | |config | BceClientConfiguration | 否 |默认为初始化peerconn_client时的config |