我正在尝试在 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)
与我在网上找到的其他示例相比,我已经查看了一百次,但我无法确定此错误的原因。
任何帮助将不胜感激。谢谢!
我正在尝试在另一个区域中创建一个实例,但是我收到此错误:
AWS Error Code: InvalidParameterCombination, AWS Error Message: VPC security groups may not be used for a non-VPC launch
Run Code Online (Sandbox Code Playgroud)
这是我正在执行的代码.
RunInstancesRequest instancereq = new RunInstancesRequest();
instancereq.setInstanceType("m3.medium");
instancereq.setImageId("ami-37b1b45e");
instancereq.setMinCount(1);
instancereq.setMaxCount(1);
ArrayList<String> secgroup = new ArrayList<String>();
instancereq.setKeyName("testkey");
secgroup.add("testdefault");
instancereq.setSecurityGroups(secgroup);
instancereq.setPlacement(getAzPlacement());
RunInstancesResult instanceresult = ec2.runInstances(instancereq);
Run Code Online (Sandbox Code Playgroud)
我也试过,而不是使用名称"testdefault",使用实际的groupid (sg-########),但我会得到一个错误,说安全组不存在(这是错误的,它确实).其中,基于API文档,如果使用非默认VPC,你应该通过实际GROUPID,但我会得到这样的错误:
InvalidGroup.NotFound, AWS Error Message: The security group 'sg-########' does not exist
Run Code Online (Sandbox Code Playgroud)
如果我使用"默认",setSecurityGroups它将使用默认的VPC.尽管它准确无误,但它似乎并不像我正在传递的那种.
此外,如果我注释掉setSecurityGroups代码,然后使用setSubnetId并传递子网ID,它将创建实例,但它会进入"默认"安全组,而不是像我想要的那样"testdefault".
我想要完成的只是创建一个实例并让它使用已经存在的VPC组.