Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/401.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/1/amazon-web-services/14.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 如何获得正确的AWS可用性区域?_Java_Amazon Web Services - Fatal编程技术网

Java 如何获得正确的AWS可用性区域?

Java 如何获得正确的AWS可用性区域?,java,amazon-web-services,Java,Amazon Web Services,我正在尝试从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

我正在尝试从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]
aws_access_key_id = my_aws_access_key_id_here
aws_secret_access_key = my_aws_secret_access_key_here
我还将配置文件设置为:

[default]
region = us-west-2
我的凭证文件设置如下:

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]
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();
}

如何使其显示正确的us-west-2值?我们在us-west-2a、2b和2c上有6个正在运行的实例。

在构建过程中是否尝试在客户端上设置区域

private AmazonEC2 provideAmazonEC2() throws Exception {
    AmazonEC2 amazonEC2 = AmazonEC2ClientBuilder.standard()
        .withCredentials(new AWSStaticCredentialsProvider(basicAWSCredentials))
        .withRegion(Regions.AP_SOUTHEAST_2)
        .build();

    DescribeAvailabilityZonesRequest describeAvailabilityZonesRequest = new DescribeAvailabilityZonesRequest();
    DescribeAvailabilityZonesResult describeAvailabilityZonesResultFuture = amazonEC2.describeAvailabilityZones(describeAvailabilityZonesRequest);

    try {
        List<AvailabilityZone> describeAvailabilityZonesResult = describeAvailabilityZonesResultFuture.getAvailabilityZones();
        System.out.println(describeAvailabilityZonesResult);
    } catch (Exception e) {
        e.printStackTrace();
    }

    return amazonEC2;
}

这就是我所期望的结果

谢谢,成功了!我试过一些非常类似的东西,但没有。做事情的方式太多了。