

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
<a name="lifecycle_policy_examples"></a>

Im Folgenden finden Sie Beispiele für Lebenszyklusrichtlinien, die die Syntax zeigen.

Weitere Informationen zu Richtlinieneigenschaften finden Sie unter[Eigenschaften der Lebenszyklusrichtlinie in Amazon ECR](lifecycle_policy_parameters.md). Anweisungen zum Erstellen einer Lebenszyklusrichtlinie mithilfe von finden Sie unter[So erstellen Sie eine Lebenszyklusrichtlinie (AWS CLI)](lp_creation.md#lp-creation-cli). AWS CLI

## Vorlage für Lebenszykluspolitik
<a name="lifecycle_policy_syntax"></a>

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
<a name="lifecycle_policy_example_age"></a>

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"
            }
        }
    ]
}
```

## Filterung nach dem Zeitpunkt des letzten Abrufs
<a name="lifecycle_policy_example_last_pulled"></a>

Das folgende Beispiel zeigt die Syntax der Lebenszyklus-Richtlinie für eine Richtlinie, die Bilder, die seit `90` Tagen nicht abgerufen wurden, in Archivspeicher überträgt.

```
{
    "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"
            }
        }
    ]
}
```

**Wichtig**  
Der `sinceImagePulled` Zähltyp muss für die `transition` Aktion verwendet werden. Er kann nicht mit der `expire` Aktion verwendet werden. Um Bilder auf der Grundlage einer Pull-Aktivität zu löschen, übertragen Sie sie zunächst mit in den Archivspeicher und verwenden Sie sie dann `sinceImageTransitioned` zusammen mit einer `expire` Aktion`sinceImagePulled`, um sie zu löschen. Bilder müssen sich vor dem Löschen mindestens 90 Tage im Archivspeicher befinden.

## Filterung nach der Archivübergangszeit
<a name="lifecycle_policy_example_transitioned"></a>

Das folgende Beispiel zeigt die Syntax der Lebenszyklusrichtlinie für eine Richtlinie, die archivierte Bilder ablaufen lässt, die sich länger als `365` Tage im Archivspeicher befinden.

```
{
    "rules": [
        {
            "rulePriority": 1,
            "description": "Expire images archived for more than 365 days",
            "selection": {
                "tagStatus": "any",
                "storageClass": "archive",
                "countType": "sinceImageTransitioned",
                "countUnit": "days",
                "countNumber": 365
            },
            "action": {
                "type": "expire"
            }
        }
    ]
}
```

**Wichtig**  
Der `sinceImageTransitioned` Zähltyp muss zusammen mit der `expire` Aktion und der `archive` Speicherklasse verwendet werden. Bilder müssen vor dem Löschen mindestens 90 Tage im Archiv aufbewahrt werden.

## Filtern nach der Anzahl an Images
<a name="lifecycle_policy_example_number"></a>

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
<a name="lp_example_multiple"></a>

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
<a name="lp_example_multiple_a"></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
<a name="lp_example_multiple_b"></a>

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
<a name="lp_example_difftype"></a>

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
<a name="lp_example_difftype_a"></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` und `beta` 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
<a name="lp_example_difftype_b"></a>

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` und `beta` 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
<a name="lp_example_allimages"></a>

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
<a name="lp_example_difftype_a"></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
<a name="lp_example_difftype_b"></a>

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.

## Archivbeispiele
<a name="lp_example_archive"></a>

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
<a name="lp_example_archive_age"></a>

Das folgende Beispiel zeigt eine Lebenszyklusrichtlinie, mit der Bilder archiviert werden, deren Tags mit beginnen`prod`, 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
<a name="lp_example_archive_pull"></a>

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 Ablaufregeln
<a name="lp_example_archive_delete"></a>

Das folgende Beispiel zeigt eine Lebenszyklusrichtlinie, die Bilder archiviert, die älter als 30 Tage sind, und danach Bilder, die länger als 365 Tage archiviert wurden, dauerhaft ablaufen lässt:

**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": "Expire images archived for more than 365 days",
            "selection": {
                "tagStatus": "any",
                "storageClass": "archive",
                "countType": "sinceImageTransitioned",
                "countUnit": "days",
                "countNumber": 365
            },
            "action": {
                "type": "expire"
            }
        }
    ]
}
```