无效的AMI ID。未找到,AWS错误信息:AMI ID 'ami-c1aaabb5'不存在。

6

我正在尝试编写程序以启动一个带有EBS的64位Ubuntu 12.04 LTS服务器。以下是我的代码:

Placement placement = new Placement("eu-west-1b");
RunInstancesRequest runInstancesRequest = new RunInstancesRequest()
    .withPlacement(placement).withInstanceType("t1.micro")
    .withImageId("ami-c1aaabb5").withMinCount(1).withMaxCount(1)
    .withSecurityGroupIds("testGroup").withKeyName("testKey")
    .withUserData(Base64.encodeBase64String(startupScript.getBytes()));
RunInstancesResult runInstances = amazonEC2.runInstances(runInstancesRequest);
List<Instance> instances = runInstances.getReservation().getInstances();

然而,我遇到了这个错误:
AWS错误代码:InvalidAMIID.NotFound,AWS错误消息:AMI ID 'ami-c1aaabb5'不存在。
我已经在Amazon AWS控制台和此URL中找到了实例ID:http://cloud-images.ubuntu.com/releases/precise/release-20121001/ 我做错了什么?我该如何正确操作?
1个回答

9

我已经弄清楚了,默认情况下请求会发送到美国弗吉尼亚州的数据中心,设置正确的端点解决了问题。

public AmazonEC2 createAmazonEC2() {
    AmazonEC2 ec2 = new AmazonEC2Client(createAwsCredentials());
    ec2.setEndpoint("https://eu-west-1.ec2.amazonaws.com");
    return ec2;
}

private AWSCredentials createAwsCredentials() {
    AWSCredentials credentials = new BasicAWSCredentials(awsAccessKey, awsSecretKey);
    return credentials;
}

1
啊!那节省了我很多时间! - Shankar
我本来可以打开代码的,但是你的帖子在我有机会思考之前就救了我。非常感谢。 - Stephano

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接