翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon でのライフサイクルポリシーの例 ECR
構文を示すライフサイクルポリシーの例を次に示します。
ポリシープロパティの詳細については、「」を参照してくださいAmazon のライフサイクルポリシープロパティ ECR。を使用してライフサイクルポリシーを作成する手順については AWS CLI、「」を参照してくださいライフサイクルポリシーを作成するには (AWS CLI)。
ライフサイクルポリシーのテンプレート
ライフサイクルポリシーの内容は、リポジトリに関連付ける前に評価されます。以下は、ライフサイクルポリシーのJSON構文テンプレートです。
{
"rules": [
{
"rulePriority": integer
,
"description": "string
",
"selection": {
"tagStatus": "tagged
"|"untagged
"|"any
",
"tagPatternList": list<string>
,
"tagPrefixList": list<string>
,
"countType": "imageCountMoreThan
"|"sinceImagePushed
",
"countUnit": "string
",
"countNumber": integer
},
"action": {
"type": "expire"
}
}
]
}
イメージの経過日数によるフィルタリング
次の例は、prod*
の tagPatternList
が同様に 14
日より古いものを使用することにより、prod
で始まるタグでイメージを有効期限切れにするポリシーのライフサイクルポリシー構文を示しています。
{ "rules": [ { "rulePriority": 1, "description": "Expire images older than 14 days", "selection": { "tagStatus": "tagged", "tagPatternList": ["prod*"], "countType": "sinceImagePushed", "countUnit": "days", "countNumber": 14 }, "action": { "type": "expire" } } ] }
イメージ数によるフィルタリング
次の例で、タグ付けされていないイメージを 1 つだけ保持して残りはすべて期限切れにするポリシーのライフサイクルポリシーの構文を示します。
{ "rules": [ { "rulePriority": 1, "description": "Keep only one untagged image, expire all others", "selection": { "tagStatus": "untagged", "countType": "imageCountMoreThan", "countNumber": 1 }, "action": { "type": "expire" } } ] }
複数のルールによるフィルタリング
以下は、ライフサイクルポリシーで複数のルールを使用する例です。サンプルのリポジトリとライフサイクルポリシーが結果の説明とともに示されています。
例 A
リポジトリのコンテンツ
-
Image A, Taglist: ["beta-1", "prod-1"], Pushed: 10 days ago
-
Image B, Taglist: ["beta-2", "prod-2"], Pushed: 9 days ago
-
Image C, Taglist: ["beta-3"], Pushed: 8 days ago
ライフサイクルポリシーのテキスト
{ "rules": [ { "rulePriority": 1, "description": "Rule 1", "selection": { "tagStatus": "tagged", "tagPatternList": ["prod*"], "countType": "imageCountMoreThan", "countNumber": 1 }, "action": { "type": "expire" } }, { "rulePriority": 2, "description": "Rule 2", "selection": { "tagStatus": "tagged", "tagPatternList": ["beta*"], "countType": "imageCountMoreThan", "countNumber": 1 }, "action": { "type": "expire" } } ] }
このライフサイクルポリシーのロジックは次のようになります。
-
ルール 1 は、
prod
というプレフィックスでタグ付けされたイメージを特定します。最も古いイメージから始めて、一致するイメージが 1 つか数個になるまでマークし続けます。イメージ A が期限切れとしてマークされます。 -
ルール 2 は、
beta
というプレフィックスでタグ付けされたイメージを特定します。最も古いイメージから始めて、一致するイメージが 1 つか数個になるまでマークし続けます。イメージ A とイメージ B の両方が期限切れとしてマークされます。ただし、イメージ A はルール 1 ですでに確認されていて、もしイメージ B が期限切れであれば、ルール 1 に違反してしまうので、スキップされます。 -
結果: イメージ A は期限切れです。
例 B
これは前の例と同じリポジトリですが、結果を説明するためにルールの優先順位が変更されています。
リポジトリのコンテンツ
-
Image A, Taglist: ["beta-1", "prod-1"], Pushed: 10 days ago
-
Image B, Taglist: ["beta-2", "prod-2"], Pushed: 9 days ago
-
Image C, Taglist: ["beta-3"], Pushed: 8 days ago
ライフサイクルポリシーのテキスト
{ "rules": [ { "rulePriority": 1, "description": "Rule 1", "selection": { "tagStatus": "tagged", "tagPatternList": ["beta*"], "countType": "imageCountMoreThan", "countNumber": 1 }, "action": { "type": "expire" } }, { "rulePriority": 2, "description": "Rule 2", "selection": { "tagStatus": "tagged", "tagPatternList": ["prod*"], "countType": "imageCountMoreThan", "countNumber": 1 }, "action": { "type": "expire" } } ] }
このライフサイクルポリシーのロジックは次のようになります。
-
ルール 1 は、
beta
というプレフィックスでタグ付けされたイメージを特定します。最も古いイメージから始めて、一致するイメージが 1 つか数個になるまでマークし続けます。3 つのすべてのイメージが確認され、イメージ A とイメージ B が期限切れとしてマークされます。 -
ルール 2 は、
prod
というプレフィックスでタグ付けされたイメージを特定します。最も古いイメージから始めて、一致するイメージが 1 つか数個になるまでマークし続けます。今回は、使用可能なイメージはすべてルール 1 で確認済みのため、確認できるイメージがありません。そのため、追加でイメージをマークすることはありません。 -
結果: イメージ A と B は期限切れです。
単一のルールで複数のタグをフィルタリングする
次の例で、1 つのルールでの複数のタグパターンのライフサイクルポリシーの構文を指定します。サンプルのリポジトリとライフサイクルポリシーが結果の説明とともに示されています。
例 A
1 つのルールで複数のタグパターンが指定されたときは、イメージはすべてのリストされたタグパターンに一致する必要があります。
リポジトリのコンテンツ
-
Image A, Taglist: ["alpha-1"], Pushed: 12 days ago
-
Image B, Taglist: ["beta-1"], Pushed: 11 days ago
-
Image C, Taglist: ["alpha-2", "beta-2"], Pushed: 10 days ago
-
Image D, Taglist: ["alpha-3"], Pushed: 4 days ago
-
Image E, Taglist: ["beta-3"], Pushed: 3 days ago
-
Image F, Taglist: ["alpha-4", "beta-4"], Pushed: 2 days ago
{ "rules": [ { "rulePriority": 1, "description": "Rule 1", "selection": { "tagStatus": "tagged", "tagPatternList": ["alpha*", "beta*"], "countType": "sinceImagePushed", "countNumber": 5, "countUnit": "days" }, "action": { "type": "expire" } } ] }
このライフサイクルポリシーのロジックは次のようになります。
-
ルール 1 は、
alpha
とbeta
というプレフィックスでタグ付けされたイメージを特定します。イメージ C と F が確認されます。5 日より古いイメージをマークするので、イメージ C がマークされます。 -
結果: イメージ C は期限切れです。
例 B
次の例では、タグは排他的ではないことを説明します。
リポジトリのコンテンツ
-
Image A, Taglist: ["alpha-1", "beta-1", "gamma-1"], Pushed: 10 days ago
-
Image B, Taglist: ["alpha-2", "beta-2"], Pushed: 9 days ago
-
Image C, Taglist: ["alpha-3", "beta-3", "gamma-2"], Pushed: 8 days ago
{ "rules": [ { "rulePriority": 1, "description": "Rule 1", "selection": { "tagStatus": "tagged", "tagPatternList": ["alpha*", "beta*"], "countType": "imageCountMoreThan", "countNumber": 1 }, "action": { "type": "expire" } } ] }
このライフサイクルポリシーのロジックは次のようになります。
-
ルール 1 は、
alpha
とbeta
というプレフィックスでタグ付けされたイメージを特定します。すべてのイメージが確認されます。最も古いイメージから始めて、一致するイメージが 1 つか数個になるまでマークし続けます。イメージ A と B が期限切れとしてマークされます。 -
結果: イメージ A と B は期限切れです。
すべてのイメージでのフィルタリング
次のライフサイクルポリシーの例では、異なるフィルタですべてのイメージを指定します。サンプルのリポジトリとライフサイクルポリシーが結果の説明とともに示されています。
例 A
次に、すべてのルールを適用する一方、イメージを 1 つだけ保持して残りはすべて期限切れにするポリシーのライフサイクルポリシーの構文を示します。
リポジトリのコンテンツ
-
Image A, Taglist: ["alpha-1"], Pushed: 4 days ago
-
Image B, Taglist: ["beta-1"], Pushed: 3 days ago
-
Image C, Taglist: [], Pushed: 2 days ago
-
Image D, Taglist: ["alpha-2"], Pushed: 1 day ago
{ "rules": [ { "rulePriority": 1, "description": "Rule 1", "selection": { "tagStatus": "any", "countType": "imageCountMoreThan", "countNumber": 1 }, "action": { "type": "expire" } } ] }
このライフサイクルポリシーのロジックは次のようになります。
-
ルール 1 は、すべてのイメージを特定します。イメージ A、B、C、D が確認されます。最も新しいもの以外のすべてのイメージが期限切れとされます。イメージ A、B、C が期限切れとしてマークされます。
-
結果: イメージ A、B、C は期限切れです。
例 B
以下の例は、単一のポリシーのすべてのルールのタイプを組み合わせるライフサイクルポリシーを示しています。
リポジトリのコンテンツ
-
Image A, Taglist: ["alpha-", "beta-1", "-1"], Pushed: 4 days ago
-
Image B, Taglist: [], Pushed: 3 days ago
-
Image C, Taglist: ["alpha-2"], Pushed: 2 days ago
-
Image D, Taglist: ["git hash"], Pushed: 1 day ago
-
Image E, Taglist: [], Pushed: 1 day ago
{ "rules": [ { "rulePriority": 1, "description": "Rule 1", "selection": { "tagStatus": "tagged", "tagPatternList": ["alpha*"], "countType": "imageCountMoreThan", "countNumber": 1 }, "action": { "type": "expire" } }, { "rulePriority": 2, "description": "Rule 2", "selection": { "tagStatus": "untagged", "countType": "sinceImagePushed", "countUnit": "days", "countNumber": 1 }, "action": { "type": "expire" } }, { "rulePriority": 3, "description": "Rule 3", "selection": { "tagStatus": "any", "countType": "imageCountMoreThan", "countNumber": 1 }, "action": { "type": "expire" } } ] }
このライフサイクルポリシーのロジックは次のようになります。
-
ルール 1 は、
alpha
というプレフィックスでタグ付けされたイメージを特定します。イメージ A と C を識別します。最も新しいイメージを保持し、残りは期限切れとしてマークされます。イメージ A が期限切れとしてマークされます。 -
ルール 2 は、タグ付けされていないイメージを特定します。イメージ B と E を識別します。有効期限が 1 日より古いすべてのイメージがマークされます。イメージ B が期限切れとしてマークされます。
-
ルール 3 は、すべてのイメージを特定します。イメージ A、B、C、D、E を識別します。最も新しいイメージを保持し、残りは期限切れとしてマークされます。ただし、優先度がより高いルールにより識別されるため、イメージ A、B、C、または E をマークすることはできません。イメージ D が期限切れとしてマークされます。
-
結果: イメージ A、B、D は期限切れです。