Java InvalidAMIID.NotFound,AWS错误消息:AMI ID';ami-c1aaabb5';不存在

Java InvalidAMIID.NotFound,AWS错误消息:AMI ID';ami-c1aaabb5';不存在,java,amazon-ec2,amazon,Java,Amazon Ec2,Amazon,我正在尝试以编程方式启动一个64位的Ubuntu 12.04 LTS服务器,带有EBS。我编写了以下代码: Placement placement = new Placement("eu-west-1b"); RunInstancesRequest runInstancesRequest = new RunInstancesRequest() .withPlacement(placement).withInstanceType("t1.micro") .withImageId("

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

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();
安置=新安置(“eu-west-1b”);
RunInstanceRequest RunInstanceRequest=新的RunInstanceRequest()
.withPlacement(placement).withInstanceType(“t1.micro”)
.withImageId(“ami-c1aaabb5”)。withMinCount(1)。withMaxCount(1)
.WithSecurityGroupId(“testGroup”)。withKeyName(“testKey”)
.withUserData(Base64.encodeBase64String(startupScript.getBytes());
runInstanceResult runInstances=amazonEC2.runInstances(runInstancesRequest);
列表实例=runInstances.getReservation().getInstances();
但是,我得到了这个错误:

AWS错误代码:InvalidAMIID.NotFound,AWS错误消息: AMI ID“AMI-c1aaabb5”不存在

我在Amazon AWS控制台和以下URL中找到了该实例Id:


我做错了什么?

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

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;
}

啊!!这节省了我很多时间!我本来可以打开密码的,但在我有机会想那么多之前,你的帖子救了我。非常感谢。