使用组件自定义 Image Builder 镜像 - EC2Image Builder

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

使用组件自定义 Image Builder 镜像

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

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

注意

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

构建新映像的工作流程期

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

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

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

    • build

    • 验证

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

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

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

    • 测试

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

注意

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

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

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

提示

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

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