使用组件自定义 Image Builder 镜像 - EC2 Image Builder
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

使用组件自定义 Image Builder 镜像

Image Builder 使用 EC2 Task Orchestrator and Executor (EC2 TOE) 组件管理应用程序来协调复杂的工作流程。基于 YAML 文档构建和测试与 EC2 TOE 应用程序配合使用的组件,这些文档定义了用于自定义或测试映像的脚本。对于 AMI 映像,Image Builder 会在其 Amazon EC2 构建和测试实例上安装 EC2 TOE 组件和组件管理应用程序。对于容器镜像,组件和 EC2 TOE 组件管理应用程序安装在正在运行的容器内。

Image Builder 用于 EC2 TOE 执行所有实例上的活动。在运行 Image Builder 命令或使用 Image Builder 控制台 EC2 TOE 时,无需进行其他设置即可进行交互。

注意

当 Amazon 托管的组件达到其支持的生命周期时,该组件将不再维护。在此情况发生前大约四周,任何正在使用该组件的账户都会收到通知,以及他们账户中受其 Amazon Health Dashboard影响的配方的列表。要了解更多信息 Amazon Health,请参阅《Amazon Health 用户指南》

构建新映像的工作流程期

用于构建新映像的 Image Builder 工作流程包括以下两个不同的时期。

  1. 构建期(快照前)— 在构建期,您可以对运行您的基础映像的 Amazon EC2 构建实例进行更改,以创建新映像的基准。例如,您的配方可以包含安装应用程序或修改操作系统防火墙设置的组件。

    组件文档中的以下阶段在构建阶段运行:

    • build

    • 验证

    成功完成此阶段后,Image Builder 会创建快照或容器映像,以供测试期和后续时期使用。

  2. 测试阶段(快照后)– 在测试阶段,创建 AMI 的映像与容器映像之间存在一些差异。对于 AMI 工作流,Image Builder 从其创建的快照启动 EC2 实例,作为构建阶段的最后一步。在新实例上运行测试以验证设置并确保该实例按预期运行。对于容器工作流,测试在用于构建的同一实例上运行。

    在映像构建测试阶段,组件文档中的以下阶段将针对配方中包含的每个组件运行:

    • 测试

    此组件期适用于“构建”和“测试”这两种组件类型。成功完成此时期后,Image Builder 可以根据快照或容器映像创建和分配最终映像。

注意

虽然 EC2 TOE 应用程序框架允许您在组件文档中定义许多阶段,但 Image Builder 对运行哪些阶段以及运行这些阶段有严格的规定。要使组件在映像构建阶段运行,组件文档必须至少定义以下阶段之一:buildvalidate。要使组件在映像测试阶段运行,组件文档必须定义test阶段,而不能定义其他阶段。

由于 Image Builder 独立运行各个时期,因此组件文档中的链接引用不能跨越时期边界。您不能将值从在构建期运行的阶段链接到在测试期运行的阶段。但是,您可以为预期目标定义输入参数,并通过命令行传入值。有关在 Image Builder 配方中设置组件参数的更多信息,请参阅 教程:使用来自 EC2 Image Builder 的输入参数创建自定义组件

为了帮助对构建或测试实例进行故障排除,请 EC2 TOE 创建一个包含输入文档和日志文件的日志文件夹,以跟踪组件每次运行时发生的情况。如果您在管道配置中配置了 Amazon S3 存储桶,则日志也会写入那里。有关 YAML 文档和日志输出的更多信息,请参阅 使用 EC2 TOE 组件文档框架创建自定义组件

提示

当需要跟踪多个组件时,标记可以帮助您根据分配给特定组件或版本的标签来识别该组件或版本。有关使用 Image Builder 命令为资源添加标签的更多信息 Amazon CLI,请参阅本指南的标记资源章节。

本节介绍如何使用 Image Builder 控制台或 Amazon CLI中的命令列出、查看、创建和导入组件。