使用 EC2 Image Builder 导入和导出虚拟机 (VM) 映像 - EC2 Image Builder
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 EC2 Image Builder 导入和导出虚拟机 (VM) 映像

当您从虚拟化环境中导出 VM 时,该过程会创建一个或多个磁盘容器文件,这些文件充当 VM 环境、设置和数据的快照。您可以使用这些文件导入 VM,并将其用作映像配方的基础映像。

对于 VM 磁盘容器,Image Builder 支持以下文件格式:

  • 开放虚拟化归档 (OVA)

  • 虚拟机磁盘 (VMDK)

  • 虚拟硬盘 (VHD/VHDX)

  • 原始

导入时使用磁盘来创建 Amazon Machine Image (AMI) 和 Image Builder 映像资源,这两者都可以用作自定义映像配方的基础映像。VM 磁盘必须存储在 S3 存储桶中才能导入。另外,也可以现有 EBS 快照中导入。

在 Image Builder 控制台中,您可以直接导入映像,然后在配方中使用输出映像或 AMI,也可以在创建配方或配方版本时指定导入参数。有关直接导入的更多信息,请参阅 导入虚拟机(控制台)。有关作为映像配方的一部分进行导入的更多信息,请参阅 虚拟机导入配置

将 VM 导入 Image Builder (Amazon CLI)

要将虚拟机从磁盘导入 AMI 并创建可以立即引用的 Image Builder 映像资源,请在 Amazon CLI中执行以下操作:

  1. 使用 Amazon CLI中的 Amazon EC2 VM Import/Export import-image 命令启动 VM 导入。记下命令响应中返回的任务 ID。下一步中您将需要使用该值。有关更多信息,请参阅 VM Import/Export 用户指南 中的使用 VM Import/Export 将虚拟机作为映像导入

  2. 创建 CLI 输入 JSON 文件

    为了简化中使用的 Image Builder import-vm-image 命令 Amazon CLI,我们创建了一个 JSON 文件,其中包含我们要传递到命令中的所有导入配置。

    注意

    JSON 文件中数据值的命名惯例遵循为 Image Builder API 操作请求参数指定的模式。要查看 API 命令请求参数,请参阅《EC2 Image Builder API 参考》中的ImportVmImage命令。

    要将数据值作为命令行参数提供,请参阅Amazon CLI 命令参考中指定的参数名。将 Image Builder import-vm-image 命令作为选项。

    以下是我们在此示例中指定的参数的摘要:

    • 名称(字符串,必填)— 要从导入中作为输出而创建的 Image Builder 映像资源的名称。

    • semanticVersion(字符串,必填)— 输出映像的语义版本,按以下格式指定版本,每个位置都有数值表示特定版本:<major>.<minor>.<patch>。例如,1.0.0。要了解有关 Image Builder 资源的语义版本控制的更多信息,请参阅 Semantic 版本控制

    • 描述(字符串)— 映像配方的描述。

    • 平台(字符串,必填)— 导入的 VM 的操作系统平台。

    • vmImportTaskID(字符串,必填)— Amazon EC2 虚拟机导入过程中的 ImportTaskId (Amazon CLI)。Image Builder 会监控导入过程,以提取其创建的 AMI,并构建可立即用于配方的 Image Builder 映像资源。

    • clientToken(字符串,必填)— 用于确保请求的幂等性而提供的唯一、区分大小写的标识符。有关更多信息,请参阅 Amazon EC2 API 参考 中的确保幂等性

    • 标签(字符串映射)— 标签是附加到导入资源的键值对。最多允许 50 个键值对。

    将文件另存为 import-vm-image.json,以便在 Image Builder import-vm-image 命令中使用。

    { "name": "example-request", "semanticVersion": "1.0.0", "description": "vm-import-test", "platform": "Linux", "vmImportTaskId": "import-ami-01ab234567890cd1e", "clientToken": "asz1231231234cs3z", "tags": { "Usage": "VMIE" } }
  3. 导入映像

    使用您创建的文件作为输入并运行 import-vm-image 命令:

    aws imagebuilder import-vm-image --cli-input-json file://import-vm-image.json
    注意
    • JSON 文件路径开头必须包含 file:// 符号。

    • JSON 文件的路径应遵循运行命令的基本操作系统的相应约定。例如,Windows 使用反斜杠 (\) 引用目录路径,Linux 则使用正斜杠 (/)。

从您的映像生成 (Amazon CLI) 中分配 VM 磁盘

在常规映像构建过程中,您可以使用 Amazon CLI中的 Image Builder 分配配置,设置将支持的 VM 磁盘格式文件分配到目标区域的 S3 存储桶。有关更多信息,请参阅 为输出 VM 磁盘创建分配设置 (Amazon CLI)