NAT网关管理
1.初始化客户端
参数获取可参照准备工作中token认证方式。
// 设置认证参数
String user = "******"; // IAM用户名
String password = "******"; // IAM用户密码
String projectId = "******"; // 项目ID
String userDomainId = "******"; // 账号ID
String authUrl = "******"; // 认证服务(IAM)的Endpoint
// 初始化client
OSClientV3 osclient = OSFactory.builderV3().endpoint(authUrl)
.credentials(user, password, Identifier.byId(userDomainId)).scopeToProject(Identifier.byId(projectId))
.authenticate();
2.创建NAT网关实例
字段参考说明
参数 |
参数类型 |
描述 |
tenant_id |
string |
项目的ID |
name |
string |
NAT网关的名字,NAT网关的名字仅支持数字、字母、_(下划线)、-(中划线)、中文 |
description |
string |
NAT网关的描述。 |
spec |
string |
取值为:“1”:小型,SNAT最大连接数10000,“2”:中型,SNAT最大连接数50000,“3”:大型,SNAT最大连接数200000,“4”:超大型,SNAT最大连接数1000000 |
router_id |
string |
VPC的id。获取 router_id 的方法请参考查询VPC路由列表下的vpc_id |
internal_network_id |
String |
NAT网关下行口(DVR的下一跳)所属的network id。获取 network id 的方法请参考查询子网列表下的neutron_network_id |
// 创建NAT网关参数
String natGateWayName = "nat_gateway_create_test";
String routerID = "22be6617-e727-436c-a905-d050ea4aead8";
String networkID = "96afbb64-94a8-4b76-83bb-11c6edb02424";
String natGateWayDescription = "nat_gateway_create_description";
String spec = "3";
// 创建NAT网关
NatGateWayCreate natGateWayCreate = NatGateWayCreate.builder().name(natGateWayName).
description(natGateWayDescription).routerId(routerID).internalNetworkId(networkID).spec(spec).build();
osclient.nat().natGateWays().create(natGateWayCreate);
说明:
更多参数详情具体请参考API Explorer
3.查询NAT网关列表
字段参考说明
参数 |
参数类型 |
描述 |
id |
string |
NAT网关的id |
limit |
Integer |
每页返回的个数。 |
tenant_id |
String |
项目的ID |
name |
string |
NAT网关的名字仅支持数字、字母、_(下划线)、-(中划线)、中文 |
description |
String |
NNAT网关的描述。 |
spec |
String |
NAT网关的规格:“1”:小型,SNAT最大连接数10000,“2”:中型,SNAT最大连接数50000,“3”:大型,SNAT最大连接数200000,“4”:超大型,SNAT最大连接数1000000 |
router_id |
string |
路由器的UUID |
internal_network_id |
string |
NAT网关下行口(DVR的下一跳)所属的network id |
status |
String |
功能说明:NAT网关的状态,取值范围:资源状态说明 |
admin_state_up |
Boolean |
解冻/冻结状态 |
created_at |
String |
NAT网关的创建时间戳,遵循UTC时间,保留小数点后6位,格式是yyyy-mm-dd hh:mm:ss |
osclient.nat().natGateWays().list();
说明:
4.查询指定的NAT网关详情
字段参考说明
参数 |
参数类型 |
描述 |
nat_gateway_id |
string |
所属NAT网关的id。 |
String natGateWayID = "8d45f435-61f7-4a30-b955-ae40f3e3989b";
osclient.nat().natGateWays().get(natGateWayID);
说明:
更多参数详情具体请参考API Explorer
5.更新NAT网关
字段参考说明
参数 |
参数类型 |
描述 |
name |
String |
NAT网关的名字仅支持数字、字母、_(下划线)、-(中划线)、中文。 |
description |
String |
NAT网关的描述。 |
spec |
String |
NAT网关的规格:“1”:小型,SNAT最大连接数10000,“2”:中型,SNAT最大连接数50000,“3”:大型,SNAT最大连接数200000,“4”:超大型,SNAT最大连接数1000000 |
// 更新NAT网关的参数
String natGateWayUpdateName = "nat_gateway_update_test";
String natGateWayUpdateDescription = "nat_gateway_update_description";
String updateSpec = "1";
// 更新NAT网关操作
NatGateWayUpdate natGateWayUpdate = NatGateWayUpdate.builder().name(natGateWayUpdateName).
description(natGateWayUpdateDescription).spec(updateSpec).build();
osclient.nat().natGateWays().update(natGateWayUpdate, natGateWayID);
说明:
6.删除NAT网关
字段参考说明
参数 |
参数类型 |
描述 |
nat_gateway_id |
string |
所属NAT网关的id。 |
osclient.nat().natGateWays().delete(natGateWayID);
说明:
更多参数详情具体请参考API Explorer
版本说明
本示例基于华为云SDK V2.0版本开发,高版本示例正在开发中。
功能介绍
NAT网关分为公网NAT网关和私网NAT网关,它能够为虚拟私有云内的云主机或者通过云专线接入虚拟私有云的本地数据中心的服务器提供地址转换服务,从而使其达到访问Internet、为互联网提供服务、为私网提供服务的目的。本示例展示的是创建NAT网关、查询NAT网关列表、查询指定的NAT网关详情、更新NAT网关、删除NAT网关等操作。
准备工作
1.获取华为云开发工具包(SDK),您也可以查看安装JAVA SDK。
2.华为云 Java SDK 支持两种认证方式,具体请查看token认证和AK/SK认证
3.华为云 Java SDK 支持 Java JDK 1.8 及其以上版本。
NAT网关管理
1.初始化客户端
参数获取可参照准备工作中token认证方式。
2.创建NAT网关实例
字段参考说明
说明:
更多参数详情具体请参考API Explorer
3.查询NAT网关列表
字段参考说明
说明:
如无特殊说明,匹配规则为精确匹配,支持参数说明中所有非必选参数过滤
更多参数详情具体请参考API Explorer
4.查询指定的NAT网关详情
字段参考说明
说明:
更多参数详情具体请参考API Explorer
5.更新NAT网关
字段参考说明
说明:
admin_state_up = True & status = "ACTIVE"允许更新,支持更新名称、描述、规格
更多参数详情具体请参考API Explorer
6.删除NAT网关
字段参考说明
说明:
更多参数详情具体请参考API Explorer
参考
更多信息请参考NAT网关