NAT
获取Endpoint
在确认您使用SDK配置Endpoint时,可先阅读开发人员指南中关于 VPC服务域名的部分,理解Endpoint相关的概念。 百度智能云目前开放了多区域支持,请参考区域选择说明中网络产品VPC的部分,NAT服务是VPC服务的一部分,使用VPC服务域名。
获取密钥
要使用百度云产品,您需要拥有一个百度云账号和一个有效的 AK(Access Key ID)、SK(Secret Access Key)用来进行签名认证。可以通过如下步骤获得并了解您的AK/SK信息: 1. 注册百度云账号 2. 创建AK/SK
nat_client
nat_client是NAT服务的Python客户端,nat_client将NAT服务的API进行封装,简化了开发者与NAT服务的交互,用户可调用nat_client中的方法对NAT网关进行配置。
新建nat_client
新建nat_client时,需要先使用Endpoint、AK、SK对BceClientConfiguration类型config实例进行配置,再使用config实例对nat_client进行配置,具体配置方法如下:
1HOST = b''
2AK = b''
3SK = b''
4config = BceClientConfiguration(
5 credentials=BceCredentials(AK, SK), endpoint=HOST)
6self.client = nat_client.NatClient(config)
创建NAT网关
使用以下代码可以创建NAT网关
函数声明
1def create_nat(self, name, vpc_id, spec=None, billing=None, eips=None,
2 dnat_eips=None, client_token=None, config=None, cu_num=None):
参数含义
请参考OpenAPI文档:https://cloud.baidu.com/doc/VPC/s/Xjwvyul3d
返回值
操作成功:
1{
2 "natId": "nat-b58rnkn1g98h"
3}
操作失败:
抛出异常,异常列表参考:NAT网关异常列表
代码示例
具体代码示例参考:example_create_nat.py
查询NAT网关列表
使用以下代码可以查询NAT网关列表
函数声明
1 def list_nats(self, vpc_id=None, nat_id=None, name=None,
2 ip=None, marker=None, max_keys=None, config=None):
参数含义
请参考OpenAPI文档:https://cloud.baidu.com/doc/VPC/s/Tjwvyukbd
返回值
操作成功:
1{
2 "nats":[
3 {
4 "id":"nat-bir8biqwr45e",
5 "name":"mynat",
6 "vpcId":"vpc-13vuxu016dew",
7 "spec":"small",
8 "status":"unconfigured",
9 "eips":[
10
11 ],
12 "paymentTiming":"Prepaid",
13 "expiredTime":"2018-08-13T08:10:59Z",
14 "createTime": "2021-04-25 17:22:34"
15 },
16 {
17 "id":"nat-b9q8n98mdxwc",
18 "name":"mynat",
19 "vpcId":"vpc-13vuxu016dew",
20 "spec":"small",
21 "status":"unconfigured",
22 "eips":[
23
24 ],
25 "paymentTiming":"Prepaid",
26 "expiredTime":"2018-07-27T13:18:00Z",
27 "createTime": "2021-04-25 17:22:34"
28 }
29 ]
30}
31"marker":"nat-b58rnkn1g98h",
32"isTruncated": true,
33"nextMarker": "nat-bi72s924x5xu",
34"maxKeys": 2
35}
操作失败:
抛出异常,异常列表参考:NAT网关异常列表
代码示例
具体代码示例参考:example_list_nat.py
查询NAT网关详情
使用以下代码可以查询NAT网关详情
函数声明
1 def get_nat(self, nat_id, config=None):
参数含义
请参考OpenAPI文档:https://cloud.baidu.com/doc/VPC/s/Mjwvyuj7m
返回值
操作成功:
1{
2 "id":"nat-bir8biqwr45e",
3 "name":"mynat",
4 "vpcId":"vpc-13vuxu016dew",
5 "spec":"small",
6 "status":"unconfigured",
7 "eips":[
8 ],
9 "dnatEips":[
10 ],
11 "paymentTiming":"Prepaid",
12 "expiredTime":"2018-08-13T08:10:59Z",
13 "createTime": "2021-04-25 17:22:34",
14 "tags":[
15 {
16 "tagKey": "tagKey",
17 "tagValue": "tagValue"
18 }
19 ]
20}
操作失败:
抛出异常,异常列表参考:NAT网关异常列表
代码示例
具体代码示例参考:example_get_nat.py
更新NAT网关名称
使用以下代码可以更新NAT网关名称
函数声明
1 def update_nat(self, nat_id, name, client_token=None, config=None):
参数含义
请参考OpenAPI文档:https://cloud.baidu.com/doc/VPC/s/ojwvyuisy
返回值
操作成功:
无特殊返回参数
操作失败:
抛出异常,异常列表参考:NAT网关异常列表
代码示例
具体代码示例参考:example_update_nat.py
释放NAT网关
使用以下代码可以释放NAT网关
函数声明
1 def delete_nat(self, nat_id, client_token=None, config=None):
参数含义
请参考OpenAPI文档:https://cloud.baidu.com/doc/VPC/s/yjwvyujjq
返回值
操作成功:
无特殊返回参数。
操作失败:
抛出异常,异常列表参考:NAT网关异常列表
代码示例
具体代码示例参考:example_delete_nat.py
NAT网关续费
使用以下代码可以续费NAT网关
函数声明
1 def purchase_reserved_nat(self, nat_id, billing, client_token=None,
2 config=None):
参数含义
请参考OpenAPI文档:https://cloud.baidu.com/doc/VPC/s/Vjwvyukqv
返回值
操作成功:
无特殊返回参数
操作失败:
抛出异常,异常列表参考:NAT网关异常列表
代码示例
具体代码示例参考:example_purchase_reserved_nat.py
NAT网关绑定SNAT EIP
使用以下代码可以绑定SNAT EIP
函数声明
1 def bind_eip(self, nat_id, eips, client_token=None, config=None):
参数含义
请参考OpenAPI文档:https://cloud.baidu.com/doc/VPC/s/Ljwvyujy8
返回值
操作成功:
无特殊返回参数
操作失败:
抛出异常,异常列表参考:NAT网关异常列表
代码示例
具体代码示例参考:example_bind_eip.py
NAT网关解绑SNAT EIP
使用以下代码可以解绑SNAT EIP
函数声明
1 def unbind_eip(self, nat_id, eips, client_token=None, config=None):
参数含义
请参考OpenAPI文档:https://cloud.baidu.com/doc/VPC/s/qjwvyuigl
返回值
操作成功:
无特殊返回参数
操作失败:
抛出异常,异常列表参考:NAT网关异常列表
代码示例
具体代码示例参考:example_unbind_eip.py
NAT网关绑定DNAT EIP
使用以下代码可以绑定DNAT EIP
函数声明
1 def bind_dnat_eip(self, nat_id, eips, client_token=None, config=None):
参数含义
请参考OpenAPI文档:https://cloud.baidu.com/doc/VPC/s/iki4chiu4
返回值
操作成功:
无特殊返回参数
操作失败:
抛出异常,异常列表参考:NAT网关异常列表
代码示例
具体代码示例参考:example_bind_dnat_eip.py
NAT网关解绑DNAT EIP
使用以下代码可以解绑DNAT EIP
函数声明
1 def unbind_dnat_eip(self, nat_id, eips, client_token=None, config=None):
参数含义
请参考OpenAPI文档:https://cloud.baidu.com/doc/VPC/s/Uki4cj64l
返回值
操作成功:
无特殊返回参数
操作失败:
抛出异常,异常列表参考:NAT网关异常列表
代码示例
具体代码示例参考:example_unbind_dnat_eip.py
创建SNAT规则
使用以下代码可以创建SNAT规则
函数声明
1 def create_snat_rule(self, nat_id, rule_name, source_cidr, public_ip_address, client_token=None, config=None):
参数含义
请参考OpenAPI文档:https://cloud.baidu.com/doc/VPC/s/Iki4clqjv
返回值
操作成功:
1{
2 "ruleId": "rule-zrsaybxm7nrn"
3}
操作失败:
抛出异常,异常列表参考:NAT网关异常列表
代码示例
具体代码示例参考:example_create_snat_rule.py
批量创建SNAT规则
使用以下代码可以批量创建SNAT规则
函数声明
1 def batch_create_snat_rule(self, nat_id, snat_rules, client_token=None, config=None):
参数含义
请参考OpenAPI文档:https://cloud.baidu.com/doc/VPC/s/oktlo8qfr
返回值
操作成功:
1{
2 "snatRuleIds": [
3 "rule-zrsaybxm7nrn",
4 "rule-f5kid5g50nua"
5 ]
6}
操作失败:
抛出异常,异常列表参考:NAT网关异常列表
代码示例
具体代码示例参考:example_batch_create_snat_rule.py
删除SNAT规则
使用以下代码可以删除SNAT规则
函数声明
1 def delete_snat_rule(self, nat_id, snat_rule_id, client_token=None, config=None):
参数含义
请参考OpenAPI文档:https://cloud.baidu.com/doc/VPC/s/vki4cot86
返回值
操作成功:
无特殊返回参数
操作失败:
抛出异常,异常列表参考:NAT网关异常列表
代码示例
具体代码示例参考:example_delete_snat_rule.py
更新SNAT规则
使用以下代码可以更新SNAT规则
函数声明
1def update_snat_rule(self, nat_id, snat_rule_id, rule_name=None, source_cidr=None,
2 public_ip_address=None, client_token=None, config=None):
参数含义
请参考OpenAPI文档:https://cloud.baidu.com/doc/VPC/s/Vki4cn14y
返回值
操作成功:
无特殊返回参数
操作失败:
抛出异常,异常列表参考:NAT网关异常列表
代码示例
具体代码示例参考:example_update_snat_rule.py
查询SNAT规则
使用以下代码可以查询SNAT规则
函数声明
1 def list_snat_rule(self, nat_id, marker=None, maxKeys=None, client_token=None, config=None):
参数含义
请参考OpenAPI文档:https://cloud.baidu.com/doc/VPC/s/Pki4cq2nu
返回值
操作成功:
1{
2 "isTruncated": true,
3 "nextMarker": "rule-vza86i2k6dqu",
4 "maxKeys": 2,
5 "rules": [
6 {
7 "ruleId": "rule-k1jenum3v9s6",
8 "ruleName": "s3",
9 "publicIpsAddress": [
10 "100.88.10.185"
11 ],
12 "sourceCIDR": "1.1.1.1/32",
13 "status": "configuring"
14 },
15 {
16 "ruleId": "rule-kdgqkwpske2q",
17 "ruleName": "s2",
18 "publicIpsAddress": [
19 "100.88.10.185"
20 ],
21 "sourceCIDR": "192.168.1.0/24",
22 "status": "configuring"
23 }
24 ]
25}
操作失败:
抛出异常,异常列表参考:NAT网关异常列表
代码示例
具体代码示例参考:example_list_snat_rule.py
创建DNAT规则
使用以下代码可以创建DNAT规则
函数声明
1 def create_dnat_rule(self, nat_id, public_ip_address, private_ip_address, protocol, rule_name=None,
2 public_port=None, private_port=None, client_token=None, config=None):
参数含义
请参考OpenAPI文档:https://cloud.baidu.com/doc/VPC/s/fki4c1gb3
返回值
操作成功:
1{
2 "ruleId": "rule-zrsaybxm7nrn"
3}
操作失败:
抛出异常,异常列表参考:NAT网关异常列表
代码示例
具体代码示例参考:example_create_dnat_rule.py
批量创建DNAT规则
使用以下代码可以批量创建DNAT规则
函数声明
1 def batch_create_dnat_rule(self, nat_id, dnat_rules, client_token=None, config=None):
参数含义
请参考OpenAPI文档:https://cloud.baidu.com/doc/VPC/s/Aktl8mzvd
返回值
操作成功:
1{
2 "ruleIds": [
3 "rule-zrsaybxm7nrn",
4 "rule-f5kid5g50nua"
5 ]
6}
操作失败:
抛出异常,异常列表参考:NAT网关异常列表
代码示例
具体代码示例参考:example_batch_create_dnat_rule.py
删除DNAT规则
使用以下代码可以删除DNAT规则
函数声明
1 def delete_dnat_rule(self, nat_id, dnat_rule_id, client_token=None, config=None):
参数含义
请参考OpenAPI文档:https://cloud.baidu.com/doc/VPC/s/zki4cbkkf
返回值
操作成功:
无特殊返回参数
操作失败:
抛出异常,异常列表参考:NAT网关异常列表
代码示例
具体代码示例参考:example_delete_dnat_rule.py
更新DNAT规则
使用以下代码可以更新DNAT规则
函数声明
1 def update_dnat_rule(self, nat_id, dnat_rule_id,
2 public_ip_address=None, private_ip_address=None,
3 rule_name=None, protocol=None, public_port=None,
4 private_port=None, client_token=None, config=None):
参数含义
请参考OpenAPI文档:https://cloud.baidu.com/doc/VPC/s/Aki4c9crm
返回值
操作成功:
无特殊返回参数
操作失败:
抛出异常,异常列表参考:NAT网关异常列表
代码示例
具体代码示例参考:example_update_dnat_rule.py
查询DNAT规则
使用以下代码可以查询DNAT规则
函数声明
1 def list_dnat_rule(self, nat_id, marker=None, maxKeys=None, client_token=None, config=None):
参数含义
请参考OpenAPI文档:https://cloud.baidu.com/doc/VPC/s/Hki4cf6bf
返回值
操作成功:
1{
2 "isTruncated": true,
3 "nextMarker": "rule-pej10dar6pxd",
4 "maxKeys": 2,
5 "rules": [
6 {
7 "ruleId": "rule-29d9jpprcm75",
8 "ruleName": "sg",
9 "publicIpAddress": "100.88.6.197",
10 "privateIpAddress": "192.168.3.3",
11 "publicPort": 333,
12 "privatePort": 333,
13 "status": "active",
14 "protocol": "TCP"
15 },
16 {
17 "ruleId": "rule-72z6p8ni6rce",
18 "ruleName": "sd",
19 "publicIpAddress": "100.88.6.197",
20 "privateIpAddress": "192.168.2.2",
21 "publicPort": 222,
22 "privatePort": 222,
23 "status": "active",
24 "protocol": "UDP"
25 }
26 ]
27}
操作失败:
抛出异常,异常列表参考:NAT网关异常列表
代码示例
具体代码示例参考:example_list_dnat_rule.py