Amazon ECR
用户指南 (API Version 2015-09-21)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

Amazon ECR 生命周期策略

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

生命周期策略模板

在将生命周期策略与存储库关联前,应评估其内容。以下是生命周期策略的 JSON 语法:

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

注意

仅当 tagStatustagged 时,才能使用 tagPrefixList 参数。仅当 countTypesinceImagePushed 时,才能使用 countUnit 参数。

生命周期策略参数

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

规则优先级

rulePriority

类型:整数

必需:是

当您向生命周期策略中添加规则时,必须赋予它一个特有的 rulePriority。但是,在策略中的各规则之间,值不需要顺序。

描述

description

类型:字符串

必需:否

描述是一个可选字段,用于描述生命周期策略中规则的用途。

标签状态

tagStatus

类型:字符串

必需:是

此字段决定您添加的生命周期策略规则是否为映像指定标签。可接受的选项有 taggeduntagged。如果指定 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) 的所有映像均过期。