翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon ECR でのライフサイクルポリシーを使用したイメージのクリーンアップの自動化
Amazon ECR ライフサイクルポリシーを使用すると、プライベートリポジトリ内のイメージのライフサイクル管理をより詳細に制御できます。ライフサイクルポリシーには 1 つ以上のルールが含まれ、各ルールで Amazon ECR のアクションが定義されます。ライフサイクルポリシーの有効期限基準に基づいて、ライフサイクルポリシーで指定された基準に基づいて 24 時間以内にイメージをアーカイブまたは期限切れにすることができます。Amazon ECR がライフサイクルポリシーに基づいてアクションを実行した場合、このアクションはイベントとして AWS CloudTrailにキャプチャされます。詳細については、「を使用した Amazon ECR アクションのログ記録 AWS CloudTrail」を参照してください。
ライフサイクルポリシーの機能
ライフサイクルポリシーは、リポジトリ内のどのイメージに有効期限切れにするかを決定する 1 つ以上のルールで構成されています。ライフサイクルポリシーの使用を検討する場合、リポジトリに適用する前に、ライフサイクルポリシーのプレビューでライフサイクルポリシーが有効期限切れになったイメージを確認することが重要です。ライフサイクルポリシーがリポジトリに適用されると、イメージが有効期限の基準を満たしてから 24 時間以内に期限切れになることが予想されます。Amazon ECR がライフサイクルポリシーに基づいてアクションを実行すると、これはイベントとして AWS CloudTrailにキャプチャされます。詳細については、「を使用した Amazon ECR アクションのログ記録 AWS CloudTrail」を参照してください。
次の図表は、ライフサイクルポリシーのワークフローを示します。
-
テストルールを 1 つ以上作成します。
-
テストルールを保存し、プレビューを実行します。
-
ライフサイクルポリシーエバリュエーターは、すべてのルールを評価し、各ルールが影響するイメージにマークを付けます。
-
次に、ライフサイクルポリシーエバリュエーターはルールの優先度に基づいてルールを適用し、リポジトリ内のどのイメージの有効期限が切れるかアーカイブされるかを表示します。ルールの優先度の数値が低いほど、優先度が高くなります。例えば、優先度 1 のルールは、優先度 2 のルールよりも優先されます。
-
テストの結果を確認し、期限切れまたはアーカイブとマークされたイメージが意図したとおりであることを確認します。
-
テストルールをリポジトリのライフサイクルポリシーとして適用します。
-
ライフサイクルポリシーが作成されると、イメージの有効期限が切れるか、有効期限の基準を満たしてから 24 時間以内にアーカイブされるはずです。
ライフサイクルポリシーの評価ルール
ライフサイクルポリシーエバリュエーターは、ライフサイクルポリシーのプレーンテキスト JSON を解析して、すべてのルールを評価し、ルールの優先順位に基づいてリポジトリ内のイメージに適用します。次に、ライフサイクルポリシーエバリュエーターのロジックについて詳しく説明します。例については「Amazon ECR でのライフサイクルポリシーの例」を参照してください。
-
リポジトリに参照アーティファクトが存在する場合、Amazon ECR ライフサイクルポリシーは、対象イメージの削除またはアーカイブから 24 時間以内にそれらのアーティファクトを自動的に期限切れまたはアーカイブします。
-
優先順位に関係なく、すべてのルールが同時に評価されます。すべてのルールが評価された後、優先度に基づいてルールが適用されます。
-
イメージの有効期限が切れているか、1 つまたはゼロのルールによってアーカイブされています。
-
ルールのタグ付け要件に一致するイメージを、優先度の低いルールで期限切れにしたりアーカイブしたりすることはできません。
-
ルールは、優先度の高いルールでマークされたイメージをマークすることはできませんが、期限切れまたはアーカイブされていないかのように識別できます。
-
特定のストレージクラスを選択するすべてのルールのセットには、一意のプレフィックスのセットが含まれている必要があります。
-
タグ付けされていないイメージを選択できるのは、特定のストレージクラスを選択する 1 つのルールのみです。
-
イメージがマニフェストリストによって参照されている場合、マニフェストリストが最初に削除またはアーカイブされない限り、有効期限が切れたりアーカイブされたりすることはできません。
-
有効期限は常に
pushed_at_timeまたは によって順序transitioned_at_time付けられ、古いイメージは新しいイメージより前に期限切れになります。イメージがアーカイブされ、過去の任意の時点で復元された場合、イメージのlast_activated_atが の代わりに使用されますpushed_at_time。 -
ライフサイクルポリシールールでは、
tagPatternListまたはtagPrefixListのいずれかを指定できますが、両方は指定できません。ただし、ライフサイクルポリシーにはパターンリストとプレフィックスリストの両方を使用する複数のルールが含まれる場合があります。tagPatternListまたはtagPrefixListの値に含まれるすべてのタグがイメージのいずれかのタグと一致した場合に、イメージは一致したことになります。 -
tagPatternListまたはtagPrefixListパラメータは、tagStatusがtaggedの場合にのみ使用できます。 -
tagPatternListを使用する場合、ワイルドカードフィルターに一致すればイメージがマークされます。例えば、prod*のフィルターを適用すると、prodで始まる名前 (prod、prod1、production-team1など) を持つリポジトリと一致します。同様に、*prod*のフィルターを適用すると、名前にprodが含まれる (repo-production、prod-teamなど) リポジトリと一致します。重要
1 文字列あたりのワイルドカード (
*) の上限は 4 つです。例えば、["test*1*2*3*4*5*6"]は有効ですが["*test*1*2*3", "test*1*2*3*"]は無効です。 -
tagPrefixListを使用した場合、tagPrefixList値のすべてのワイルドカードフィルターがイメージのいずれかのタグと一致した場合に、イメージは一致したことになります。 -
countUnitパラメータは、countTypeがsinceImagePushed、sinceImagePulled、または の場合にのみ使用されますsinceImageTransitioned。 -
では
countType = imageCountMoreThan、イメージは に基づいて最も新しいイメージから古いイメージにソートされpushed_at_time、指定された数を超えるすべてのイメージは期限切れまたはアーカイブされます。 -
では
countType = sinceImagePushed、 に基づく指定された日数よりもpushed_at_time古いすべてのイメージcountNumberが期限切れまたはアーカイブされます。 -
では
countType = sinceImagePulled、 に基づく指定された日数よりも古いすべてのイメージlast_recorded_pulltimeがcountNumberアーカイブされます。イメージがプルされたことがない場合は、 の代わりにイメージのpushed_at_timeが使用されますlast_recorded_pulltime。イメージがアーカイブされてから復元されたが、復元されてからプルされなかった場合、イメージのlast_activated_atは の代わりに使用されますlast_recorded_pulltime。 -
では
countType = sinceImageTransitioned、 に基づく指定された日数よりもlast_archived_at古いアーカイブ済みイメージはすべて期限切れcountNumberになります。 -
有効期限は常に によって順序付け
pushed_at_timeされ、古いイメージは新しいイメージより前に有効期限が切れます。