我正在尝试在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);
与我在网上找到的其他例子相比,我已经查看了这一百次,但我无法确定出现此错误的原因。
非常感谢任何帮助。谢谢!
答案 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