运行" aws ec2 describe-instances"在命令行中,它提供了所有ec2实例的列表,但是使用Java AWS-SDK,它给出了零预留。请参阅下面的代码段,
AmazonEC2 ec2;
if (ec2 == null) {
AWSCredentialsProviderChain credentialsProvider = new
AWSCredentialsProviderChain(
new InstanceProfileCredentialsProvider(),
new ProfileCredentialsProvider("default"));
ec2 = new AmazonEC2Client(credentialsProvider);
}
for (Reservation reservation : ec2.describeInstances().getReservations()) {
for (Instance instance : reservation.getInstances()) {
System.out.println("TAG" + instance.getInstanceId());
}
}
`
答案 0 :(得分:1)
最可能的原因是它没有找到正确的区域。
另一种可能性是它引发了一个你不会看到的异常。要验证不是这种情况,您需要插入一些日志记录语句。至少是for
循环之前和之后的一个。
答案 1 :(得分:0)
这是Java 8中的代码,我用它来描述来自所有区域的所有实例:
amazonEC2.describeRegions().getRegions().forEach(region -> {
System.out.println("Region : " + region.getRegionName());
amazonEC2 = AmazonEC2ClientBuilder.standard().withCredentials(awsprovider).withRegion(region.getRegionName()).build();
amazonEC2.describeInstances().getReservations().forEach(reservation -> {
reservation.getInstances().forEach(instance -> {
System.out.println(instance.getInstanceId());
});
});
});
谢谢, 阿克沙伊