本教程详细介绍如何使用Alibaba Cloud SDK for Java查询某专有网络VPC已创建的所有交换机。
前提条件
在使用本教程前,请确保已完成以下操作:
- 使用Alibaba Cloud SDK for Java,您需要一个阿里云账号和访问密钥(AccessKey)。 请在阿里云控制台中的AccessKey管理页面上创建和查看您的AccessKey。
- 确保您已经安装了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.DescribeVSwitchesRequest;
import com.aliyuncs.vpc.model.v20160428.DescribeVSwitchesResponse;
import com.aliyuncs.vpc.model.v20160428.DescribeVpcsRequest;
import com.aliyuncs.vpc.model.v20160428.DescribeVpcsResponse;
import com.google.gson.Gson;
import java.util.List;
/**
* DescribeVpcs 查询已创建的VPC
* DescribeVSwitches 查询已创建的交换机
*/
public class Demo{
public static void main(String[] args) {
IAcsClient client = initialization();
// 获取到此地域下所有已创建的VPC列表
List<DescribeVpcsResponse.Vpc> vpcList = describeVpcs(client);
// 选择需要查询的vpcId
String vpcId = "";
// 根据用户情况结合前端来锁定需要的vpcId
for (DescribeVpcsResponse.Vpc vpc : vpcList) {
vpcId = vpc.getVpcId();
if (vpcId != "" || vpcId != null) {
break;
}
}
describeVSwitches(client, vpcId);
}
/**
* DescribeVSwitches 查询某VPC的交换机
*/
private static void describeVSwitches(IAcsClient client, String vpcId) {
DescribeVSwitchesRequest request = new DescribeVSwitchesRequest();
// 是否查询指定地域下的默认交换机,取值:
//
// true(默认值):查询指定地域下的所有交换机
// false:不查询默认交换机
// request.setIsDefault(true);
// VPC的ID
request.setVpcId(vpcId);
try {
DescribeVSwitchesResponse response = client.getAcsResponse(request);
// 打印返回信息
System.out.println("------------------describeVSwitches-------------------");
System.out.println(new 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());
}
}
/**
* DescribeVpcs 查询已创建的VPC
*/
private static List<DescribeVpcsResponse.Vpc> describeVpcs(IAcsClient client) {
DescribeVpcsRequest request = new DescribeVpcsRequest();
// 是否查询指定地域下的默认VPC,取值:
//
// true(默认值):查询指定地域下的所有VPC
// false:不查询默认VPC
// request.setIsDefault();
try {
DescribeVpcsResponse response = client.getAcsResponse(request);
System.out.println("------------------describeVpcs-------------------");
// 打印返回信息
System.out.println(new Gson().toJson(response));
return response.getVpcs();
} 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);
}
}
/**
* 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);
}
}
执行结果
正确的执行结果类似如下:
------------------describeVpcs-------------------
{
"requestId": "06764483-D2D0-4443-B515-0CC92CCDEDB9",
"totalCount": 21,
"pageNumber": 1,
"pageSize": 10,
"vpcs": [
{
"vpcId": "vpc-bp1t36rn9*****",
"regionId": "cn-hangzhou",
"status": "Available",
"vpcName": "lalalala",
"creationTime": "2019-08-14T07:52:28Z",
"cidrBlock": "172.16.0.0/12",
"ipv6CidrBlock": "",
"vRouterId": "vrt-bp1kekr32*****",
"description": "",
"isDefault": false,
"resourceGroupId": "rg-acfm*****",
"tags": [ ],
"vSwitchIds": [],
"userCidrs": [ ],
"natGatewayIds": [ ],
"routerTableIds": []
},
{
"vpcId": "vpc-bp1m7v25emi*****",
"regionId": "cn-hangzhou",
"status": "Available",
"vpcName": "hello",
"creationTime": "2019-04-08T00:05:29Z",
"cidrBlock": "192.168.0.0/16",
"ipv6CidrBlock": "",
"vRouterId": "vrt-bp1fwrrlhoa8*****",
"description": "",
"isDefault": false,
"resourceGroupId": "rg-acfmxaz*****",
"tags": [ ],
"vSwitchIds": [],
"userCidrs": [ ],
"natGatewayIds": [],
"routerTableIds": []
}
]
}
------------------describeVSwitches-------------------
{
"requestId": "7C053A65-2CD0-4C66-BD94-00F6B0E7AE17",
"totalCount": 1,
"pageNumber": 1,
"pageSize": 10,
"vSwitches": [
{
"vSwitchId": "vsw-bp1ug2f2vp*****",
"vpcId": "vpc-bp1t36r*****",
"status": "Available",
"cidrBlock": "172.16.0.0/24",
"ipv6CidrBlock": "",
"zoneId": "cn-hangzhou-b",
"availableIpAddressCount": 250,
"description": "",
"vSwitchName": "lalalala",
"creationTime": "2019-08-14T07:52:31Z",
"isDefault": false,
"resourceGroupId": "rg-acfmx*****",
"tags": [ ],
"routeTable": {
"routeTableId": "vtb-bp1r9p*****",
"routeTableType": "System"
}
}
]
}
在文档使用中是否遇到以下问题
更多建议
匿名提交