Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么描述AmazonEC2实例可能没有结果?_Java_Amazon Web Services_Amazon Ec2 - Fatal编程技术网

Java 为什么描述AmazonEC2实例可能没有结果?

Java 为什么描述AmazonEC2实例可能没有结果?,java,amazon-web-services,amazon-ec2,Java,Amazon Web Services,Amazon Ec2,我正在尝试检索AWS帐户中运行的所有实例(例如实例id等)。我使用以下代码。我无法打印实例ID。当我调试时,我只得到空值。但是我有三个在AWS上运行的实例。有人能指出我做错了什么吗 DescribeInstancesResult result = ec2.describeInstances(); List<Reservation> reservations = result.getReservations(); for (Reservation reservation :

我正在尝试检索AWS帐户中运行的所有实例(例如实例id等)。我使用以下代码。我无法打印实例ID。当我调试时,我只得到空值。但是我有三个在AWS上运行的实例。有人能指出我做错了什么吗

 DescribeInstancesResult result = ec2.describeInstances();

 List<Reservation> reservations = result.getReservations();

 for (Reservation reservation : reservations) {
      List<Instance> instances = reservation.getInstances();

      for (Instance instance : instances) {
           System.out.println(instance.getInstanceId());
      }
 } 
DescribeInstancesResult=ec2.describeInstances();
List reservations=result.getReservations();
用于(预订:预订){
列表实例=reservation.getInstances();
例如(实例:实例){
System.out.println(instance.getInstanceId());
}
} 

此类问题的最常见原因是初始化客户端时缺少区域规范,有关详细信息,请参阅中的创建和初始化Amazon EC2客户端一节:

具体而言,步骤2仅创建EC2客户端,而不显式指定区域:

2) 使用AWSCredentials对象创建新的AmazonEC2Client实例,如下所示:

amazonEC2Client = new AmazonEC2Client(credentials);
这就产生了一个与
us-east-1
对话的客户机-令人惊讶的是,和使用了不同的默认值,甚至如步骤3所述,这也显示了如何指定不同的端点:

3) 默认情况下,服务端点是ec2.us-east-1.amazonaws.com。要指定不同的端点,请使用setEndpoint方法。例如:

amazonEC2Client.setEndpoint("ec2.us-west-2.amazonaws.com");
AWS Java SDK使用美国东部(北弗吉尼亚州)作为默认区域 如果未在代码中指定区域但是,AWS 管理控制台使用美国西部(俄勒冈州)作为默认设置。因此, 将AWS管理控制台与您的 开发时,请确保在代码和代码中指定相同的区域 控制台。[我的重点]


不同的默认值很容易被忽略,AWS管理控制台中相应的默认值事实上随着时间的推移而发生了变化——正如软件开发中经常发生的那样,我建议您在代码中始终明确这一点,以避免此类微妙的错误源。

请注意!很有魅力,谢谢!我只是浪费了一段令人尴尬的时间,想知道为什么我没有得到结果,结果我忘了设置区域。