Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Beispiele für Lebenszyklusrichtlinien in Amazon ECR
Im Folgenden finden Sie Beispiele für Lebenszyklusrichtlinien, die die Syntax zeigen.
Weitere Informationen zu Richtlinieneigenschaften finden Sie unterEigenschaften der Lebenszyklusrichtlinie in Amazon ECR. Anweisungen zum Erstellen einer Lebenszyklusrichtlinie mithilfe von finden Sie unterSo erstellen Sie eine Lebenszyklusrichtlinie (AWS CLI). AWS CLI
Vorlage für Lebenszykluspolitik
Der Inhalt Ihrer Lebenszyklus-Richtlinie wird bewertet, bevor sie einem Repository zugeordnet wird. Nachfolgend sehen Sie die JSON-Syntaxvorlage für die Lebenszyklus-Richtlinie.
{
"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"
}
}
]
}
Filterung nach dem Alter der Images
Das folgende Beispiel zeigt die Lebenszyklusrichtliniensyntax für eine Richtlinie, die Images mit einem Tag ablaufen lässt, das mit prod
beginnt. Dazu wird eine tagPatternList
für prod*
und die Sucheinschränkung „älter als 14
Tage“ verwendet.
{ "rules": [ { "rulePriority": 1, "description": "Expire images older than 14 days", "selection": { "tagStatus": "tagged", "tagPatternList": ["prod*"], "countType": "sinceImagePushed", "countUnit": "days", "countNumber": 14 }, "action": { "type": "expire" } } ] }
Filtern nach der Anzahl an Images
Das folgende Beispiel zeigt die Lebenszyklusrichtliniensyntax für eine Richtlinie, die nur ein Image ohne Tags beibehält und alle anderen ablaufen lässt:
{ "rules": [ { "rulePriority": 1, "description": "Keep only one untagged image, expire all others", "selection": { "tagStatus": "untagged", "countType": "imageCountMoreThan", "countNumber": 1 }, "action": { "type": "expire" } } ] }
Filtern nach mehreren Regeln
Die folgenden Beispiele verwenden mehrere Regeln in einer Lebenszyklus-Richtlinie. Dafür werden ein Beispiel-Repository und eine Beispiel-Lebenszyklusrichtlinie gezeigt, ebenso wie eine Erklärung des Ergebnisses.
Beispiel A
Repository-Inhalt:
-
Image A, Taglist: ["beta-1", "prod-1"], Pushed: vor 10 Tagen
-
Image B, Taglist: ["beta-2", "prod-2"], Pushed: vor 9 Tagen
-
Image C, Taglist: ["beta-3"], Pushed: vor 8 Tagen
Text der Lebenszyklus-Richtlinie:
{ "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" } } ] }
Die Logik dieser Lebenszyklus-Richtlinie wäre:
-
Regel 1 identifiziert Images, die mit dem Präfix
prod
markiert sind. Sie sollte die Images beginnend mit dem ältesten markieren, bis es ein oder weniger verbleibende Images gibt, für die eine Übereinstimmung vorliegt. Sie markiert Image A für den Ablauf. -
Regel 2 identifiziert Images, die mit dem Präfix
beta
markiert sind. Sie sollte die Images beginnend mit dem ältesten markieren, bis es ein oder weniger verbleibende Images gibt, für die eine Übereinstimmung vorliegt. Sie markiert Image A und Image B für den Ablauf. Image A wurde jedoch bereits von Regel 1 verarbeitet, und wenn Image B abgelaufen wäre, würde dies Regel 1 verletzen, deshalb wird es übersprungen. -
Ergebnis: Image A ist abgelaufen.
Beispiel B
Dies ist dasselbe Repository wie im vorigen Beispiel, aber die Prioritätsreihenfolge der Regel wird geändert, um das Ergebnis zu verdeutlichen.
Repository-Inhalt:
-
Image A, Taglist: ["beta-1", "prod-1"], Pushed: vor 10 Tagen
-
Image B, Taglist: ["beta-2", "prod-2"], Pushed: vor 9 Tagen
-
Image C, Taglist: ["beta-3"], Pushed: vor 8 Tagen
Text der Lebenszyklus-Richtlinie:
{ "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" } } ] }
Die Logik dieser Lebenszyklus-Richtlinie wäre:
-
Regel 1 identifiziert Images, die mit dem Präfix
beta
markiert sind. Sie sollte die Images beginnend mit dem ältesten markieren, bis es ein oder weniger verbleibende Images gibt, für die eine Übereinstimmung vorliegt. Sie verarbeitet alle drei Images und würde Image A und Image B für den Ablauf markieren. -
Regel 2 identifiziert Images, die mit dem Präfix
prod
markiert sind. Sie sollte die Images beginnend mit dem ältesten markieren, bis es ein oder weniger verbleibende Images gibt, für die eine Übereinstimmung vorliegt. Sie würde keine Images verarbeiten, weil alle verfügbaren Images bereits von Regel 1 verarbeitet wurden, es würden also keine weiteren Images markiert. -
Ergebnis: Image A und B laufen ab.
Filtern nach mehreren Tags in einer einzigen Regel
Die folgenden Beispiele zeigen die Lebenszyklusrichtliniensyntax für mehrere Tag-Muster innerhalb einer einzigen Regel. Dafür werden ein Beispiel-Repository und eine Beispiel-Lebenszyklusrichtlinie gezeigt, ebenso wie eine Erklärung des Ergebnisses.
Beispiel A
Wenn mehrere Tag-Muster innerhalb einer einzigen Regel angegeben sind, müssen die Images mit allen aufgelisteten Tag-Mustern übereinstimmen.
Repository-Inhalt:
-
Image A, Taglist: ["alpha-1"], Pushed: vor 12 Tagen
-
Image B, Taglist: ["beta-1"], Pushed: vor 11 Tagen
-
Image C, Taglist: ["alpha-2", "beta-2"], Pushed: vor 10 Tagen
-
Image D, Taglist: ["alpha-3"], Pushed: vor 4 Tagen
-
Image E, Taglist: ["beta-3"], Pushed: vor 3 Tagen
-
Image F, Taglist: ["alpha-4", "beta-4"], Pushed: vor 2 Tagen
{ "rules": [ { "rulePriority": 1, "description": "Rule 1", "selection": { "tagStatus": "tagged", "tagPatternList": ["alpha*", "beta*"], "countType": "sinceImagePushed", "countNumber": 5, "countUnit": "days" }, "action": { "type": "expire" } } ] }
Die Logik dieser Lebenszyklus-Richtlinie wäre:
-
Regel 1 identifiziert Images, die mit dem Präfix
alpha
undbeta
markiert sind. Sie verarbeitet die Images C und F. Sie sollte Images markieren, die älter als fünf Tage sind, das wäre Image C. -
Ergebnis: Image C läuft ab.
Beispiel B
Das folgende Beispiel veranschaulicht, dass Tags nicht exklusiv sind.
Repository-Inhalt:
-
Image A, Taglist: ["alpha-1", "beta-1", "gamma-1"], Pushed: vor 10 Tagen
-
Image B, Taglist: ["alpha-2", "beta-2"], Pushed: vor 9 Tagen
-
Image C, Taglist: ["alpha-3", "beta-3", "gamma-2"], Pushed: vor 8 Tagen
{ "rules": [ { "rulePriority": 1, "description": "Rule 1", "selection": { "tagStatus": "tagged", "tagPatternList": ["alpha*", "beta*"], "countType": "imageCountMoreThan", "countNumber": 1 }, "action": { "type": "expire" } } ] }
Die Logik dieser Lebenszyklus-Richtlinie wäre:
-
Regel 1 identifiziert Images, die mit dem Präfix
alpha
undbeta
markiert sind. Sie verarbeitet alle Images. Sie sollte die Images beginnend mit dem ältesten markieren, bis es ein oder weniger verbleibende Images gibt, für die eine Übereinstimmung vorliegt. Sie markiert Image A und B für den Ablauf. -
Ergebnis: Image A und B laufen ab.
Filterung auf alle Images
Die folgenden Beispiele für Lebenszyklusrichtlinien geben alle Images mit unterschiedlichen Filtern an. Dafür werden ein Beispiel-Repository und eine Beispiel-Lebenszyklusrichtlinie gezeigt, ebenso wie eine Erklärung des Ergebnisses.
Beispiel A
Nachfolgend sehen Sie die Syntax der Lebenszyklus-Richtlinie für eine Richtlinie, die für alle Regeln gilt, aber nur ein Image beibehält und alle anderen ablaufen lässt.
Repository-Inhalt:
-
Image A, Taglist: ["alpha-1"], vor 4 Tagen
-
Image B, Taglist: ["beta-1"], vor 3 Tagen
-
Image C, Taglist: [], Pushed: vor 2 Tagen
-
Image D, Taglist: ["alpha-2"], Pushed: vor 1 Tag
{ "rules": [ { "rulePriority": 1, "description": "Rule 1", "selection": { "tagStatus": "any", "countType": "imageCountMoreThan", "countNumber": 1 }, "action": { "type": "expire" } } ] }
Die Logik dieser Lebenszyklus-Richtlinie wäre:
-
Regel 1 identifiziert alle Images. Sie sieht die Images A, B, C und D. Sie soll alle Images außer dem neuesten auslaufen lassen. Sie kennzeichnet die Images A, B und C für den Ablauf.
-
Ergebnis: Image A, B und C laufen ab.
Beispiel B
Das folgende Beispiel zeigt eine Lebenszyklus-Richtlinie, die alle Regeltypen in einer einzigen Regel kombiniert.
Repository-Inhalt:
-
Image A, Taglist: ["alpha-", "beta-1", "-1"], Pushed: vor 4 Tagen
-
Image B, Taglist: [], Pushed: vor 3 Tagen
-
Image C, Taglist: ["alpha-2"], Pushed: vor 2 Tagen
-
Image D, Taglist: ["git hash"], Pushed: vor 1 Tag
-
Image E, Taglist: [], Pushed: vor 1 Tag
{ "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" } } ] }
Die Logik dieser Lebenszyklus-Richtlinie wäre:
-
Regel 1 identifiziert Images, die mit dem Präfix
alpha
markiert sind. Sie identifiziert die Images A und C. Sie sollte das neueste Image beibehalten und die restlichen für den Ablauf markieren. Sie markiert Image A für den Ablauf. -
Regel 2 identifiziert Images ohne Tags. Sie identifiziert die Images B und E. Sie sollte alle Images, die älter als einen Tag sind, für den Ablauf markieren. Sie markiert Image B für den Ablauf.
-
Regel 3 identifiziert alle Images. Sie identifiziert die Images A, B, C, D und E. Sie sollte das neueste Image beibehalten und die restlichen für den Ablauf markieren. Sie kann jedoch die Images A, B, C oder E nicht markieren, weil sie von Regeln mit höherer Priorität identifiziert wurden. Sie markiert Image D für den Ablauf.
-
Ergebnis: Image A, B und D laufen ab.