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进行配置,配置示例如下:
static final String HOST = "";
static final String AK = "";
static final String SK = "";
NatClientConfiguration config = new NatClientConfiguration();
config.setCredentials(new DefaultBceCredentials(AK, SK));
config.setEndpoint(HOST);
NatClient natClient = new NatClient(config);
创建NAT网关
函数声明
public CreateNatResponse createNat(CreateNatRequest request) {
......
}
参数含义
请参考OpenAPI文档:创建NAT请求参数
返回值
- 操作成功
{
"metadata":具体信息参考附录metadata部分,
"natId": "nat-b58rnkn1g98h"
}
- 操作失败
操作失败返回异常列表参考:NAT异常列表
示例代码
具体代码示例参考:ExampleCreateNat.java
查询NAT网关列表
函数声明
public ListNatResponse listNat(ListNatRequest request) {
......
}
参数含义
请参考OpenAPI文档:查询NAT网关列表请求参数
返回值
- 操作成功
{
"nats":[
{
"id":"nat-bir8biqwr45e",
"name":"mynat",
"vpcId":"vpc-13vuxu016dew",
"spec":"small",
"status":"unconfigured",
"eips":[
],
"paymentTiming":"Prepaid",
"expiredTime":"2018-08-13T08:10:59Z",
"createTime": "2021-04-25 17:22:34"
},
{
"id":"nat-b9q8n98mdxwc",
"name":"mynat",
"vpcId":"vpc-13vuxu016dew",
"spec":"small",
"status":"unconfigured",
"eips":[
],
"paymentTiming":"Prepaid",
"expiredTime":"2018-07-27T13:18:00Z",
"createTime": "2021-04-25 17:22:34"
}
],
"marker":"nat-b58rnkn1g98h",
"isTruncated": true,
"nextMarker": "nat-bi72s924x5xu",
"maxKeys": 2,
"metadata":具体信息参考附录metadata部分
}
- 操作失败
操作失败返回异常列表参考:NAT异常列表
示例代码
具体代码示例参考:ExampleListNat.java
查询NAT网关详情
函数声明
public GetNatResponse getNat(String natId) {
......
}
参数含义
请参考OpenAPI文档:查询NAT网关详情请求参数
返回值
- 操作成功
{
"metadata":具体信息参考附录metadata部分,
"id":"nat-bir8biqwr45e",
"name":"mynat",
"vpcId":"vpc-13vuxu016dew",
"spec":"small",
"status":"unconfigured",
"eips":[
],
"dnatEips":[
],
"paymentTiming":"Prepaid",
"expiredTime":"2018-08-13T08:10:59Z",
"createTime": "2021-04-25 17:22:34",
"tags":[
{
"tagKey": "tagKey",
"tagValue": "tagValue"
}
]
}
- 操作失败
操作失败返回异常列表参考:NAT异常列表
示例代码
具体代码示例参考:ExampleGetNat.java
更新NAT网关名称
函数声明
public void modifyNat(ModifyNatRequest request) {
......
}
参数含义
请参考OpenAPI文档:更新NAT网关名称请求参数
返回值
- 操作成功
无返回值
- 操作失败
操作失败返回异常列表参考:NAT异常列表
示例代码
具体代码示例参考:ExampleUpdateNat.java
NAT网关绑定SNAT EIP
函数声明
public void bindEip(BindEipRequest request) {
......
}
参数含义
请参考OpenAPI文档:NAT网关绑定SNAT EIP请求参数
返回值
- 操作成功
无返回值
- 操作失败
操作失败返回异常列表参考:NAT异常列表
示例代码
具体代码示例参考:ExampleBindSnatEip.java
NAT网关解绑SNAT EIP
函数声明
public void unbindEip(BindEipRequest request) {
......
}
参数含义
请参考OpenAPI文档:NAT网关解绑SNAT EIP请求参数
返回值
- 操作成功
无返回值
- 操作失败
操作失败返回异常列表参考:NAT异常列表
示例代码
具体代码示例参考:ExampleUnbindSnatEip.java
释放NAT网关
函数声明
public void releaseNat(ReleaseNatRequest request) {
......
}
参数含义
请参考OpenAPI文档:释放NAT网关请求参数
返回值
- 操作成功
无返回值
- 操作失败
操作失败返回异常列表参考:NAT异常列表
示例代码
具体代码示例参考:ExampleDeleteNat.java
NAT网关续费
函数声明
public void purchaseReservedNat(PurchaseReservedNatRequest request) {
......
}
参数含义
请参考OpenAPI文档:NAT网关续费请求参数
返回值
- 操作成功
无返回值
- 操作失败
操作失败返回异常列表参考:NAT异常列表
示例代码
具体代码示例参考:ExampleRenewNat.java
NAT网关绑定DNAT EIP
函数声明
public void bindDnatEip(BindDnatEipRequest request) {
......
}
参数含义
请参考OpenAPI文档:NAT网关绑定DNAT EIP请求参数
返回值
- 操作成功
无返回值
- 操作失败
操作失败返回异常列表参考:NAT异常列表
示例代码
具体代码示例参考:ExampleBindDnatEip.java
NAT网关解绑DNAT EIP
函数声明
public void unbindDnatEip(BindDnatEipRequest request) {
......
}
参数含义
请参考OpenAPI文档:NAT网关解绑DNAT EIP请求参数
返回值
- 操作成功
无返回值
- 操作失败
操作失败返回异常列表参考:NAT异常列表
示例代码
具体代码示例参考:ExampleUnbindDnatEip.java
创建SNAT规则
函数声明
public CreateNatRuleResponse createSnatRule(CreateSnatRuleRequest request) {
......
}
参数含义
请参考OpenAPI文档:创建SNAT规则请求参数
返回值
- 操作成功
{
"metadata":具体信息参考附录metadata部分,
"ruleId": "rule-zrsaybxm7nrn"
}
- 操作失败
操作失败返回异常列表参考:NAT异常列表
示例代码
具体代码示例参考:ExampleCreateSnatRule.java
批量创建SNAT规则
函数声明
public CreateBatchDnatRuleIdsResponse batchAddDnatRules(BatchAddDnatRulesRequest request) {
......
}
参数含义
请参考OpenAPI文档:批量创SNAT规则请求参数
返回值
- 操作成功
{
"metadata":具体信息参考附录metadata部分,
"ruleIds": [
"rule-zrsaybxm7nrn",
"rule-f5kid5g50nua"
]
}
- 操作失败
操作失败返回异常列表参考:NAT异常列表
示例代码
具体代码示例参考:ExampleBatchCreateSnatRule.java
删除SNAT规则
函数声明
public void deleteSnatRule(DeleteNatRuleRequest request) {
......
}
参数含义
请参考OpenAPI文档:删除SNAT规则请求参数
返回值
- 操作成功
无返回值
- 操作失败
操作失败返回异常列表参考:NAT异常列表
示例代码
具体代码示例参考:ExampleDeleteSnatRule.java
更新SNAT规则
函数声明
public void updateSnatRule(UpdateSnatRuleRequest request) {
......
}
参数含义
请参考OpenAPI文档:更新SNAT规则请求参数
返回值
- 操作成功
无返回值
- 操作失败
操作失败返回异常列表参考:NAT异常列表
示例代码
具体代码示例参考:ExampleUpdateSnatRule.java
查询SNAT规则
函数声明
public ListSnatRuleResponse listSnatRule(String natId) {
......
}
public ListSnatRuleResponse listSnatRule (ListNatRuleRequest request) {
......
}
参数含义
请参考OpenAPI文档:查询SNAT规则请求参数
返回值
- 操作成功
{
"metadata":具体信息参考附录metadata部分,
"isTruncated": true,
"nextMarker": "rule-vza86i2k6dqu",
"maxKeys": 2,
"rules": [
{
"ruleId": "rule-k1jenum3v9s6",
"ruleName": "s3",
"publicIpsAddress": [
"100.88.10.185"
],
"sourceCIDR": "1.1.1.1/32",
"status": "configuring"
},
{
"ruleId": "rule-kdgqkwpske2q",
"ruleName": "s2",
"publicIpsAddress": [
"100.88.10.185"
],
"sourceCIDR": "192.168.1.0/24",
"status": "configuring"
}
]
}
- 操作失败
操作失败返回异常列表参考:NAT异常列表
示例代码
具体代码示例参考:ExampleListSnatRule.java
创建DNAT规则
函数声明
public CreateNatRuleResponse createDnatRule(CreateDnatRuleRequest request) {
......
}
参数含义
请参考OpenAPI文档:创建DNAT规则请求参数
返回值
- 操作成功
{
"metadata":具体信息参考附录metadata部分,
"ruleId": "rule-zrsaybxm7nrn"
}
- 操作失败
操作失败返回异常列表参考:NAT异常列表
示例代码
具体代码示例参考:ExampleCreateDnatRule.java
批量创建DNAT规则
函数声明
public CreateBatchDnatRuleIdsResponse batchAddDnatRules(BatchAddDnatRulesRequest request) {
......
}
参数含义
请参考OpenAPI文档:批量创建DNAT规则请求参数
返回值
- 操作成功
{
"metadata":具体信息参考附录metadata部分,
"ruleIds": [
"rule-zrsaybxm7nrn",
"rule-f5kid5g50nua"
]
}
- 操作失败
操作失败返回异常列表参考:NAT异常列表
示例代码
具体代码示例参考:ExampleBatchCreateDnatRule.java
删除DNAT规则
函数声明
public void deleteDnatRule(DeleteNatRuleRequest request) {
......
}
参数含义
请参考OpenAPI文档:删除DNAT规则请求参数
返回值
- 操作成功
无返回值
- 操作失败
操作失败返回异常列表参考:NAT异常列表
示例代码
具体代码示例参考:ExampleDeleteDnatRule.java
更新DNAT规则
函数声明
public void updateDnatRule(UpdateDnatRuleRequest request) {
......
}
参数含义
请参考OpenAPI文档:更新DNAT规则请求参数
返回值
- 操作成功
无返回值
- 操作失败
操作失败返回异常列表参考:NAT异常列表
示例代码
具体代码示例参考:ExampleUpdateDnatRule.java
查询DNAT规则
函数声明
public ListDnatRuleResponse listDnatRule(String natId) {
......
}
public ListDnatRuleResponse listDnatRule (ListNatRuleRequest request) {
......
}
参数含义
请参考OpenAPI文档:查询DNAT规则请求参数
返回值
- 操作成功
{
"metadata":具体信息参考附录metadata部分,
"isTruncated": true,
"nextMarker": "rule-pej10dar6pxd",
"maxKeys": 2,
"rules": [
{
"ruleId": "rule-29d9jpprcm75",
"ruleName": "sg",
"publicIpAddress": "100.88.6.197",
"privateIpAddress": "192.168.3.3",
"publicPort": 333,
"privatePort": 333,
"status": "active",
"protocol": "TCP"
},
{
"ruleId": "rule-72z6p8ni6rce",
"ruleName": "sd",
"publicIpAddress": "100.88.6.197",
"privateIpAddress": "192.168.2.2",
"publicPort": 222,
"privatePort": 222,
"status": "active",
"protocol": "UDP"
}
]
}
- 操作失败
操作失败返回异常列表参考:NAT异常列表
示例代码
具体代码示例参考:ExampleListDnatRule.java
附录
公共返回信息metadata格式
{
"bceRequestId":"f5f0821d-45fe-439b-bbf4-fc48b639f84a",
"contentLength":28,
"contentType":"application/json;charset=UTF-8",
"date":1701917695000,
"server":"openresty/1.15.8.1"
}