【发布时间】:2014-04-17 09:51:45
【问题描述】:
我正在尝试在另一个区域创建实例,但出现此错误:
AWS Error Code: InvalidParameterCombination, AWS Error Message: VPC security groups may not be used for a non-VPC launch
这是我正在执行的代码。
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);
我也尝试过,而不是使用名称“testdefault”,而是使用实际的 groupid (sg-########),但我会收到一条错误消息,指出安全组不存在(这是错误的,它确实存在)。其中,based on the API doc,如果使用非默认 VPC,您应该传递实际的 groupid,但我会收到如下错误:
InvalidGroup.NotFound, AWS Error Message: The security group 'sg-########' does not exist
如果我使用“默认”作为setSecurityGroups,它将使用默认 VPC。尽管它是准确的,但它看起来不像我传递的 groupid。
另外,如果我注释掉setSecurityGroups 代码,并改用setSubnetId 并传递子网ID,它会创建实例就好了,但它进入“默认”安全组,而不是“testdefault”如我所愿。
我想要完成的只是创建一个实例并让它使用现有的 VPC 组。
【问题讨论】:
标签: java amazon-web-services amazon-ec2 amazon-vpc