我通过提供的界面创建EC2实例,我使用AWS API连接到现有的运行实例,但是当我运行以下代码时,我得到“你有0个Amazon EC2实例正在运行”。 :
DescribeAvailabilityZonesResult availabilityZonesResult = ec2.describeAvailabilityZones();
System.out.println("You have access to " + availabilityZonesResult.getAvailabilityZones().size() +
" Availability Zones.");
DescribeInstancesResult describeInstancesRequest = ec2.describeInstances();
List<Reservation> reservations = describeInstancesRequest.getReservations();
Set<Instance> instances = new HashSet<Instance>();
for (Reservation reservation : reservations) {
instances.addAll(reservation.getInstances());
}
System.out.println("You have " + instances.size() + " Amazon EC2 instance(s) running.");
您对可能出现的问题有任何想法吗?
答案 0 :(得分:2)
如果您仔细检查了您的实例是否已启动并正在运行,则它们很可能不在“us-east-1”实例区域(这是AWS SDK假定的默认实例区域)。
因此,将AmazonEC2Client
实例设置为指向正确的端点,一切都应该没问题,例如对于欧洲(爱尔兰):
ec2.setEndpoint("ec2.eu-west-1.amazonaws.com");
更多详细信息,以及指向此SO answer的端点字符串的链接。