Amazon ECR
ユーザーガイド (API バージョン 2015-09-21)

Amazon ECR ライフサイクルポリシー

Amazon ECR ライフサイクルポリシーで、リポジトリ内のイメージのライフサイクル管理を指定することができます。ライフサイクルポリシーは 1 つまたは複数のルールのセットであり、各ルールでは 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" } } ] }

注記

tagPrefixList パラメータは、tagStatustagged の場合のみ使用されます。countUnit パラメータは、countTypesinceImagePushed の場合のみ使用されます。countNumber パラメータは、countTypeimageCountMoreThan に設定されている場合のみ使用されます。

ライフサイクルポリシーのパラメータ

ライフサイクルポリシーは、次の部分に分けられます。

ルールの優先順位

rulePriority

タイプ: 整数

必須: はい

ルールが評価される順序を低いものから高いものへと設定します。ライフサイクルポリシーにルールを追加するときは、それぞれに rulePriority の一意の値を付ける必要があります。ポリシー内のルール間で値が連続している必要はありません。anytagStatus を持つルールは、rulePriority の最大値を持ち、最後に評価される必要があります。

説明

description

タイプ: 文字列

必須: いいえ

(オプション) ライフサイクルポリシー内のルールの目的について説明します。

タグステータス

tagStatus

タイプ: 文字列

必須: はい

追加するライフサイクルポリシーのルールがイメージのタグを指定するかどうかを決定します。使用できるオプションは、taggeduntagged、または any です。any を指定する場合は、すべてのイメージにルールが適用されます。tagged を指定する場合は、tagPrefixList 値も指定する必要があります。untagged を指定する場合は、tagPrefixList を省略する必要があります。

タグプレフィックスリスト

tagPrefixList

タイプ: list[string]

必須: tagStatus が [tagged] に設定されている場合のみ、必須

"tagStatus": "tagged" を指定した場合にのみ使用されます。ライフサイクルポリシーでアクションを実行するための、カンマ区切りのイメージタグプレフィックスのリストを指定する必要があります。たとえば、イメージに prodprod1prod2 というようにタグが付いている場合、すべてを指定するためにタグプレフィックス prod を使用します。複数のタグを指定する場合、指定されたすべてのタグが付いているイメージのみが選択されます。

カウントタイプ

countType

タイプ: 文字列

必須: はい

イメージに適用するカウントタイプを指定します。countTypeimageCountMoreThan に設定してある場合は、countNumber も指定して、リポジトリに存在するイメージ数の制限を設定するルールを作成します。countTypesinceImagePushed に設定してある場合は、countUnit および countNumber も指定して、リポジトリに存在するイメージの時間制限を指定します。

カウント単位

countUnit

タイプ: 文字列

必須: countTypesinceImagePushed に設定されている場合のみ、必須

日数を表す countNumber に加えて、カウント単位の days も時間単位として指定します。これを指定するのは countTypesinceImagePushed である場合に限ります。countType が他の値である場合にカウント単位を指定すると、エラーが発生します。

カウント数

countNumber

タイプ: 整数

必須: はい

カウント数を指定します。使用している countTypeimageCountMoreThan である場合、この値はリポジトリに維持するイメージの最大数です。使用している countTypesinceImagePushed である場合、この値はイメージの最大期限です。

アクション

type

タイプ: 文字列

必須: はい

アクションタイプを指定します。サポートされる値は expire です。

ライフサイクルポリシーの評価ルール

ライフサイクルポリシーの評価者は、プレーンテキスト JSON を解析し、指定したリポジトリ内のイメージへ適用します。ライフサイクルのポリシーを作成する際は次のルールに注意が必要です。

  • イメージは 1 または ゼロのルールで正確に期限切れとなります。

  • ルールのタグ付け要件に一致するイメージは、優先度がより低いルールによって期限切れにはなりません。

  • 優先度がより高いルールにマークされたイメージをルールがマークすることはありませんが、期限切れになっていないかのように識別できます。

  • 一連のルールには、一意の一連のタグプレフィックスを含める必要があります。

  • タグが付いていないイメージを選択できるのは 1 つのルールのみです。

  • 期限切れは常に pushed_at_time の順に並べられ、より古いイメージが新しいものよりも先に期限切れとなります。

  • tagPrefixList を使用する場合、tagPrefixList 値のすべてのタグがイメージのタグのいずれかと一致すると、イメージは正常に一致します。

  • countType = imageCountMoreThan では、イメージは期間の新しいものから始めて最も古いものへと pushed_at_time に基づいて順に並べられた後、指定したカウントより大きいイメージはすべて期限切れとなります。

  • countType = sinceImagePushed では、countNumber に基づき、pushed_at_time が指定された日数より古いすべてのイメージは期限切れとなります。