本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
生命周期策略的执行工作原理
Image Builder 会定期运行已启用的生命周期策略。每次运行都是一次执行。在执行期间,Image Builder 会根据策略规则评估您的图像资源并执行指定的生命周期操作。
执行时间表
Image Builder 每天运行一次已启用的生命周期策略。
-
Image Builder 管理确切的执行时间。您无法对其进行配置。
-
每个策略一次只能运行一次执行。正在执行或待处理的执行仍在继续,而不是开始新的执行。
-
禁用的策略不会运行,禁用策略会阻止任何待执行的处理新资源。
执行状态
使用控制台中的 RunLog 选项卡或 list-lifecycle-exections 命令监控生命
IN_PROGRESS-
Image Builder 正在积极评估资源并执行生命周期操作。
PENDING-
处理已暂停。它将在下次计划运行期间恢复。
SUCCESS-
Image Builder 成功处理了所有适用的资源。
FAILED-
一个或多个资源操作遇到错误。使用 list-lifecycle-execycle-exection-resources 命令确定哪些资源出现故障以及失
败原因 CANCELLING-
Image Builder 收到了取消申请,正在完成当前的处理步骤。
CANCELLED-
处决已取消。Image Builder 不会回滚取消之前处理的资源。
如何评估资源
Image Builder 使用以下步骤从最新到最旧(按创建日期)评估图像资源:
-
资源选择 — Image Builder 可识别与策略范围相匹配的所有图像资源,这些资源由配方筛选器(包括版本模式)或标签过滤器定义。
-
主动生成检查 — Image Builder 会跳过正在构建(构建、测试或分发状态)的图像,并在下次运行时对其进行评估。
-
规则评估 — Image Builder 按优先顺序评估规则:弃用、禁用、删除。每次执行只有一个操作适用于每张图像。如果图像符合弃用规则,Image Builder 将在同一次运行期间跳过该图像的禁用和删除规则。
评估因规则类型而异:
- 对于弃用和禁用规则
-
-
年龄过滤器检查(如果已配置)— Image Builder 会检查图像是否超过指定的阈值。
-
Image-level 标签排除检查 (
exclusionRules.tagMap)-Image Builder 会跳过带有排除标签的图像。
-
- 对于删除规则
-
-
年龄或计数过滤器检查-对于年龄,Image Builder 会检查图像是否超过阈值。对于 COUNT,Image Builder 会检查是否已达到保留计数。
-
检查失败或已取消-处于 “失败” 或 “已取消” 状态的图像符合删除条件,并且不会占用保留时段。
-
保留检查-如果您配置了
retainAtLeast值(年龄过滤器)或计数值(COUNT 过滤器),则最新的图像会首先填充保留空白。填充保留槽的图像无需进一步评估即可保留。 -
Image-level 标签排除检查 (
exclusionRules.tagMap)-对于通过保留检查的图像(原本会被删除的图像),Image Builder 会检查排除标签。如果存在,Image Builder 会跳过该图像。
重要
Image Builder 先评估留存率,然后再排除标签。无论排除标签如何,保留期内的图像都将受到保护。标签排除仅适用于超过保留期限的图片。
不包含标签的图像不会占用保留时段,也不会影响其他图像的保留计数。
-
-
AMI-level 排除检查 — 确定符合条件的图像后,Image Builder 会根据AMI-level 排除规则评估其输出 AMI()
exclusionRules.amis。这些规则包括区域排除、公共 AMI 排除、AMI 标签排除、共享账户排除和上次启动的排除。Image Builder 报告符合任何排除标准的输出 AMI,SKIPPED并附上表示匹配条件的原因。
注意
如果先前已弃用的资源符合标准,则后续执行会将禁用或删除规则应用于这些资源。
删除规则的保留工作原理
保留过滤器(年龄和计数)会根据 Image Builder 图像资源进行评估,而不是直接输出 AMI 或容器。Image Builder 会保留每个配方版本的最新图像,并标记较旧的图像以供删除。
有关留存率计算的详细逻辑,包括基于年龄和基于计数的筛选行为,请参阅。如何计算留存率
手动管理资源状态
您可以使用 start-r esource-state-update 命令触发特定映像构建版本的即时生命周期状态
支持的过渡:
-
弃用-将图片标记为已弃用。
-
禁用-阻止映像启动新实例。
-
删除-删除图像及其关联资源(必须至少指定一种关联的资源类型)。
-
可用-将已弃用或禁用的图像恢复到可用状态。
每次手动状态更改都会创建单独的生命周期执行。使用 list-lifecycle-exec
取消处决
使用取消生命周期执行命令或 Image Builder 控制台取消
当你取消执行时:
-
在完成当前资源操作
CANCELLING时,执行会过渡到。 -
当前操作完成后,执行将转换为
CANCELLED。 -
Image Builder 不会回滚已经处理过的资源。例如,取消之前已弃用的图片仍不推荐使用。
-
Image Builder 会跳过未处理的资源。
生命周期策略如何处理外部修改的资源
您或其他 AWS 服务可以在 Image Builder 生命周期策略之外修改您账户中的资源。外部修改示例:
-
通过亚马逊 EC2 控制台注销 AMI
-
使用亚马逊 EC2 API 弃用 AMI
-
从 Amazon ECR 存储库中删除容器镜像
-
使用 Image Builder API 删除 Image Builder 图像资源
如果资源已被删除或已处于所需状态,Image Builder 会将该操作报告为SUCCESS。当通过其他方式清理资源时,该策略不会失败。
注意
SKIPPED状态是不同的。Image Builder SKIPPED 仅在资源存在但排除规则阻止该操作时才会报告。
监控执行结果
在两个级别监控生命周期执行结果:
- 执行级别
-
查看策略的所有执行情况,包括状态、开始时间和结束时间。
-
控制台-打开生命周期策略详细信息页面并选择RunLog选项卡。有关更多信息,请参阅 RunLog 选项卡。
-
AWS CLI— 使用生命周期策略 ARN 运行列表生命周期执行。
-
- 资源等级
-
查看执行中每种资源的结果。
-
控制台-在RunLog选项卡中,选择执行 ID 以查看已处理的资源。
-
AWS CLI— 使用执行 ID 运行列表生命周期
执行资源。
每个资源条目包括:
-
资源 ARN
-
已采取(或已尝试)的操作
-
资源状态(
SUCCESSFAILED、或SKIPPED) -
结果的原因(对于跳过或失败的资源特别有用)
-