小编Qui*_*ull的帖子

创建实例时可用区无效

我正在尝试在 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)

与我在网上找到的其他示例相比,我已经查看了一百次,但我无法确定此错误的原因。

任何帮助将不胜感激。谢谢!

java amazon-ec2 amazon-web-services

6
推荐指数
1
解决办法
4935
查看次数

启动实例:VPC安全组不能用于非VPC启动

我正在尝试在另一个区域中创建一个实例,但是我收到此错误:

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组.

java amazon-ec2 amazon-web-services amazon-vpc

6
推荐指数
1
解决办法
1万
查看次数