EC2 映像生成器 故障排除 - EC2 映像生成器
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

EC2 映像生成器 故障排除

EC2 映像生成器 与 AWS 服务集成在一起以进行监控和故障排除,从而帮助您解决映像生成问题。EC2 映像生成器 跟踪并显示映像生成过程中的每个步骤的进度。可以将日志导出到您提供的 Amazon S3 位置。对于高级故障排除,您可以使用 AWS Systems Manager (SSM) Run Command 运行预定义的命令和脚本。

常规故障排除

如果 镜像生成器 管道发生故障,Image Builder 将返回描述故障的错误消息。镜像生成器 还会在故障消息中返回 SSM 执行 ID,例如,以下示例中的 ID。

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

在生成映像时,镜像生成器 使用 AWS Systems Manager (SSM) Automation 编排操作。要查看其他详细信息以帮助排除生成故障,请在 SSM Automation 控制台中搜索 镜像生成器 提供的执行 ID,然后检查 Automation 执行。

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

默认情况下,在管道完成时,用于生成和测试活动的 Amazon EC2 实例将终止。如果遇到管道故障,您可以选择保留该实例以进行故障排除。如果遇到故障并希望访问该实例以调试问题,请为管道取消选择“Terminate instance on failure”(失败时终止实例) 选项。

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

诊断场景

  • 生成失败并显示“AccessDenied: Access Denied status code: 403”(AccessDenied: 访问被拒绝状态代码: 403)

    • 问题:实例配置文件角色没有所需的权限以访问组件使用的 API 或资源,或没有所需的权限以记录到 S3。通常,在实例配置文件角色没有 S3 存储桶的 PutObject 权限时,或者在实例配置文件没有与之关联的以下角色策略时,将会发生这种情况:EC2InstanceProfileForImageBuilderAmazonSSMManagedInstanceCore

    • 解决方法:在实例配置文件角色中添加一个策略以授予访问配方中使用的 API 和资源的权限,或者将 EC2InstanceProfileForImageBuilderAmazonSSMManagedInstanceCore IAM 角色策略附加到实例配置文件。

    • 问题:实例配置文件角色没有所需的权限以访问组件使用的 API 或资源,或没有所需的权限以记录到 S3。通常,在实例配置文件角色没有 S3 存储桶的 PutObject 权限时,将会发生这种情况。

    • 解决方法:在实例配置文件角色中添加一个策略以授予访问配方中使用的 API 和资源的权限,然后再次运行管道。

  • 生成失败并显示“status = 'TimedOut'”(状态 =“超时”) 和“failure message = 'Step timed out while step is verifying the SSM Agent availability on the target instance(s)'”(失败消息 =“在步骤验证目标实例上的 SSM 代理可用性时,步骤超时”)

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

    • 解决方法:确保用于生成映像的子网有权访问并路由到 Systems Manager 终端节点。