NAT
获取Endpoint
在确认您使用SDK配置Endpoint时,可先阅读开发人员指南中关于 VPC服务域名的部分,理解Endpoint相关的概念。 百度智能云目前开放了多区域支持,请参考区域选择说明中网络产品VPC的部分,NAT服务是VPC服务的一部分,使用VPC服务域名。
获取AK/SK
要使用百度云产品,您需要拥有一个百度云账号和一个有效的 AK(Access Key ID)、SK(Secret Access Key)用来进行签名认证。可以通过如下步骤获得并了解您的AK/SK信息: 1. 注册百度云账号 2. 创建AK/SK
新建NatClient
新建NatClient时,需要先使用Endpoint、AK、SK对NatClientConfiguration类型config实例进行配置,再使用config实例对NatClient进行配置,配置示例如下:
1static final String HOST = "";
2static final String AK = "";
3static final String SK = "";
4NatClientConfiguration config = new NatClientConfiguration();
5config.setCredentials(new DefaultBceCredentials(AK, SK));
6config.setEndpoint(HOST);
7NatClient natClient = new NatClient(config);
创建NAT网关
函数声明
1public CreateNatResponse createNat(CreateNatRequest request) {
2 ......
3}
参数含义
请参考OpenAPI文档:创建NAT请求参数
返回值
- 操作成功
1{
2 "metadata":具体信息参考附录metadata部分,
3 "natId": "nat-b58rnkn1g98h"
4}
- 操作失败
操作失败返回异常列表参考:NAT异常列表
示例代码
具体代码示例参考:ExampleCreateNat.java
查询NAT网关列表
函数声明
1public ListNatResponse listNat(ListNatRequest request) {
2 ......
3}
参数含义
请参考OpenAPI文档:查询NAT网关列表请求参数
返回值
- 操作成功
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 "marker":"nat-b58rnkn1g98h",
31 "isTruncated": true,
32 "nextMarker": "nat-bi72s924x5xu",
33 "maxKeys": 2,
34 "metadata":具体信息参考附录metadata部分
35}
- 操作失败
操作失败返回异常列表参考:NAT异常列表
示例代码
具体代码示例参考:ExampleListNat.java
查询NAT网关详情
函数声明
1public GetNatResponse getNat(String natId) {
2 ......
3}
参数含义
请参考OpenAPI文档:查询NAT网关详情请求参数
返回值
- 操作成功
1{
2 "metadata":具体信息参考附录metadata部分,
3 "id":"nat-bir8biqwr45e",
4 "name":"mynat",
5 "vpcId":"vpc-13vuxu016dew",
6 "spec":"small",
7 "status":"unconfigured",
8 "eips":[
9 ],
10 "dnatEips":[
11 ],
12 "paymentTiming":"Prepaid",
13 "expiredTime":"2018-08-13T08:10:59Z",
14 "createTime": "2021-04-25 17:22:34",
15 "tags":[
16 {
17 "tagKey": "tagKey",
18 "tagValue": "tagValue"
19 }
20 ]
21}
- 操作失败
操作失败返回异常列表参考:NAT异常列表
示例代码
具体代码示例参考:ExampleGetNat.java
更新NAT网关名称
函数声明
1public void modifyNat(ModifyNatRequest request) {
2 ......
3}
参数含义
请参考OpenAPI文档:更新NAT网关名称请求参数
返回值
- 操作成功
无返回值
- 操作失败
操作失败返回异常列表参考:NAT异常列表
示例代码
具体代码示例参考:ExampleUpdateNat.java
NAT网关绑定SNAT EIP
函数声明
1public void bindEip(BindEipRequest request) {
2 ......
3}
参数含义
请参考OpenAPI文档:NAT网关绑定SNAT EIP请求参数
返回值
- 操作成功
无返回值
- 操作失败
操作失败返回异常列表参考:NAT异常列表
示例代码
具体代码示例参考:ExampleBindSnatEip.java
NAT网关解绑SNAT EIP
函数声明
1public void unbindEip(BindEipRequest request) {
2 ......
3}
参数含义
请参考OpenAPI文档:NAT网关解绑SNAT EIP请求参数
返回值
- 操作成功
无返回值
- 操作失败
操作失败返回异常列表参考:NAT异常列表
示例代码
具体代码示例参考:ExampleUnbindSnatEip.java
释放NAT网关
函数声明
1public void releaseNat(ReleaseNatRequest request) {
2 ......
3}
参数含义
请参考OpenAPI文档:释放NAT网关请求参数
返回值
- 操作成功
无返回值
- 操作失败
操作失败返回异常列表参考:NAT异常列表
示例代码
具体代码示例参考:ExampleDeleteNat.java
NAT网关续费
函数声明
1public void purchaseReservedNat(PurchaseReservedNatRequest request) {
2 ......
3}
参数含义
请参考OpenAPI文档:NAT网关续费请求参数
返回值
- 操作成功
无返回值
- 操作失败
操作失败返回异常列表参考:NAT异常列表
示例代码
具体代码示例参考:ExampleRenewNat.java
NAT网关绑定DNAT EIP
函数声明
1public void bindDnatEip(BindDnatEipRequest request) {
2 ......
3}
参数含义
请参考OpenAPI文档:NAT网关绑定DNAT EIP请求参数
返回值
- 操作成功
无返回值
- 操作失败
操作失败返回异常列表参考:NAT异常列表
示例代码
具体代码示例参考:ExampleBindDnatEip.java
NAT网关解绑DNAT EIP
函数声明
1public void unbindDnatEip(BindDnatEipRequest request) {
2 ......
3}
参数含义
请参考OpenAPI文档:NAT网关解绑DNAT EIP请求参数
返回值
- 操作成功
无返回值
- 操作失败
操作失败返回异常列表参考:NAT异常列表
示例代码
具体代码示例参考:ExampleUnbindDnatEip.java
创建SNAT规则
函数声明
1public CreateNatRuleResponse createSnatRule(CreateSnatRuleRequest request) {
2 ......
3}
参数含义
请参考OpenAPI文档:创建SNAT规则请求参数
返回值
- 操作成功
1{
2 "metadata":具体信息参考附录metadata部分,
3 "ruleId": "rule-zrsaybxm7nrn"
4}
- 操作失败
操作失败返回异常列表参考:NAT异常列表
示例代码
具体代码示例参考:ExampleCreateSnatRule.java
批量创建SNAT规则
函数声明
1public CreateBatchDnatRuleIdsResponse batchAddDnatRules(BatchAddDnatRulesRequest request) {
2 ......
3}
参数含义
请参考OpenAPI文档:批量创SNAT规则请求参数
返回值
- 操作成功
1{
2 "metadata":具体信息参考附录metadata部分,
3 "ruleIds": [
4 "rule-zrsaybxm7nrn",
5 "rule-f5kid5g50nua"
6 ]
7}
- 操作失败
操作失败返回异常列表参考:NAT异常列表
示例代码
具体代码示例参考:ExampleBatchCreateSnatRule.java
删除SNAT规则
函数声明
1public void deleteSnatRule(DeleteNatRuleRequest request) {
2 ......
3}
参数含义
请参考OpenAPI文档:删除SNAT规则请求参数
返回值
- 操作成功
无返回值
- 操作失败
操作失败返回异常列表参考:NAT异常列表
示例代码
具体代码示例参考:ExampleDeleteSnatRule.java
更新SNAT规则
函数声明
1public void updateSnatRule(UpdateSnatRuleRequest request) {
2 ......
3}
参数含义
请参考OpenAPI文档:更新SNAT规则请求参数
返回值
- 操作成功
无返回值
- 操作失败
操作失败返回异常列表参考:NAT异常列表
示例代码
具体代码示例参考:ExampleUpdateSnatRule.java
查询SNAT规则
函数声明
1public ListSnatRuleResponse listSnatRule(String natId) {
2 ......
3}
4
5public ListSnatRuleResponse listSnatRule (ListNatRuleRequest request) {
6 ......
7}
参数含义
请参考OpenAPI文档:查询SNAT规则请求参数
返回值
- 操作成功
1{
2 "metadata":具体信息参考附录metadata部分,
3 "isTruncated": true,
4 "nextMarker": "rule-vza86i2k6dqu",
5 "maxKeys": 2,
6 "rules": [
7 {
8 "ruleId": "rule-k1jenum3v9s6",
9 "ruleName": "s3",
10 "publicIpsAddress": [
11 "100.88.10.185"
12 ],
13 "sourceCIDR": "1.1.1.1/32",
14 "status": "configuring"
15 },
16 {
17 "ruleId": "rule-kdgqkwpske2q",
18 "ruleName": "s2",
19 "publicIpsAddress": [
20 "100.88.10.185"
21 ],
22 "sourceCIDR": "192.168.1.0/24",
23 "status": "configuring"
24 }
25 ]
26}
- 操作失败
操作失败返回异常列表参考:NAT异常列表
示例代码
具体代码示例参考:ExampleListSnatRule.java
创建DNAT规则
函数声明
1public CreateNatRuleResponse createDnatRule(CreateDnatRuleRequest request) {
2 ......
3}
参数含义
请参考OpenAPI文档:创建DNAT规则请求参数
返回值
- 操作成功
1{
2 "metadata":具体信息参考附录metadata部分,
3 "ruleId": "rule-zrsaybxm7nrn"
4}
- 操作失败
操作失败返回异常列表参考:NAT异常列表
示例代码
具体代码示例参考:ExampleCreateDnatRule.java
批量创建DNAT规则
函数声明
1public CreateBatchDnatRuleIdsResponse batchAddDnatRules(BatchAddDnatRulesRequest request) {
2 ......
3}
参数含义
请参考OpenAPI文档:批量创建DNAT规则请求参数
返回值
- 操作成功
1{
2 "metadata":具体信息参考附录metadata部分,
3 "ruleIds": [
4 "rule-zrsaybxm7nrn",
5 "rule-f5kid5g50nua"
6 ]
7}
- 操作失败
操作失败返回异常列表参考:NAT异常列表
示例代码
具体代码示例参考:ExampleBatchCreateDnatRule.java
删除DNAT规则
函数声明
1public void deleteDnatRule(DeleteNatRuleRequest request) {
2 ......
3}
参数含义
请参考OpenAPI文档:删除DNAT规则请求参数
返回值
- 操作成功
无返回值
- 操作失败
操作失败返回异常列表参考:NAT异常列表
示例代码
具体代码示例参考:ExampleDeleteDnatRule.java
更新DNAT规则
函数声明
1public void updateDnatRule(UpdateDnatRuleRequest request) {
2 ......
3}
参数含义
请参考OpenAPI文档:更新DNAT规则请求参数
返回值
- 操作成功
无返回值
- 操作失败
操作失败返回异常列表参考:NAT异常列表
示例代码
具体代码示例参考:ExampleUpdateDnatRule.java
查询DNAT规则
函数声明
1public ListDnatRuleResponse listDnatRule(String natId) {
2 ......
3}
4
5public ListDnatRuleResponse listDnatRule (ListNatRuleRequest request) {
6 ......
7}
参数含义
请参考OpenAPI文档:查询DNAT规则请求参数
返回值
- 操作成功
1{
2 "metadata":具体信息参考附录metadata部分,
3 "isTruncated": true,
4 "nextMarker": "rule-pej10dar6pxd",
5 "maxKeys": 2,
6 "rules": [
7 {
8 "ruleId": "rule-29d9jpprcm75",
9 "ruleName": "sg",
10 "publicIpAddress": "100.88.6.197",
11 "privateIpAddress": "192.168.3.3",
12 "publicPort": 333,
13 "privatePort": 333,
14 "status": "active",
15 "protocol": "TCP"
16 },
17 {
18 "ruleId": "rule-72z6p8ni6rce",
19 "ruleName": "sd",
20 "publicIpAddress": "100.88.6.197",
21 "privateIpAddress": "192.168.2.2",
22 "publicPort": 222,
23 "privatePort": 222,
24 "status": "active",
25 "protocol": "UDP"
26 }
27 ]
28
29}
- 操作失败
操作失败返回异常列表参考:NAT异常列表
示例代码
具体代码示例参考:ExampleListDnatRule.java
附录
公共返回信息metadata格式
1 {
2 "bceRequestId":"f5f0821d-45fe-439b-bbf4-fc48b639f84a",
3 "contentLength":28,
4 "contentType":"application/json;charset=UTF-8",
5 "date":1701917695000,
6 "server":"openresty/1.15.8.1"
7 }