java如何获得正确的AWS可用性区域?
我正在尝试从Amazon Web Services AWS SDK获取正确的可用性区域。我知道区域和终点。我尝试的任何组合都会返回us-east-1值,而不是us-west-2值
我像这样初始化AWS:
AWSCredentials credentials = null;
try {
credentials = new ProfileCredentialsProvider().getCredentials();
} catch (Exception e) {
throw new AmazonClientException(
"Cannot load the credentials from the credential profiles file. " +
"Please make sure that your credentials file is at the correct " +
"location (~/.aws/credentials), and is in valid format.",
e);
}
EndpointConfiguration endpointConfiguration = new EndpointConfiguration("ec2.us-west-2.amazonaws.com","us-west-2");
ec2 = AmazonEC2ClientBuilder.standard()
.withEndpointConfiguration(endpointConfiguration)
.build();
我还将配置文件设置为:
[default]
region = us-west-2
我的凭证文件设置如下:
[default]
aws_access_key_id = my_aws_access_key_id_here
aws_secret_access_key = my_aws_secret_access_key_here
但当我这么做的时候:
AWSCredentials awsCredentials = new BasicAWSCredentials("my_aws_access_key_id_here", "my_aws_secret_access_key_here");
AmazonEC2AsyncClient amazonEC2AsyncClient = new AmazonEC2AsyncClient(awsCredentials);
DescribeAvailabilityZonesRequest describeAvailabilityZonesRequest = new DescribeAvailabilityZonesRequest();
Future<DescribeAvailabilityZonesResult> describeAvailabilityZonesResultFuture = amazonEC2AsyncClient.describeAvailabilityZonesAsync(describeAvailabilityZonesRequest);
try {
DescribeAvailabilityZonesResult describeAvailabilityZonesResult = describeAvailabilityZonesResultFuture.get();
System.out.println(describeAvailabilityZonesResult);
} catch (Exception e) {
e.printStackTrace();
}
我得到以下输出:
{AvailabilityZones: [{ZoneName: us-east-1a,State: available,RegionName: us-east-1,Messages: []}, {ZoneName: us-east-1b,State: available,RegionName: us-east-1,Messages: []}, {ZoneName: us-east-1c,State: available,RegionName: us-east-1,Messages: []}, {ZoneName: us-east-1d,State: available,RegionName: us-east-1,Messages: []}, {ZoneName: us-east-1e,State: available,RegionName: us-east-1,Messages: []}]}
如何让它显示正确的us-west-2值?我们在us-west-2a、2b和2c上有6个正在运行的实例
# 1 楼答案
在构建过程中是否尝试在客户端上设置区域
输出
这就是我所期望的结果