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

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

ライフサイクルポリシー

Amazon ECR ライフサイクルポリシーでは、プライベートリポジトリ内のイメージのライフサイクル管理をより詳細に制御できます。ライフサイクルポリシーには 1 つ以上のルールがあり、各ルールでは Amazon ECR のアクションが定義されています。これにより、未使用のイメージ、たとえば、経過時間またはカウントに基づいて有効期限切れイメージなどのクリーンアップを自動化できます。ライフサイクルポリシーの作成後、影響を受けるイメージは 24 時間以内に有効期限切れになります。

ライフサイクルポリシーのしくみ

ライフサイクルポリシーは、リポジトリ内のどのイメージに有効期限切れにするかを決定する 1 つ以上のルールで構成されます。ライフサイクルポリシーの使用を検討する場合、ライフサイクルポリシーのプレビューを使用して、ライフサイクルポリシーが期限切れになったイメージを確認してから、リポジトリに適用することが重要です。ライフサイクルポリシーがリポジトリに適用されると、影響を受けるイメージが 24 時間以内に期限切れになることが予想されます。

次の図はライフサイクルポリシーのワークフローを示しています。


                Fargate 起動タイプを使用する Amazon ECS 環境のアーキテクチャを示す図。
  1. 1 つ以上のテストルールを作成します。

  2. テストルールを保存し、プレビューを実行します。

  3. ライフサイクルポリシーエバリュエータは、すべてのルールを通過し、各ルールが影響するイメージにマークを付けます。

  4. 次に、ライフサイクルポリシーエバリュエーターは、ルールの優先度に基づいてルールを適用し、期限切れに設定されているリポジトリ内のイメージを表示します。

  5. テストの結果を確認し、有効期限が切れているとマークされているイメージが意図したものであることを確認します。

  6. リポジトリのライフサイクルポリシーとしてテストルールを適用します。

  7. ライフサイクルポリシーの作成後、影響を受けるイメージは 24 時間以内に有効期限切れになります。

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

ライフサイクルポリシーの評価者は、ライフサイクルポリシーのプレーンテキスト JSON を解析し、すべてのルールを評価し、ルールの優先度に基づいてリポジトリ内のイメージへ適用します。次に、ライフサイクルポリシーエバリュエーターのロジックについて詳しく説明します。例については、「ライフサイクルポリシーの例」を参照してください。

  • ルールの優先順位に関係なく、すべてのルールが同時に評価されます。すべてのルールが評価された後、ルールの優先度に基づいて適用されます。

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

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

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

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

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

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

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

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

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

ライフサイクルポリシーのテンプレート

ライフサイクルポリシーのコンテンツは、リポジトリに関連付けられる前に評価されます。以下に示しているのは、ライフサイクルポリシーの 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

タイプ: 整数

必須: はい

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

Description

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

タイプ: 整数

必須: はい

カウント数を指定します。許容値は正の整数です (0 は許容値ではありません)。

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

Action

type

タイプ: 文字列

必須: はい

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