

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Esempi di politiche del ciclo di vita in Amazon ECR
<a name="lifecycle_policy_examples"></a>

Di seguito sono riportati alcuni esempi di policy relative al ciclo di vita che mostrano la sintassi.

Per ulteriori informazioni sulle proprietà delle politiche, vedere. [Proprietà delle policy del ciclo di vita in Amazon ECR](lifecycle_policy_parameters.md) Per istruzioni sulla creazione di una politica del ciclo di vita utilizzando il AWS CLI, vedere. [Per creare una policy del ciclo di vita (AWS CLI)](lp_creation.md#lp-creation-cli)

## Modello di policy del ciclo di vita
<a name="lifecycle_policy_syntax"></a>

I contenuti della politica del ciclo di vita vengono valutati prima di essere associati a un repository. Di seguito viene mostrato un modello di sintassi JSON per la policy del ciclo di vita.

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

## Filtraggio per età delle immagini
<a name="lifecycle_policy_example_age"></a>

L'esempio seguente mostra la sintassi della policy del ciclo di vita per una policy che prevede la scadenza delle immagini con un tag che inizia con `prod` utilizzando un `tagPatternList` di `prod*` anch'esso più vecchio di `14` giorni.

```
{
    "rules": [
        {
            "rulePriority": 1,
            "description": "Expire images older than 14 days",
            "selection": {
                "tagStatus": "tagged",
                "tagPatternList": ["prod*"],
                "countType": "sinceImagePushed",
                "countUnit": "days",
                "countNumber": 14
            },
            "action": {
                "type": "expire"
            }
        }
    ]
}
```

## Filtraggio in base all'ultima ora estratta
<a name="lifecycle_policy_example_last_pulled"></a>

L'esempio seguente mostra la sintassi della policy relativa al ciclo di vita di una policy che trasferisce le immagini allo storage di archivio che non vengono recuperate da giorni. `90`

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

**Importante**  
Il tipo di `sinceImagePulled` conteggio deve essere utilizzato con l'azione. `transition` Non può essere utilizzato con l'`expire`azione. Per eliminare le immagini in base all'attività di pull, trasferiscile prima allo storage di archiviazione utilizzando`sinceImagePulled`, quindi utilizzale `sinceImageTransitioned` con un'`expire`azione per eliminarle. Le immagini devono rimanere nell'archivio per almeno 90 giorni prima dell'eliminazione.

## Filtraggio in base al tempo di transizione dell'archivio
<a name="lifecycle_policy_example_transitioned"></a>

L'esempio seguente mostra la sintassi della politica del ciclo di vita per una policy che fa scadere le immagini archiviate che sono rimaste nell'archivio per più di giorni. `365`

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

**Importante**  
Il tipo di `sinceImageTransitioned` conteggio deve essere utilizzato con l'`expire`azione e la classe di archiviazione. `archive` Le immagini devono rimanere nell'archivio per almeno 90 giorni prima dell'eliminazione.

## Filtraggio per numero di immagini
<a name="lifecycle_policy_example_number"></a>

L'esempio seguente mostra la sintassi della policy del ciclo di vita per una policy che mantiene una sola immagine non taggata e fa scadere tutte le altre.

```
{
    "rules": [
        {
            "rulePriority": 1,
            "description": "Keep only one untagged image, expire all others",
            "selection": {
                "tagStatus": "untagged",
                "countType": "imageCountMoreThan",
                "countNumber": 1
            },
            "action": {
                "type": "expire"
            }
        }
    ]
}
```

## Filtraggio per più regole
<a name="lp_example_multiple"></a>

I seguenti esempi utilizzano più regole in una policy del ciclo di vita. Vengono forniti un repository e una policy del ciclo di vita di esempio insieme a una spiegazione del risultato.

### Esempio A
<a name="lp_example_multiple_a"></a>

Contenuto del repository:
+ Immagine A, Elenco tag: ["beta-1", "prod-1"], Invio: 10 giorni fa
+ Immagine B, Elenco tag: ["beta-2", "prod-2"], Invio: 9 giorni fa
+ Immagine C, Elenco tag: ["beta-3"], Invio: 8 giorni fa

Testo della policy del ciclo di vita:

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

La logica di questa policy del ciclo di vita è:
+ La regola 1 identifica le immagini taggate con il prefisso `prod`. Dovrebbe contrassegnare le immagini, a iniziare da quella meno recente, fino a quando rimangono una o meno immagini corrispondenti. Contrassegna l'immagine A per la scadenza.
+ La regola 2 identifica le immagini taggate con il prefisso `beta`. Dovrebbe contrassegnare le immagini, a iniziare da quella meno recente, fino a quando rimangono una o meno immagini corrispondenti. Contrassegna entrambe le immagini A e B per la scadenza. Tuttavia, l'immagine A è già stata vista dalla regola 1 e, se l'immagine B scadesse, violerebbe la regola 1, pertanto viene saltata.
+ Risultato: l'immagine A scade.

### Esempio B
<a name="lp_example_multiple_b"></a>

Questo è lo stesso repository dell'esempio precedente, ma l'ordine di priorità delle regole è cambiato per mostrare questo altro esito.

Contenuto del repository:
+ Immagine A, Elenco tag: ["beta-1", "prod-1"], Invio: 10 giorni fa
+ Immagine B, Elenco tag: ["beta-2", "prod-2"], Invio: 9 giorni fa
+ Immagine C, Elenco tag: ["beta-3"], Invio: 8 giorni fa

Testo della policy del ciclo di vita:

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

La logica di questa policy del ciclo di vita è:
+ La regola 1 identifica le immagini taggate con il prefisso `beta`. Dovrebbe contrassegnare le immagini, a iniziare da quella meno recente, fino a quando rimangono una o meno immagini corrispondenti. Vede tutte e tre le immagini e contrassegna l'immagine A e l'immagine B per la scadenza.
+ La regola 2 identifica le immagini taggate con il prefisso `prod`. Dovrebbe contrassegnare le immagini, a iniziare da quella meno recente, fino a quando rimangono una o meno immagini corrispondenti. Non vede alcuna immagine, perché tutte le immagini disponibili sono già viste dalla regola 1, pertanto non vengono contrassegnate altre immagini.
+ Risultato: l'immagine A e l'immagine B scadono.

## Filtraggio per più tag in una stessa regola
<a name="lp_example_difftype"></a>

I seguenti esempi specificano la sintassi della policy del ciclo di vita per più modelli di tag in una sola regola. Vengono forniti un repository e una policy del ciclo di vita di esempio insieme a una spiegazione del risultato.

### Esempio A
<a name="lp_example_difftype_a"></a>

Quando vengono specificati più modelli di tag in una sola regola, le immagini devono corrispondere a tutti i modelli di tag elencati.

Contenuto del repository:
+ Immagine A, Elenco tag: ["alpha-1"], Invio: 12 giorni fa
+ Immagine B, Elenco tag: ["beta-1"], Invio: 11 giorni fa
+ Immagine C, Elenco tag: ["alpha-2", "beta-2"], Invio: 10 giorni fa
+ Immagine D, Elenco tag: ["alpha-3"], Invio: 4 giorni fa
+ Immagine E, Elenco tag: ["beta-3"], Invio: 3 giorni fa
+ Immagine F, Elenco tag: ["alpha-4", "beta-4"], Invio: 2 giorni fa

```
{
    "rules": [
        {
            "rulePriority": 1,
            "description": "Rule 1",
            "selection": {
                "tagStatus": "tagged",
                "tagPatternList": ["alpha*", "beta*"],
                "countType": "sinceImagePushed",
                "countNumber": 5,
                "countUnit": "days"
            },
            "action": {
                "type": "expire"
            }
        }
    ]
}
```

La logica di questa policy del ciclo di vita è:
+ La regola 1 identifica le immagini taggate con il prefisso `alpha` e `beta`. Vede le immagini C ed F. Dovrebbe contrassegnare le immagini che hanno più di cinque giorni, in questo caso l'immagine C.
+ Risultato: l'immagine C scade.

### Esempio B
<a name="lp_example_difftype_b"></a>

Il seguente esempio mostra che i tag non sono esclusivi.

Contenuto del repository:
+ Immagine A, Elenco tag: ["alpha-1", "beta-1", "gamma-1"], Invio: 10 giorni fa
+ Immagine B, Elenco tag: ["alpha-2", "beta-2"], Invio: 9 giorni fa
+ Immagine C, Elenco tag: ["alpha-3", "beta-3", "gamma-2"], Invio: 8 giorni fa

```
{
    "rules": [
        {
            "rulePriority": 1,
            "description": "Rule 1",
            "selection": {
                "tagStatus": "tagged",
                "tagPatternList": ["alpha*", "beta*"],
                "countType": "imageCountMoreThan",
                "countNumber": 1
            },
            "action": {
                "type": "expire"
            }
        }
    ]
}
```

La logica di questa policy del ciclo di vita è:
+ La regola 1 identifica le immagini taggate con il prefisso `alpha` e `beta`. Vede tutte le immagini. Dovrebbe contrassegnare le immagini, a iniziare da quella meno recente, fino a quando rimangono una o meno immagini corrispondenti. Contrassegna le immagini A e B per la scadenza.
+ Risultato: l'immagine A e l'immagine B scadono.

## Filtro su tutte le immagini
<a name="lp_example_allimages"></a>

I seguenti esempi di policy del ciclo di vita specificano tutte le immagini con diversi filtri. Vengono forniti un repository e una policy del ciclo di vita di esempio insieme a una spiegazione del risultato.

### Esempio A
<a name="lp_example_difftype_a"></a>

Quanto segue mostra la sintassi della policy del ciclo di vita per una policy che si applica a tutte le regole ma mantiene una sola immagine e fa scadere tutte le altre.

Contenuto del repository:
+ Immagine A, Elenco tag: ["alpha-1"], Invio: 4 giorni fa
+ Immagine B, Elenco tag: ["beta-1"], Invio: 3 giorni fa
+ Immagine C, Elenco tag: [], Invio: 2 giorni fa
+ Immagine D, Elenco tag: ["alpha-2"], Invio: 1 giorno fa

```
{
    "rules": [
        {
            "rulePriority": 1,
            "description": "Rule 1",
            "selection": {
                "tagStatus": "any",
                "countType": "imageCountMoreThan",
                "countNumber": 1
            },
            "action": {
                "type": "expire"
            }
        }
    ]
}
```

La logica di questa policy del ciclo di vita è:
+ La regola 1 identifica tutte le immagini. Vede le immagini A, B, C e D. Dovrebbe far scadere tutte le immagini tranne quelle più recenti. Contrassegna le immagini A, B e C per la scadenza.
+ Risultato: le immagini A, B e C scadono.

### Esempio B
<a name="lp_example_difftype_b"></a>

Il seguente esempio mostra una policy del ciclo di vita che combina tutti i tipi di regole in un'unica policy.

Contenuto del repository:
+ Immagine A, Elenco tag: ["alpha-1", "beta-1"], Invio: 4 giorni fa
+ Immagine B, Elenco tag: [], Invio: 3 giorni fa
+ Immagine C, Elenco tag: ["alpha-2"], Invio: 2 giorni fa
+ Immagine D, Elenco tag: ["git hash"], Invio: 1 giorno fa
+ Immagine E, Elenco tag: [], Invio: 1 giorno fa

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

La logica di questa policy del ciclo di vita è:
+ La regola 1 identifica le immagini taggate con il prefisso `alpha`. Identifica le immagini A e C. Mantiene l'immagine più recente e contrassegna il resto per la scadenza. Contrassegna l'immagine A per la scadenza.
+ La regola 2 identifica le immagini non taggate. Identifica le immagini B ed E. Contrassegna tutte le immagini più vecchie di un giorno per la scadenza. Contrassegna l'immagine B per la scadenza.
+ La regola 3 identifica tutte le immagini. Identifica le immagini A, B, C, D ed E. Mantiene l'immagine più recente e contrassegna il resto per la scadenza. Tuttavia, non può contrassegnare le immagini A, B, C o E perché sono identificate da regole di priorità superiore. Contrassegna l'immagine D per la scadenza. 
+ Risultato: le immagini A, B e D scadono.

## Esempi di archivio
<a name="lp_example_archive"></a>

Gli esempi seguenti mostrano le politiche relative al ciclo di vita che archiviano le immagini anziché eliminarle.

### Archiviazione di immagini più vecchie di un determinato numero di giorni
<a name="lp_example_archive_age"></a>

L'esempio seguente mostra una politica del ciclo di vita che archivia immagini con tag che iniziano con e `prod` che risalgono a più di 30 giorni:

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

### Archiviazione di immagini non recuperate in un numero di giorni specificato
<a name="lp_example_archive_pull"></a>

L'esempio seguente mostra una politica del ciclo di vita che archivia le immagini che non sono state recuperate da 90 giorni:

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

### Combinazione delle regole di archiviazione e scadenza
<a name="lp_example_archive_delete"></a>

L'esempio seguente mostra una politica del ciclo di vita che archivia le immagini più vecchie di 30 giorni e quindi fa scadere definitivamente le immagini archiviate per più di 365 giorni:

**Nota**  
Le immagini archiviate hanno una durata minima di archiviazione di 90 giorni. Non è possibile configurare politiche del ciclo di vita che eliminino le immagini archiviate da meno di 90 giorni. Se devi eliminare immagini archiviate per meno di 90 giorni, devi utilizzare l'**batch-delete-image**API, ma ti verrà addebitata la durata minima di archiviazione di 90 giorni.

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