EC2 - 使用API​​连接到正在运行的实例

时间:2013-09-25 08:31:01

标签: amazon-ec2

我通过提供的界面创建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."); 

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

1 个答案:

答案 0 :(得分:2)

如果您仔细检查了您的实例是否已启动并正在运行,则它们很可能不在“us-east-1”实例区域(这是AWS SDK假定的默认实例区域)。

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

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

更多详细信息,以及指向此SO answer的端点字符串的链接。