gpt4 book ai didi

java - 为什么描述 Amazon EC2 实例可能没有结果?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:24:37 24 4
gpt4 key购买 nike

我正在尝试检索在我的 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());
}
}

最佳答案

此类问题的最常见原因是初始化客户端时缺少区域规范,请参阅 Create an Amazon EC2 Client 中的创建和初始化 Amazon EC2 客户端部分详情:

具体来说,第 2 步只创建一个 EC2 客户端,而没有明确指定区域:

2) Use the AWSCredentials object to create a new AmazonEC2Client instance, as follows:

amazonEC2Client = new AmazonEC2Client(credentials);

这会产生一个与 us-east-1 通话的客户端 - 令人惊讶的是,AWS SDKsAWS Management Console即使按照步骤 3 中的概述使用不同的默认值,该步骤还显示了如何指定不同的端点:

3) By default, the service endpoint is ec2.us-east-1.amazonaws.com. To specify a different endpoint, use the setEndpoint method. For example:

amazonEC2Client.setEndpoint("ec2.us-west-2.amazonaws.com");

The AWS SDK for Java uses US East (N. Virginia) as the default region if you do not specify a region in your code. However, the AWS Management Console uses US West (Oregon) as its default. Therefore, when using the AWS Management Console in conjunction with your development, be sure to specify the same region in both your code and the console. [emphasis mine]

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

关于java - 为什么描述 Amazon EC2 实例可能没有结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23439085/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com