我想从我目前拥有的快照创建一个AMI。我正在使用ImportImageRequest来完成任务。以下是我的一段代码。
ImportImageResult iir = ec2.importImage(new ImportImageRequest().withDiskContainers(new ImageDiskContainer().withSnapshotId("snap-3b4pd121")));
System.out.println(iir.toString());
System.out.println(iir.getImportTaskId());
System.out.println(iir.getImageId());
输出结果为
{ImportTaskId: import-ami-ffwthmw7,SnapshotDetails: [{DiskImageSize: 0.0,}],Progress: 2,StatusMessage: pending,Status: active}
import-ami-ffwthmw7
null
这意味着图像Id为空。我无法推断出原因。我也试过describeImage()
来获取更多信息,但没有找到任何信息。但它适用于其他图像。
答案 0 :(得分:0)
导入图片需要一段时间。对importImage
的调用返回得非常快,但执行工作的后台任务仍在运行。
致电importImage
后,请致电describeImportImageTasks
以获取后台任务的状态。找到您感兴趣的ImportImageTask
并查看getStatus
和getProgress
,了解事情的进展情况。继续致电describeImportImageTasks
,直到您看到导入已完成。
完成后,将填写有关结果的所有详细信息。
当AWS Java SDK文档(例如,javadoc)严重不完整时(就像在这种情况下一样),我发现查看相应命令行API调用的文档很有用。对于example
使用describe-import-image-tasks命令返回状态 导入任务。
状态值包括以下内容:
活动 - 导入任务正在进行中。
删除 - 导入任务正在取消。
已删除 - 导入任务已取消。
已完成 - 导入任务已完成且AMI已准备就绪。