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 }
            