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>,
"storageClass": "standard"|"archive",
"countType": "imageCountMoreThan"|"sinceImagePushed"|"sinceImagePulled"|"sinceImageTransitioned",
"countUnit": "string",
"countNumber": integer
},
"action": {
"type": "expire"|"transition",
"targetStorageClass": "archive"
}
}
]
}
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
prodmarkiert 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
betamarkiert 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
betamarkiert 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
prodmarkiert 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
alphaundbetamarkiert 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
alphaundbetamarkiert 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
alphamarkiert 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.
Archivbeispiele
Die folgenden Beispiele zeigen Lebenszyklusrichtlinien, mit denen Bilder archiviert werden, anstatt sie zu löschen.
Archivierung von Bildern, die älter als eine bestimmte Anzahl von Tagen sind
Das folgende Beispiel zeigt eine Lebenszyklusrichtlinie, mit der Bilder archiviert werden, deren Tags mit beginnenprod, die älter als 30 Tage sind:
{ "rules": [ { "rulePriority": 1, "description": "Archive production images older than 30 days", "selection": { "tagStatus": "tagged", "tagPatternList": ["prod*"], "countType": "sinceImagePushed", "countUnit": "days", "countNumber": 30 }, "action": { "type": "transition", "targetStorageClass": "archive" } } ] }
Archivierung von Bildern, die nicht innerhalb einer bestimmten Anzahl von Tagen abgerufen wurden
Das folgende Beispiel zeigt eine Lebenszyklusrichtlinie, mit der Bilder archiviert werden, die seit 90 Tagen nicht abgerufen wurden:
{ "rules": [ { "rulePriority": 1, "description": "Archive images not pulled in 90 days", "selection": { "tagStatus": "any", "countType": "sinceImagePulled", "countUnit": "days", "countNumber": 90 }, "action": { "type": "transition", "targetStorageClass": "archive" } } ] }
Kombination von Archivierungs- und Löschregeln
Das folgende Beispiel zeigt eine Lebenszyklusrichtlinie, die Bilder archiviert, die älter als 30 Tage sind, und anschließend Bilder, die länger als 365 Tage archiviert wurden, dauerhaft löscht:
Anmerkung
Archivierte Bilder haben eine Mindestspeicherdauer von 90 Tagen. Sie können keine Lebenszyklusrichtlinien konfigurieren, mit denen Bilder gelöscht werden, die sich seit weniger als 90 Tagen im Archiv befinden. Wenn Sie Bilder löschen müssen, die seit weniger als 90 Tagen archiviert wurden, müssen Sie die batch-delete-image API verwenden. Die Mindestspeicherdauer von 90 Tagen wird Ihnen jedoch in Rechnung gestellt.
{ "rules": [ { "rulePriority": 1, "description": "Archive images older than 30 days", "selection": { "tagStatus": "any", "countType": "sinceImagePushed", "countUnit": "days", "countNumber": 30 }, "action": { "type": "transition", "targetStorageClass": "archive" } }, { "rulePriority": 2, "description": "Delete images archived for more than 365 days", "selection": { "tagStatus": "any", "storageClass": "archive", "countType": "sinceImageTransitioned", "countUnit": "days", "countNumber": 365 }, "action": { "type": "expire" } } ] }