我正在尝试在另一个区域中创建一个实例,但出现此错误:
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-########)
,但我会收到一条错误消息,指出安全组不存在(这是错误的,它确实存在)。其中,根据 API doc,如果使用非默认 VPC,您应该传递实际的 groupid,但我会收到如下错误:
InvalidGroup.NotFound, AWS Error Message: The security group 'sg-########' does not exist
如果我使用“默认”作为setSecurityGroups
它将使用默认 VPC。尽管它是准确的,但它看起来不像我正在传递的 groupid。
此外,如果我注释掉setSecurityGroups
代码,并setSubnetId
改用并传递子网 ID,它将创建实例就好了,但它进入“默认”安全组,而不是像我想要的“testdefault”。
我想要完成的只是创建一个实例并让它使用已经存在的 VPC 组。