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

Amazon ec2 EC2-使用API连接到正在运行的实例,amazon-ec2,Amazon Ec2,我通过提供的接口创建了一个EC2实例,并使用AWS API连接到现有的正在运行的实例,但是当我运行以下代码时,我得到“您有0个Amazon EC2实例正在运行”: describeAvailabilityZones结果可用性区域Result=ec2.describeAvailabilityZones(); System.out.println(“您有权访问”+AvailabilityZones Result.getAvailabilityZones().size())+ “可用区”。); Des

我通过提供的接口创建了一个EC2实例,并使用AWS API连接到现有的正在运行的实例,但是当我运行以下代码时,我得到“您有0个Amazon EC2实例正在运行”:

describeAvailabilityZones结果可用性区域Result=ec2.describeAvailabilityZones();
System.out.println(“您有权访问”+AvailabilityZones Result.getAvailabilityZones().size())+
“可用区”。);
DescribeInstancesResult describeInstancesRequest=ec2.describeInstances();
List reservations=descripbeinstancesrequest.getReservations();
Set instances=newhashset();
用于(预订:预订){
instances.addAll(reservation.getInstances());
}
System.out.println(“您有“+instances.size()+”AmazonEC2实例正在运行。”);

您对可能出现的问题有什么想法吗?

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

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


更多详细信息,以及您可以在此处找到端点字符串的链接。

非常感谢,它很有效。有没有办法自动获取这些信息?至少我不知道有任何这样的方法。
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."); 
ec2.setEndpoint("ec2.eu-west-1.amazonaws.com");