EC2 Image Builder - EC2 Image Builder
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

EC2 Image Builder

EC2 Image Builder 集成在一起Amazon监控和故障排除服务,以帮助您解决映像构建问题。Image Builder 跟踪并显示镜像生成过程中的每个步骤的进度。此外,Image Builder 可以将日志导出到您提供的 Amazon S3 位置。

对于高级故障排除,您可以使用以下操作:Amazon Systems ManagerRun Command.

诊断管道生成问

如果映像生成器管道构建失败,Image Builder 将返回描述失败的错误消息。Image Builder 还会在故障消息中返回 Systems Manager 执行 ID,例如,以下示例中的 ID。

Systems Manager execution 'aaaaaaaa-bbbb-cccc-dddd-example12345' failed with status…

Image Builder 使用Amazon Systems Manager自动化编排映像构建操作。要查看其他详细信息以帮助排除生成故障,请在 Systems Manager Automation 控制台中搜索 Image Builder 提供的执行 ID,然后查看 Automation 执行。

如果在您的账户中启用了 Amazon CloudTrail,则会在其中记录所有生成活动。按来源过滤 CloudTrail 事件imagebuilder.amazonaws.com或搜索在执行日志中返回的 Amazon EC2 实例 ID 以查看有关管道执行的更多详细信息。

默认情况下,Image Builder 会关闭管道失败时正在运行的 Amazon EC2 构建或测试实例。您可以更改管道使用的基础设施配置资源的实例设置,以保留构建或测试实例以进行故障排除。

要更改控制台中的实例设置,必须清除失败时终止实例复选框位于设置疑难解基础架构配置资源的部分。

使用更改实例设置imagebuilder update-infrastructure-configuration中的命令Amazon CLI中,设置terminateInstanceOnFailure值到false在该命令使用的 JSON 文件中--cli-input-json参数。有关详细信息,请参见更新基础设施配置(Amazon CLI)

您发送到 S3 存储桶的日志将显示映像生成过程中 EC2 实例上的活动的步骤和错误消息。这些日志包含来自组件管理器的日志输出、运行组件的定义以及在实例上执行的所有步骤的详细输出(以 JSON 编写)。如果遇到问题,则应从 application.log 开始查看这些文件,以诊断实例上的问题原因。

诊断场景

本节列出了以下详细的故障排除场景:

要查看场景的详细信息,请选择方案标题以将其展开。您可以同时扩展多个电子书。

Description

管道构建失败并显示 “AccessDenied:访问被拒绝状态代码:403"。

Cause

可能的原因包括:

  • 实例配置文件没有必需的权限访问 API 或组件资源。

  • 实例配置文件角色缺少登录 Amazon S3 所需的权限。通常,在实例配置文件角色没有 S3 存储桶的 PutObject 权限时,将会发生这种情况。

Solution

根据原因,可以按以下方式解决此问题:

  • 实例配置文件缺少托管策略— 将缺失的策略添加到您的实例配置文件角色。然后再次运行管道。

  • 实例配置文件缺少 S3 存储桶的写入权限— 向您的实例配置文件角色添加授予的策略PutObject写入 S3 存储桶的权限。然后再次运行管道。

Description

管道生成失败并显示 “status = 'TimedOut'” (状态 = 'TimedOut') 和 “失败消息 = “在步骤验证目标实例上的 Systems Manager 代理可用性时,步骤超时”。

Cause

可能的原因包括:

  • 启动以执行生成操作和运行组件的实例无法访问 Systems Manager 终端节点。

  • 实例配置文件没有必需的权限.

Solution

根据可能的原因,可以按如下方式解决此问题:

  • 访问问题,私有子网— 如果您在私有子网中构建,请确保已为 Systems Manager 器、Image Builder 设置 PrivateLink 终端节点,如果您想记录日志记录,则可以设置 Amazon s3/CloudWatch。有关设置 PrivateLink 终端节点的更多信息,请参阅。VPC 终端节点概念 (Amazon PrivateLink).

  • 缺少权限— 将以下托管策略添加到 Image Builder 的 IAM 服务相关角色:

    • 适用于映像生成器的 EC2 实例配置文件

    • ImageBuilder 的 EC2 实例配置文件 RECR 容器构建

    • AmazonSSMManagedInstanceCore

    有关 Image Builder 服务相关角色的更多信息,请参阅EC2 Image Builder 使用服务相关角色.

Description

如果用于构建 Image Builder Windows AMI 的实例类型与用于从 AMI 启动的实例类型不匹配,则可能会出现非根卷在启动时处于脱机状态的问题。这主要发生在构建实例使用比启动实例更新的架构时。

以下示例演示了在 EC2 Nitro 实例类型上构建映像生成器 AMI 并在 EC2 Xen 实例上启动时会发生什么情况:

构建实例类型: m5.large (硝基)

启动实例类型: t2.medium (Xen)

PS C:\Users\Administrator> get-disk Number Friendly Name Serial Number Health Status Operational Status Total Size Partition Style ------ ------------- ------------- ------------- ------------------ ---------- --------------- 0 AWS PVDISK vol0abc12d34e567f8a9 Healthy Online 30 GB MBR 1 AWS PVDISK vol1bcd23e45f678a9b0 Healthy Offline 8 GB MBR

Cause

由于 Windows 的默认设置,新发现的磁盘不会自动联机并进行格式化。当 EC2 上的实例类型发生更改时,Windows 将其视为正在发现的新磁盘。这是因为潜在的驱动因素发生了变化。

Solution

我们建议您在构建打算从中启动的 Windows AMI 时使用相同的实例类型系统。不要在基础架构配置中包括基于不同系统构建的实例类型。如果您指定的任何实例类型使用 Nitro 系统,那么它们都应该使用 Nitro 系统。

有关基于 Nitro 系统构建的实例的更多信息,请参阅。基于 Nitro 系统构建的实例中的Windows 实例 Amazon EC2 用户指南.

Description

您正在使用 CIS 强化的基础映像,构建失败。

Cause

/tmp目录被分类为noexec,它可能会导致 Image Builder 失败。

Solution

workingDirectory映像配方的字段。有关更多信息,请参阅 。ImageRecipe数据类型描述。