本教程详细介绍如何使用Alibaba Cloud SDK for Java为NAT网关添加和修改共享带宽。
前提条件
在使用本教程前,请确保已完成以下操作:
- 使用Alibaba Cloud SDK for Java,您需要一个阿里云账号和访问密钥(AccessKey)。 请在阿里云控制台中的AccessKey管理页面上创建和查看您的AccessKey。
- 确保您的NAT网关实例已绑定弹性公网IP(EIP),请参见为NAT网关绑定弹性公网IP。
- 确保您已经安装了Alibaba Cloud SDK for Java,准确的SDK版本号,请参见 阿里云开发工具包(SDK)。
<dependencies> <!-- https://mvnrepository.com/artifact/com.aliyun/aliyun-java-sdk-core --> <dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-core</artifactId> <version>4.4.5</version> </dependency> <!-- https://mvnrepository.com/artifact/com.aliyun/aliyun-java-sdk-vpc --> <dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-vpc</artifactId> <version>3.0.6</version> </dependency> </dependencies>
代码示例
本文操作示例主要以代码形式体现,具体代码如下:
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.vpc.model.v20160428.*;
import com.google.gson.Gson;
import java.util.UUID;
/**
* 1.绑定EIP AssociateEipAddress
* 参见:https://help.aliyun.com/document_detail/140808.htm
* 2.购买共享宽带 CreateCommonBandwidthPackage
* 3.绑定NAT网关IP AddCommonBandwidthPackageIp
* 4.修改带宽 ModifyCommonBandwidthPackageSpec
*/
public class Demo {
private static String eipId = "eip-uf6l5m4qrcxypyt4e6epg";
private static Gson gson = new Gson();
public static void main(String[] args) {
IAcsClient client = initialization();
// 购买共享宽带
CreateCommonBandwidthPackageResponse createCommonBandwidthPackageResponse = createCommonBandwidthPackage(client);
String bandwidthPackageId = createCommonBandwidthPackageResponse.getBandwidthPackageId();
// 绑定NAT网关IP
addCommonBandwidthPackageIp(client, bandwidthPackageId, eipId);
// 修改带宽
modifyCommonBandwidthPackageSpec(client, bandwidthPackageId);
}
/**
* 修改带宽 ModifyCommonBandwidthPackageSpec
*/
private static void modifyCommonBandwidthPackageSpec(IAcsClient client, String bandwidthPackageId) {
ModifyCommonBandwidthPackageSpecRequest request = new ModifyCommonBandwidthPackageSpecRequest();
// 共享带宽实例的ID
request.setBandwidthPackageId(bandwidthPackageId);
// 共享带宽实例的带宽峰值,单位为Mbps
request.setBandwidth("500");
System.out.println("------------------modifyCommonBandwidthPackageSpec-------------------");
try {
ModifyCommonBandwidthPackageSpecResponse response = client.getAcsResponse(request);
System.out.println(gson.toJson(response));
} catch (ServerException e) {
e.printStackTrace();
} catch (ClientException e) {
System.out.println("ErrCode:" + e.getErrCode());
System.out.println("ErrMsg:" + e.getErrMsg());
System.out.println("RequestId:" + e.getRequestId());
throw new RuntimeException(e);
}
}
/**
* 添加EIP到共享带宽中
*/
private static void addCommonBandwidthPackageIp(IAcsClient client, String bandwidthPackageId,String eipId) {
AddCommonBandwidthPackageIpRequest request = new AddCommonBandwidthPackageIpRequest();
// 共享带宽的ID
request.setBandwidthPackageId(bandwidthPackageId);
// EIP实例的ID
request.setIpInstanceId(eipId);
System.out.println("------------------addCommonBandwidthPackageIp-------------------");
try {
AddCommonBandwidthPackageIpResponse response = client.getAcsResponse(request);
System.out.println(gson.toJson(response));
} catch (ServerException e) {
e.printStackTrace();
} catch (ClientException e) {
System.out.println("ErrCode:" + e.getErrCode());
System.out.println("ErrMsg:" + e.getErrMsg());
System.out.println("RequestId:" + e.getRequestId());
throw new RuntimeException(e);
}
}
/**
* 创建共享带宽实例 CreateCommonBandwidthPackage
*/
private static CreateCommonBandwidthPackageResponse createCommonBandwidthPackage(IAcsClient client) {
CreateCommonBandwidthPackageRequest request = new CreateCommonBandwidthPackageRequest();
// 共享带宽的带宽峰值,单位为Mbps
request.setBandwidth(5);
// 用于保证请求的幂等性。由客户端生成该参数值,要保证在不同请求间唯一,最大值不超过64个ASCII字符
request.setClientToken(UUID.randomUUID().toString());
// 共享带宽的描述信息。长度为2~256个字符,必须以字母或中文开头,但不能以http://或https://开头
request.setDescription("This is a ....");
// 共享带宽的计费方式,取值:
// PayByBandwidth(默认值):按带宽计费
// PayBy95:按增强型95计费
// 如需PayByTraffic计费方式,请提交工单
request.setInternetChargeType("PayByBandwidth");
// 共享带宽的名称
// 长度为2~128个字符,必须以字母或中文开头,可包含数字,点号(.),下划线(_)和短横线(-),但不能以http://或https://开头
request.setName("Test");
System.out.println("------------------createCommonBandwidthPackage-------------------");
try {
CreateCommonBandwidthPackageResponse response = client.getAcsResponse(request);
System.out.println(gson.toJson(response));
return response;
} catch (ServerException e) {
e.printStackTrace();
} catch (ClientException e) {
System.out.println("ErrCode:" + e.getErrCode());
System.out.println("ErrMsg:" + e.getErrMsg());
System.out.println("RequestId:" + e.getRequestId());
throw new RuntimeException(e);
}
return null;
}
/**
* Initialization 初始化公共请求参数
*/
private static IAcsClient initialization() {
// 初始化请求参数
DefaultProfile profile = DefaultProfile.getProfile(
"<your-region-id>", // 您的可用区ID
"<your-access-key-id>", // 您的AccessKey ID
"<your-access-key-secret>"); // 您的AccessKey Secret
return new DefaultAcsClient(profile);
}
}
执行结果
正确的执行结果类似如下:
------------------createCommonBandwidthPackage-------------------
{
"requestId": "8EB45C27-B94A-4493-8E51-ECBA9C82BA35",
"bandwidthPackageId": "cbwp-uf6bt*****",
"resourceGroupId": "rg-acfm*****"
}
------------------addCommonBandwidthPackageIp-------------------
{"requestId":"0F19E025-97C8-4E4A-86EF-3ACA1452ABB6"}
------------------modifyCommonBandwidthPackageSpec-------------------
{"requestId":"DE8049BA-0756-4456-BE80-2C7A24AD6AC6"}
在文档使用中是否遇到以下问题
更多建议
匿名提交