为 AMI 创建和更新分发设置 - EC2 Image Builder
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

为 AMI 创建和更新分发设置

本节介绍创建和更新 Image Builder 输出 AMI 的分发设置。

为输出 AMI 创建分发设置 (Amazon CLI)

通过使用分配配置,您可以指定输出 AMI 的名称和描述,授权其他Amazon Web Services 账户s 以启动 AMI,将 AMI 复制到其他账户,然后将 AMI 复制到其他账户Amazon地区。此外,您还可以将 AMI 导出到 Amazon Simple Storage Service (Amazon S3),或者为输出 Windows AMI 配置更快启动。要公开 AMI,请将启动许可授权账户设置为 all。请参阅以下网址公开 AMI 示例。EC2ModifyImage属性.

下面的示例演示如何使用create-distribution-configuration命令为 AMI 创建分发设置,使用Amazon CLI.

  1. 创建 CLI 输入 JSON 文件

    使用您最喜欢的文件编辑工具创建 JSON 文件,其中包含以下示例所示的密钥以及对您的环境有效的值。此示例使用名为 create-ami-distribution-configuration.json 的文件:

    { "name": "MyExampleDistribution", "description": "Copies AMI to eu-west-1 and exports to S3", "distributions": [ { "region": "us-west-2", "amiDistributionConfiguration": { "name": "Name {{imagebuilder:buildDate}}", "description": "An example image name with parameter references", "amiTags": { "KeyName": "Some Value" }, "launchPermission": { "userIds": [ "987654321012" ] } } }, { "region": "eu-west-1", "amiDistributionConfiguration": { "name": "My {{imagebuilder:buildVersion}} image {{imagebuilder:buildDate}}", "amiTags": { "KeyName": "Some value" }, "launchPermission": { "userIds": [ "100000000001" ] } } } ] }
  2. 使用创建的文件作为输入,运行以下命令。

    aws imagebuilder create-distribution-configuration --cli-input-json file://create-ami-distribution-configuration.json
    注意
    • JSON 文件路径开头必须包含 file:// 符号。

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

    有关更多详细信息,请参阅create-distribution-configuration中的Amazon CLI命令参考.

创建分发设置以更快地启动 Windows AMI (Amazon CLI)

下面的示例演示如何使用create-distribution-configuration命令来创建为 AMI 配置的更快启动的分发设置,使用Amazon CLI.

  1. 创建 CLI 输入 JSON 文件

    使用您最喜欢的文件编辑工具创建 JSON 文件,其中包含以下示例所示的密钥以及对您的环境有效的值。此示例使用名为 ami-dist-config-win-faster-launch.json 的文件:

    { "name": "WinFasterLaunchDistribution", "description": "An example of Windows AMI faster launching settings in the distribution configuration.", "distributions": [ { "region": "us-west-2", "amiDistributionConfiguration": { "name": "Name {{imagebuilder:buildDate}}", "description": "Includes Windows AMI faster launch settings with cross-account distribution.", "amiTags": { "KeyName": "Some Value" }, "fastLaunchConfigurations": [{ "enabled": true, "snapshotConfiguration": { "targetResourceCount": 5 }, "maxParallelLaunches": 5, "launchTemplate": { "launchTemplateID": "lt-0ab1234c56d789012", "launchTemplateName": "Launch template for faster launching", "launchTemplateVersion": "1", } "accountId": "123456789012" }] } } ] }
  2. 使用创建的文件作为输入,运行以下命令。

    aws imagebuilder create-distribution-configuration --cli-input-json file://ami-dist-config-win-faster-launch.json
    注意
    • JSON 文件路径开头必须包含 file:// 符号。

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

    有关更多详细信息,请参阅create-distribution-configuration中的Amazon CLI命令参考.

为输出虚拟机磁盘创建分发设置 (Amazon CLI)

下面的示例演示如何使用create-distribution-configuration命令来创建分发设置,该设置将在每次映像构建时将虚拟机映像磁盘导出到 Amazon S3。

  1. 创建 CLI 输入 JSON 文件

    要简化imagebuilder create-distribution-configuration中使用的命令Amazon CLI,我们创建了一个 JSON 文件,其中包含我们想传递给命令的所有导出配置。

    注意

    JSON 文件中数据点的命名约定遵循为 Image Builder API 命令请求参数指定的模式。要查看 API 命令请求参数,请参阅CreateDistribution配置中的命令EC2 Image Builder API 参考.

    不要使用此命名约定将这些数据点直接提供给imagebuilder create-distribution-configuration命令作为选项。

    以下是我们在s3ExportConfiguration这个例子的 JSON 对象:

    • RolName(字符串,必填)— 授予虚拟机导入/导出权限以将映像导出到 S3 存储桶的角色的名称。

    • diskImageFormat(字符串,必填)— 将更新后的磁盘映像导出为以下支持的格式之一:

      • 虚拟硬盘 (VHD)— 与 Citrix Xen 和 Microsoft Hyper-V 虚拟化产品兼容。

      • 流优化的 ESX 虚拟机磁盘 (VMDK)— 与 VMware ESX 和 VMware vSphere 版本 4、5 和 6 相兼容。

      • 原始— RAW 格式。

    • S3Bucket(字符串,必填)— 用于存储虚拟机输出磁盘镜像的 S3 存储桶。

    将文件另存为export-vm-disks.json,以便在imagebuilder create-distribution-configuration命令。

    { "name": "example-distribution-configuration-with-vm-export", "description": "example", "distributions": [ { "region": "us-west-2", "amiDistributionConfiguration": { "description": "example-with-vm-export" }, "s3ExportConfiguration": { "roleName": "vmimport", "diskImageFormat": "RAW", "s3Bucket": "vm-bucket-export" } }], "clientToken": "abc123def4567ab" }
  2. 使用创建的文件作为输入,运行以下命令。

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

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

    有关更多详细信息,请参阅create-distribution-configuration中的Amazon CLI命令参考.

更新 AMI 分发设置 (Amazon CLI)

下面的示例演示如何使用update-distribution-configuration命令来更新 AMI 的分发设置,使用Amazon CLI.

  1. 创建 CLI 输入 JSON 文件

    使用您最喜欢的文件编辑工具创建 JSON 文件,其中包含以下示例中显示的键以及对您的环境有效的值。此示例使用名为的文件update-ami-distribution-configuration.json.

    { "distributionConfigurationArn": "arn:aws:imagebuilder:us-west-2:123456789012:distribution-configuration/update-ami-distribution-configuration.json", "description": "Copies AMI to eu-west-2 and exports to S3", "distributions": [ { "region": "us-west-2", "amiDistributionConfiguration": { "name": "Name {{imagebuilder:buildDate}}", "description": "An example image name with parameter references", "launchPermissions": { "userIds": [ "987654321012" ] } } }, { "region": "eu-west-2", "amiDistributionConfiguration": { "name": "My {{imagebuilder:buildVersion}} image {{imagebuilder:buildDate}}", "tags": { "KeyName": "Some value" }, "launchPermissions": { "userIds": [ "100000000001" ] } } } ] }
  2. 使用创建的文件作为输入,运行以下命令。

    aws imagebuilder update-distribution-configuration --cli-input-json file://update-ami-distribution-configuration.json
    注意
    • JSON 文件路径开头必须包含 file:// 符号。

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

    有关更多详细信息,请参阅update-distribution-configuration中的Amazon CLI命令参考. 要更新分发配置资源的标签,请参阅标记资源部分。