Amazon ECR
用户指南 (API 版本 2015-09-21)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

Amazon ECR 生命周期策略

Amazon ECR 生命周期策略使您能够指定存储库中映像的生命周期管理。生命周期策略是一组规则,其中的每个规则为 Amazon ECR 定义一个操作。这些操作适用于包含前缀为给定字符串的标签的映像。这实现了自动清除未使用的映像,例如根据存在时间或计数使映像过期。您应该预计到在创建生命周期策略之后,受影响的映像将在 24 小时后到期。

生命周期策略模板

在将生命周期策略与存储库关联前,应评估其内容。以下是生命周期策略的 JSON 语法模板。有关生命周期策略示例,请参阅 生命周期策略示例

{ "rules": [ { "rulePriority": integer, "description": "string", "selection": { "tagStatus": "tagged"|"untagged"|"any", "tagPrefixList": list<string>, "countType": "imageCountMoreThan"|"sinceImagePushed", "countUnit": "string", "countNumber": integer }, "action": { "type": "expire" } } ] }

注意

仅当 tagPrefixListtagStatus 时,才能使用 tagged 参数。仅当 countUnitcountType 时,才能使用 sinceImagePushed 参数。仅当 countNumber 设置为 countType 时,才能使用 imageCountMoreThan 参数。

生命周期策略参数

生命周期策略分成以下几部分:

规则优先级

rulePriority

类型:整数

必需:是

设置评估规则的顺序,从低到高。当您向某个生命周期策略添加规则时,必须为每个规则赋予一个唯一的 rulePriority 值。但是,在策略中的各规则之间,值不需要顺序。具有 tagStatusany 的规则必须具有最大的 rulePriority 值并且最后被评估。

描述

description

类型:字符串

必需:否

(可选)描述生命周期策略中的规则的用途。

标签状态

tagStatus

类型:字符串

必需:是

确定您要添加的生命周期策略规则是否为映像指定标签。可接受的选项为 taggeduntaggedany。如果指定了 any,则所有映像都拥有应用于自身的规则。如果指定了 tagged,则还必须指定 tagPrefixList 值。如果指定了 untagged,则必须省略 tagPrefixList

标签前缀列表

tagPrefixList

类型:list[string]

必需:是,仅当 tagStatus 设置为 tagged 时

仅在指定了 "tagStatus": "tagged" 时使用。必须指定要使用生命周期策略对其执行操作的映像标签前缀的逗号分隔列表。例如,如果您的映像标记为 prodprod1prod2 等等,则使用标签前缀 prod 来指定所有这些映像。如果指定多个标签,则仅选择具有所有指定标签的映像。

计数类型

countType

类型:字符串

必需:是

指定要应用于映像的计数类型。如果将 countType 设置为 imageCountMoreThan,还要指定 countNumber 来创建一个规则以对存储库中存在的映像数设定限制。如果将 countType 设置为 sinceImagePushed,还要指定 countUnitcountNumber 来指定存储库中存在的映像的时间限制。

计数单位

countUnit

类型:字符串

必需:是,仅当 countType 设置为 sinceImagePushed

指定计数单位 days 作为时间单位,除此之外,还指定 countNumber 表示天数。

计数数值

countNumber

类型:整数

必需:是

指定计数数量。如果使用的 countTypeimageCountMoreThan,则该值为您希望在存储库中保留的映像的最大数量。如果使用的 countTypesinceImagePushed,则该值为您的映像的最长时间限制。

​操作

type

类型:字符串

必需:是

指定操作类型。支持的值为 expire

生命周期策略评估规则

生命周期策略评估程序负责解析纯文本 JSON 并将其应用于指定存储库中的映像。在创建生命周期策略时,应注意以下规则:

  • 使用正好一个或零个规则使一个映像过期。

  • 不能用优先级低的规则使符合优先级高的规则标记要求的映像过期。

  • 规则绝不能标记由优先级高的规则所标记的映像,但仍可以识别这些映像,就像它们还没有过期一样。

  • 规则组中必须包含一组独特的标签前缀。

  • 只允许一条规则来选择未标记的映像。

  • 始终按照 pushed_at_time 来排序映像过期顺序,始终使旧映像先过期,新映像后过期。

  • 在使用 tagPrefixList 时,如果 tagPrefixList 值中的所有 标签与某映像的任一标签匹配,则该映像成功匹配。

  • 利用 countType = imageCountMoreThan,将基于 pushed_at_time 对映像从新到旧排序,所有超过指定计数的映像均过期。

  • 利用 countType = sinceImagePushed,其 pushed_at_time 长于指定天数 (基于 countNumber) 的所有映像均过期。