创建实例时无效的可用区域

时间:2014-02-26 16:56:25

标签: java amazon-web-services amazon-ec2

我正在尝试在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

我可以通过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);

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

非常感谢任何帮助。谢谢!

1 个答案:

答案 0 :(得分:3)

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