View a markdown version of this page

在 Image Builder 中管理配方 - EC2 Image Builder

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

在 Image Builder 中管理配方

EC2 映像生成器配方是创建自定义计算机映像的蓝图。配方指定了三个关键元素:

  1. 基础映像 — 映像(AMI、容器映像或导入的虚拟机)的起点。

  2. 组件 -自定义映像的构建和测试步骤。组件是可选的。此设计支持测试和仅限分发的工作流程。

  3. 配置 -存储容量、实例设置、工作目录和其他构建时参数。

图像生成器支持两种类型的食谱:

  • 映像配方生成亚马逊系统映像 (AMI),您可以使用它来启动亚马逊 EC2 实例。

  • 容器配方生成存储在 Amazon ECR 存储库中的Docker容器镜像。

食谱是不可改变的。在您创建配方后,您不能再修改或替换它。要更新组件或任何其他配置,必须创建新的配方或配方版本。映像生成器保留所有以前的版本。这使您可以将图像谱系追溯到生成每个输出的确切配方。您可以将标签应用到现有配方。有关使用映像生成器命令标记资源的更多信息 AWS CLI,请参阅本指南的标记资源部分。

提示

您可以在配方中使用亚马逊托管组件,也可以开发自己的自定义组件。有关更多信息,请参阅 为 Image Builder 映像开发自定义组件。对于创建输出 AMI 的图像配方,您还可以使用 AWS Marketplace 图像产品和组件。有关与 AWS Marketplace 产品集成的更多信息,请参阅AWS Marketplace 集成到图像生成器中

使用本节中的主题管理您的 EC2 Image Builder 配方,包括列出现有配方、查看其详细信息以及创建新的配方版本。

图像食谱与容器食谱的比较

下表比较了图像配方和容器配方的功能。

功能 映像配方 容器配方
Output AMI Docker亚马逊 ECR 中的容器镜像
基础图像来源 AMI ID、映像生成器映像 ARN、SSM 参数、产品 AWS Marketplace Docker Hub图片、亚马逊 ECR 图片、图片、 Amazon-managed 映像生成器映像 ARN
Dockerfile 不适用 必需(带有上下文变量的模板)
目标存储库 不适用 亚马逊 ECR(必填)
存储配置 输出 AMI 的块状设备映射 构建实例的区块设备映射
用户数据 支持(覆盖默认的 cloud-init) 在配方级别不支持
系统管理器代理控制 可配置(编译后卸载) 不可配置
AWS Marketplace 组件 支持 不支持
平台覆盖 不适用(从 AMI 检测到) 适用于亚马逊 ECR 和图片 Docker Hub

食谱版本控制

<major>每个配方都使用该格式的语义版本控制。<minor>。<patch>。每个版本节点接受从 0 到 1,073,741,823 (2^30-1) 之间的值。

可以在一个位置使用通配符 (x) 来启用自动版本递增。当您使用通配符版本创建配方时,Image Builder 会将替换为该位置的下一个可用数字。x

模式 行为 示例序列
1.0.x 增加补丁号 1.0.1、1.0.2、1.0.3、...
1.x.0 增加次要数字 1.1.0、1.2.0、1.3.0、...
x.0.0 增加主数字 1.0.0、2.0.0、3.0.0、...

以下规则适用于通配符版本:

  • 每个版本字符串只允许使用一个x通配符。

  • 通配符可以出现在任何单个位置(主要、次要或补丁)。

  • 其余位置的数值必须是显式整数。

提示

在 CI/CD 自动化中使用通配符版本,这样您就不必手动跟踪和增加配方版本。每次使用相同的通配符创建配方时,Image Builder 都会解析下一个可用版本。例如,始终使用的配方1.0.x解析为1.0.11.0.2、然后依此类推。要了解有关 Image Builder 资源的语义版本控制的更多信息,请参阅Image Builder 中的语义版本控制

配方限制和限制

在创建配方之前,请查看以下限制。

约束 限制 注意
每个食谱的成分 20(默认) 包括构建和测试组件。您可以通过以下方式申请加薪 AWS Support。
最大配方大小 25 KB 所有组件配置的累积大小,包括参数值。
每张输出图像的产品代码 9 由基础映像和 AWS Marketplace 组件组合而成。
组件的唯一性 每个食谱一个 同一个组件(无论版本如何)只能出现一次。
版本节点最大值 1,073,741,823 每个节点(主节点、次要节点或补丁节点)。
配方名称 无法更改 名称在创建后是固定的。为不同的名称创建新配方。

组件还必须满足以下兼容性要求:

  • 组件必须与配方的平台(Linux、Windows 或 macOS)相匹配。

  • 当操作系统版本元数据可用时,组件必须支持父映像的操作系统版本。

  • DISABLED状态为DEPRECATED或的组件无法添加到新配方中。

  • CIS 强化组件需要 CIS-published 父映像。

清理资源

为避免意外费用,请务必清理根据本指南中的示例创建的资源和管道。有关删除 Image Builder 中的资源的更多信息,请参阅 删除过期或未使用的 Image Builder 资源