Scopri la configurazione del ciclo di vita S3 per StorageGRID
Puoi creare una configurazione del ciclo di vita S3 per controllare quando determinati oggetti vengono eliminati dal sistema StorageGRID.
Il semplice esempio in questa sezione illustra come una configurazione del ciclo di vita S3 può controllare quando determinati oggetti vengono eliminati (scadono) da specifici bucket S3. L'esempio in questa sezione è solo a scopo illustrativo. Per dettagli completi sulla creazione di configurazioni del ciclo di vita S3, vedi "Guida per l'utente di Amazon Simple Storage Service: gestione del ciclo di vita degli oggetti". Nota che StorageGRID supporta solo le azioni di scadenza; non supporta le azioni di transizione.
Che cos'è la configurazione del ciclo di vita
Una configurazione del ciclo di vita è un insieme di regole applicate agli oggetti in specifici bucket S3. Ogni regola specifica quali oggetti sono interessati e quando questi oggetti scadranno (in una data specifica o dopo un certo numero di giorni).
StorageGRID supporta fino a 1.000 regole del ciclo di vita in un file di configurazione del ciclo di vita. Ogni regola può includere i seguenti elementi XML:
-
Scadenza: Elimina un oggetto quando viene raggiunta una data specificata o quando viene raggiunto un numero di giorni specificato, a partire da quando l'oggetto è stato acquisito.
-
NoncurrentVersionExpiration: Elimina un oggetto al raggiungimento di un numero di giorni specificato, a partire dal momento in cui l'oggetto è diventato non corrente.
-
Filtro (Prefisso, Tag)
-
Stato
-
ID
Ogni oggetto segue le impostazioni di conservazione del ciclo di vita di un bucket S3 o di una policy ILM. Quando viene configurato un ciclo di vita di un bucket S3, le azioni di scadenza del ciclo di vita hanno la precedenza sulla policy ILM per gli oggetti che corrispondono al filtro del ciclo di vita del bucket. Gli oggetti che non corrispondono al filtro del ciclo di vita del bucket utilizzano le impostazioni di conservazione della policy ILM. Se un oggetto corrisponde a un filtro del ciclo di vita del bucket e non vengono specificate esplicitamente azioni di scadenza, le impostazioni di conservazione della policy ILM non vengono utilizzate e si intende che le versioni degli oggetti vengano conservate per sempre. Vedi "Esempi di priorità per il ciclo di vita del bucket S3 e la policy ILM".
Di conseguenza, un oggetto potrebbe essere rimosso dalla griglia anche se le istruzioni di posizionamento in una regola ILM sono ancora valide per l'oggetto. Oppure, un oggetto potrebbe rimanere sulla griglia anche dopo la scadenza di tutte le istruzioni di posizionamento ILM per l'oggetto. Per ulteriori dettagli, vedi "Come funziona ILM durante l'intero ciclo di vita di un oggetto".
|
|
La configurazione del ciclo di vita dei bucket può essere utilizzata con i bucket che hanno S3 Object Lock abilitato, ma la configurazione del ciclo di vita non è supportata per i bucket Compliant legacy. |
StorageGRID supporta l'utilizzo delle seguenti operazioni sui bucket per gestire le configurazioni del ciclo di vita:
-
DeleteBucketLifecycle
-
GetBucketLifecycleConfiguration
-
PutBucketLifecycleConfiguration
Crea configurazione del ciclo di vita
Come primo passo nella creazione di una configurazione del ciclo di vita, crei un file JSON che include una o più regole. Ad esempio, questo file JSON include tre regole, come segue:
-
La regola 1 si applica solo agli oggetti che corrispondono al prefisso
category1/ e che hanno unkey2valore ditag2. IlExpirationparametro specifica che gli oggetti che corrispondono al filtro scadranno a mezzanotte del 22 agosto 2020. -
La regola 2 si applica solo agli oggetti che corrispondono al prefisso
category2/. IlExpirationparametro specifica che gli oggetti che corrispondono al filtro scadranno 100 giorni dopo essere stati ingeriti.Le regole che specificano un numero di giorni sono relative al momento in cui l'oggetto è stato acquisito. Se la data corrente supera la data di acquisizione più il numero di giorni, alcuni oggetti potrebbero essere rimossi dal bucket non appena viene applicata la configurazione del ciclo di vita. -
La regola 3 si applica solo agli oggetti che corrispondono al prefisso
category3/. IlExpirationparametro specifica che tutte le versioni non correnti degli oggetti corrispondenti scadranno 50 giorni dopo essere diventate non correnti.
{
"Rules": [
{
"ID": "rule1",
"Filter": {
"And": {
"Prefix": "category1/",
"Tags": [
{
"Key": "key2",
"Value": "tag2"
}
]
}
},
"Expiration": {
"Date": "2020-08-22T00:00:00Z"
},
"Status": "Enabled"
},
{
"ID": "rule2",
"Filter": {
"Prefix": "category2/"
},
"Expiration": {
"Days": 100
},
"Status": "Enabled"
},
{
"ID": "rule3",
"Filter": {
"Prefix": "category3/"
},
"NoncurrentVersionExpiration": {
"NoncurrentDays": 50
},
"Status": "Enabled"
}
]
}
Applica la configurazione del ciclo di vita al bucket
Dopo aver creato il file di configurazione del ciclo di vita, lo applichi a un bucket inviando una richiesta PutBucketLifecycleConfiguration.
Questa richiesta applica la configurazione del ciclo di vita nel file di esempio agli oggetti in un bucket denominato testbucket.
aws s3api --endpoint-url <StorageGRID endpoint> put-bucket-lifecycle-configuration --bucket testbucket --lifecycle-configuration file://bktjson.json
Per verificare che una configurazione del ciclo di vita sia stata applicata correttamente al bucket, invia una richiesta GetBucketLifecycleConfiguration. Ad esempio:
aws s3api --endpoint-url <StorageGRID endpoint> get-bucket-lifecycle-configuration --bucket testbucket
Una risposta positiva elenca la configurazione del ciclo di vita che hai appena applicato.
Verifica che la scadenza del ciclo di vita del bucket si applichi all'oggetto
Puoi determinare se una regola di scadenza nella configurazione del ciclo di vita si applica a un oggetto specifico quando invii una richiesta PutObject, HeadObject o GetObject. Se una regola si applica, la risposta include un parametro Expiration che indica quando l'oggetto scade e quale regola di scadenza è stata applicata.
|
|
Poiché il ciclo di vita del bucket ha la precedenza su ILM, la expiry-date data mostrata è la data effettiva in cui l'oggetto verrà eliminato. Per dettagli, vedi "Come viene determinata la retention dell'oggetto".
|
Ad esempio, questa richiesta PutObject è stata emessa il 22 giugno 2020 e inserisce un oggetto nel bucket testbucket.
aws s3api --endpoint-url <StorageGRID endpoint> put-object --bucket testbucket --key obj2test2 --body bktjson.json
La risposta di successo indica che l'oggetto scadrà tra 100 giorni (01 ott 2020) e che corrispondeva alla Regola 2 della configurazione del ciclo di vita.
{
*"Expiration": "expiry-date=\"Thu, 01 Oct 2020 09:07:49 GMT\", rule-id=\"rule2\"",
"ETag": "\"9762f8a803bc34f5340579d4446076f7\""
}
Ad esempio, questa richiesta HeadObject è stata utilizzata per ottenere i metadati per lo stesso oggetto nel bucket testbucket.
aws s3api --endpoint-url <StorageGRID endpoint> head-object --bucket testbucket --key obj2test2
La risposta di successo include i metadati dell'oggetto e indica che l'oggetto scadrà tra 100 giorni e che ha soddisfatto la Regola 2.
{
"AcceptRanges": "bytes",
*"Expiration": "expiry-date=\"Thu, 01 Oct 2020 09:07:48 GMT\", rule-id=\"rule2\"",
"LastModified": "2020-06-23T09:07:48+00:00",
"ContentLength": 921,
"ETag": "\"9762f8a803bc34f5340579d4446076f7\""
"ContentType": "binary/octet-stream",
"Metadata": {}
}
|
|
Per i bucket con versioning abilitato, l' `x-amz-expiration`intestazione della risposta si applica solo alle versioni correnti degli oggetti. |