创建实例时可用区无效

Qui*_*ull 6 java amazon-ec2 amazon-web-services

我正在尝试在 us-west-1c 上创建实例(尽管在尝试 1b 或任何其他 AZ 时遇到相同的错误)并且我收到此错误:

Caught Exception: Status Code: 400, AWS Service: AmazonEC2, AWS Error Code: InvalidParameterValue, AWS Error Message: Invalid availability zone: [us-west-1c]
Response Status Code: 400
Error Code: InvalidParameterValue
Run Code Online (Sandbox Code Playgroud)

我可以通过 AWS 控制台手动创建实例。这是我创建该实例的代码:

   runInstancesRequest =
            new RunInstancesRequest().withInstanceType("m1.medium")
                .withImageId("ami-37b1b45e").withMinCount(1).withMaxCount(1)
                .withSecurityGroupIds("launch-wizard-6")
                .withKeyName("testkey");

        Placement place = new Placement();
        place.setAvailabilityZone("us-west-1c");

        runInstancesRequest.setPlacement(place);

        RunInstancesResult runInstancesResult = ec2.runInstances(runInstancesRequest);
Run Code Online (Sandbox Code Playgroud)

与我在网上找到的其他示例相比,我已经查看了一百次,但我无法确定此错误的原因。

任何帮助将不胜感激。谢谢!

Mic*_*bot 5

AWS 中的每个区域相互独立,API 端点不同。

如果您没有专门配置代码以将您的请求发送到“us-west-1”区域,那么默认情况下您实际上是要求us-east-1在它从未听说过的可用区中创建实例.

如果您未在代码中指定区域,AWS SDK for Java 将使用美国东部(弗吉尼亚北部)区域作为默认区域。

http://docs.aws.amazon.com/AWSSdkDocsJava/latest/DeveloperGuide/java-dg-region-selection.html