【发布时间】:2016-04-27 06:46:00
【问题描述】:
我的问题与SO 有点相似,但我在那里找不到答案。
我使用下面的代码sn-p来创建实例。
代码:
public void test(String accessId, String accessKey){
credentials = new BasicAWSCredentials(accessId, accessKey);
amazonEC2Client = new AmazonEC2Client(credentials);
amazonEC2Client.setEndpoint("ec2.ap-northeast-1.amazonaws.com");
RunInstancesRequest runInstancesRequest = new RunInstancesRequest();
runInstancesRequest.withImageId(imageId)
.withInstanceType("t2.micro")
.withMinCount(2)
.withMaxCount(2);
}
当我运行上面的 sn-p 时,我得到了以下错误。
We currently do not have sufficient t2.micro capacity in zones with support for'gp2'volumes.
Our system will be working on provisioning additional capacity.
(Service: AmazonEC2; Status Code: 500; Error Code:
InsufficientInstanceCapacity; Request ID: c1996284-c208-446a-9f4c-301d8900e503)
谷歌搜索后,我发现 AWS 当时没有这么多的 t2.micro 实例,它建议在不同的可用区创建实例。
但在代码中我没有提供任何可用区,但实例正在ap-northeast-1a 可用区中创建并抛出上述错误并终止。
当我通过 AWS Web 控制台创建时,它会自动在 ap-northeast-1c 中创建一个实例,而不会引发任何错误。
是否有任何方法可以在该特定区域的任何可用区域中创建实例,只要该实例以编程方式可用?
我的理解是,当我调用 API 时,ap-northeast-1 区域中没有或没有可用的 t2.micro 实例。
是否有任何 API 可以检查 Instance 在特定区域是否可用?
【问题讨论】:
-
@AvinashRaj engha vangha chat.stackoverflow.com/rooms/113113/avinash-and-me
标签: java amazon-web-services amazon-ec2