0

我通过提供的接口创建了一个 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."); 

您对可能出现的问题有任何想法吗?

4

1 回答 1

2

如果您仔细检查您的实例是否实际启动并运行,它们很可能不在“us-east-1”实例区域(这是 AWS 开发工具包假定的默认区域)。

因此,将您的AmazonEC2Client实例设置为指向正确的端点,一切都应该没问题,例如对于欧洲(爱尔兰):

ec2.setEndpoint("ec2.eu-west-1.amazonaws.com");

更多详细信息,以及指向哪里可以找到端点字符串的链接,在这个SO answer中。

于 2013-09-25T13:33:03.407 回答