我试图创建一个EC2实例,我碰到这个问题后,我创建这样的实例:实例ID不存在
SOURCE_REGION = Region.getRegion(Regions.US_WEST_2);
ec2.setRegion(SOURCE_REGION);
ec2.setEndpoint("ec2.us-west-1.amazonaws.com");
RunInstancesRequest instancereq = new RunInstancesRequest();
instancereq.setInstanceType(instancearray.get(i).getInstanceType());
instancereq.setImageId(defaultAmi);
instancereq.setMinCount(1);
instancereq.setMaxCount(1);
ArrayList<String> groupid = new ArrayList<String>();
groupid.add(secgroup.get(0).getGroupName());
instancereq.setSecurityGroupIds(groupid);
instancereq.setKeyName("testkey");
Placement place = new Placement();
place.setAvailabilityZone((String) target.getValueAt(row, column));
instancereq.setPlacement("ec2.us-west-1.amazonaws.com");
RunInstancesResult instanceresult = ec2.runInstances(instancereq);
此代码不正是我想要的,创建实例在正确的区域和AZ。我能够捕获新实例ID instanceresult
的名称。不过,后来我在同样的方法执行下一条线(这些标签变量包含字符串,不包括)我得到一个错误:
CreateTagsRequest createTagsRequest = new CreateTagsRequest();
createTagsRequest.withResources(newinstance.getInstanceId())
.withTags(new Tag("Name", tagName)).withTags(new Tag("Application", tagApplication))
.withTags(new Tag("Env", tagEnv)).withTags(new Tag("Function", tagFunction));
ec2.createTags(createTagsRequest);
我得到的错误是这样的:
Error Code: InvalidInstanceID.NotFound, AWS Error Message: The instance ID 'i-xxxxxxxx' does not exist
现在,我知道它存在的事实,不仅instanceresult
告诉我,我可以看到AWS控制台中的新实例启动。
如果我使用默认区域,我没有任何问题,但在涉及区域和端点时我没有做正确的事情。任何建议/指导将是美好的。
我很欣赏这种回应,但是我不太清楚你是否彻底地阅读了我的问题,因为我不仅包括在前两行代码中设置端点,而且还指出在区域/ AZ中创建实例是成功,并在相同的方法使用相同的EC2客户端对象,我得到该错误。 – QuickNull