Gestione del ciclo di vita degli oggetti

Configurazione Esempi di configurazione

Per supportare casi d'uso comuni come l'impostazione di una durata (TTL) per gli oggetti, la conservazione delle versioni non correnti degli oggetti o il "downgrade" di archiviazione di Kubernetes per facilitare la gestione dei costi, Cloud Storage offre funzionalità di gestione del ciclo di vita.

In questa pagina vengono descritte la funzionalità e le opzioni disponibili quando la utilizzi. Per il formato generale di un file di configurazione del ciclo di vita, consulta rappresentazione delle risorse bucket per JSON o formato di configurazione del ciclo di vita per XML.

Introduzione

Per utilizzare Gestione del ciclo di vita degli oggetti, devi definire un ciclo di vita che deve essere impostata su un bucket. La configurazione contiene un insieme di regole applicabili agli oggetti attuali e futuri nel bucket. Quando soddisfa i criteri di una delle regole, Cloud Storage esegue automaticamente un'azione specificata sull'oggetto. Ecco alcuni casi d'uso di esempio:

  • Eseguire il downgrade a una classe di archiviazione degli oggetti più vecchi di 365 giorni Coldline Storage.
  • Eliminare gli oggetti creati prima del 1° gennaio 2019.
  • Conserva solo le 3 versioni più recenti di ciascun oggetto in un bucket con il controllo delle versioni abilitato.

Configurazione del ciclo di vita

Ogni configurazione della gestione del ciclo di vita contiene un insieme di regole. Ogni regola contiene un'azione e una o più condizioni.

  • Un oggetto deve corrispondere a tutte le condizioni specificate in una regola per nella regola da eseguire.

  • Se specifichi più regole che contengono la stessa azione, l'azione viene su un oggetto quando quest'ultimo soddisfa le condizioni in uno qualsiasi dei le regole del caso.

  • Se più regole vengono soddisfatte contemporaneamente per un'unica regola, , Cloud Storage esegue l'azione associata a un solo oggetto del regolamento sulla base delle seguenti considerazioni:

    • L'azione Delete ha la precedenza su qualsiasi azione SetStorageClass.
    • L'azione SetStorageClass che passa l'oggetto alla classe di archiviazione con i prezzi di archiviazione at-rest più bassi ha la precedenza.

    Ad esempio, se hai una regola che cambia la classe dell'oggetto in Nearline Storage e un'altra regola che cambia la classe dell'oggetto in Coldline Storage, ma entrambe le regole utilizzano la stessa condizione, cambia sempre in Coldline Storage se la condizione è sono soddisfatte determinate condizioni.

  • Dovresti testare le regole del ciclo di vita sui dati di sviluppo prima di applicarle alle per garantire che le regole non eseguano azioni in insiemi indesiderati conditions. Se ciò non è possibile, dovresti eseguire il test su un piccolo sottoinsieme del tuo di produzione utilizzando Condizioni matchesPrefix o matchesSuffix nelle regole.

  • Le modifiche alla configurazione del ciclo di vita di un bucket possono richiedere fino a 24 ore e Gestione del ciclo di vita degli oggetti potrebbe comunque eseguire azioni in base alla vecchia configurazione in quel periodo.

    Ad esempio, se modifichi una condizione age da 10 a 20 giorni, viene l'oggetto vecchio di 11 giorni potrebbe essere eliminato da Gestione del ciclo di vita degli oggetti fino a 24 ore dopo, in base ai criteri della vecchia configurazione.

Per casi d'uso, vedi Esempi di configurazione per la gestione del ciclo di vita degli oggetti.

Azioni del ciclo di vita

Una regola del ciclo di vita specifica esattamente una delle seguenti azioni:

Elimina

L'azione Delete elimina un oggetto quando quest'ultimo soddisfa tutte le condizioni è specificato nella regola del ciclo di vita. Per impostazione predefinita, quando un oggetto attivo, diventa eliminato temporaneamente e Cloud Storage lo conserva per una durata di sette giorni. Puoi ripristinare questo file eliminato temporaneamente dell'oggetto all'interno della durata di conservazione dell'eliminazione temporanea.

Eccezione: nei bucket in cui è abilitato il controllo delle versioni degli oggetti, viene eliminata l'azione di un oggetto ne fa sì che diventi una versione non corrente, mentre viene eliminata se una versione non corrente viene eliminata dal bucket, Consulta le per l'eliminazione degli oggetti per un esempio dell'utilizzo di Delete insieme al controllo delle versioni degli oggetti.

L'azione Delete non ha effetto su un oggetto se quest'ultimo ha un blocco dell'oggetto o un criterio di conservazione a cui non è ancora stato applicato completato. Finché le condizioni nell'azione Delete rimangono soddisfatte per dell'oggetto, l'azione Delete si verifica dopo la rimozione di qualsiasi blocco dell'oggetto il criterio di conservazione sia rispettato.

SetStorageClass

L'azione SetStorageClass modifica la classe di archiviazione di un oggetto e aggiorna la data e ora di modifica dell'oggetto quando quest'ultimo soddisfa tutti solo in base alle condizioni specificate nella regola del ciclo di vita.

SetStorageClass supporta le seguenti transizioni delle classi di archiviazione:

Classe di archiviazione originale Nuova classe di archiviazione
Spazio di archiviazione DRA (Durabile Riduzione della Disponibilità) Nearline Storage
Coldline Storage
Archive Storage
Multi-Regional Storage/Regional Storage1
Standard Storage, Multi-Regional Storage o Regional Storage Nearline Storage
Coldline Storage
Archive Storage
Nearline Storage Coldline Storage
Archive Storage
Coldline Storage Archive Storage

1 Per i bucket in una regione, la nuova classe di archiviazione non può essere Multi-Regional Storage. Per i bucket in una multiregione o regione doppia, la nuova classe di archiviazione non può essere Regional Storage.

Cloud Storage non convalida la correttezza della classe di archiviazione una transizione. Ciò significa che puoi specificare una transizione della classe di archiviazione elencati nella tabella riportata sopra, ma la transizione non verrà effettuata. Devi verificare che le regole del ciclo di vita utilizzino una delle transizioni delle classi di archiviazione elencate.

Interrompi caricamenti multiparte incompleti

L'azione AbortIncompleteMultipartUpload interrompe un'azione incompleta caricamento multiparte ed elimina le parti associate quando il caricamento soddisfi le condizioni specificate nella regola del ciclo di vita.

Con questa azione possono essere utilizzate solo le seguenti condizioni del ciclo di vita:

Tentativo di creare una regola che utilizza AbortIncompleteMultipartUpload azione in combinazione con altre condizioni genera un errore.

Condizioni del ciclo di vita

Una regola del ciclo di vita include le condizioni che un oggetto deve soddisfare prima che l'azione definita nella regola si verifica sull'oggetto. Le regole del ciclo di vita supportano le seguenti condizioni:

Tutte le condizioni sono facoltative, ma è richiesta almeno una condizione. Se tentare di impostare una configurazione del ciclo di vita non valida, ad esempio utilizzando un'azione o condizione inesistente, ricevi una risposta di errore 400 Bad request, e l'eventuale configurazione esistente del ciclo di vita rimane attiva.

age

La condizione age è soddisfatta quando una risorsa raggiunge l'età specificata (in giorni). L'età viene misurata a partire dal momento della creazione della risorsa.

  • Per gli oggetti, l'ora di creazione è l'ora in cui l'oggetto viene correttamente vengono scritte nel bucket, ad esempio al termine di un caricamento.

    • L'età di un oggetto non è influenzata dal fatto che l'oggetto diventi un non corrente.
  • Per i caricamenti multiparte, l'ora di creazione corrisponde all'ora in cui viene effettuato il caricamento viene avviata.

Ad esempio, se una risorsa viene creata il 10/01/2022 alle 10:00 UTC e l'age è 10 giorni, la condizione è soddisfatta per la risorsa e dopo le 10:00 UTC del 20/01/2022.

createdBefore

La condizione createdBefore è soddisfatta quando un oggetto viene creato prima a mezzanotte della data specificata in UTC.

customTimeBefore

La condizione customTimeBefore è soddisfatta quando la parte relativa alla data di un Custom-Time metadati dell'oggetto sono precedenti alla data specificata in questa condizione. Questa condizione viene impostata utilizzando il formato di data YYYY-MM-DD. customTimeBefore non è mai soddisfatto per un oggetto senza Custom-Time di metadati.

daysSinceCustomTime

La condizione daysSinceCustomTime è soddisfatta quando il numero specificato di giorni sono trascorsi dalla data e dall'ora specificate nel campo Campo di metadati Custom-Time. Ad esempio, se il valore Custom-Time di un oggetto è 2020-05-16T10:00:00Z e la condizione daysSinceCustomTime è 10 giorni, poi la condizione è soddisfatta per l'oggetto a partire dalle 10:00 UTC del 26/05/2020.

daysSinceCustomTime non è mai soddisfatto per un oggetto senza Custom-Time di metadati.

daysSinceNoncurrentTime

La condizione daysSinceNoncurrentTime in genere viene utilizzata solo insieme con il controllo delle versioni degli oggetti. La condizione è soddisfatta quando il valore è trascorso un numero di giorni da quando l'oggetto è diventato non corrente, perché la versione live è stata eliminata o sostituita. Ad esempio, se un oggetto diventa non corrente alle 15:00 UTC e la condizione daysSinceNoncurrentTime delle 2020/07/08 è di 10 giorni, la condizione è soddisfatta per l'oggetto da e dopo 18/07/2020 15:00 UTC.

isLive

In genere, la condizione isLive viene utilizzata solo insieme a Controllo delle versioni degli oggetti: Se impostata su false, questa condizione è soddisfatta per qualsiasi non corrente di un oggetto. Se impostato su true, questa condizione è soddisfatta per la versione live di un oggetto. Se non utilizzi il controllo delle versioni, gli oggetti sono considerati attivi e corrispondono quando isLive è true.

matchesPrefix e matchesSuffix

Le condizioni matchesPrefix e matchesSuffix sono soddisfatte quando le l'inizio o la fine del nome dell'oggetto è una corrispondenza esatta sensibile alle maiuscole il prefisso o il suffisso specificati. Puoi specificare più stringhe come elenco (ad ad esempio "matchesSuffix": [".jpg", ".png"]).

Quando usi matchesPrefix, non includere il nome del bucket o il valore / che precede i nomi degli oggetti nella maggior parte dei percorsi di richiesta. Ad esempio, nel Google Cloud CLI, il percorso di un oggetto in un bucket denominato my_bucket ha un oggetto simile a gs://my_bucket/pictures/paris_2022.jpg. Per far corrispondere l'oggetto, puoi utilizzare una condizione come "matchesPrefix":["pictures/paris_"].

Puoi specificare fino a 50 prefissi e 50 suffissi in tutte le regole. R il prefisso o il suffisso non possono essere utilizzati due volte in una singola condizione.

matchesStorageClass

La condizione matchesStorageClass è soddisfatta quando un oggetto nel bucket viene come classe di archiviazione specificata. Puoi utilizzare i seguenti valori per matchesStorageClass: STANDARD, NEARLINE, COLDLINE, ARCHIVE, MULTI_REGIONAL, REGIONAL e DURABLE_REDUCED_AVAILABILITY.

In genere, se intendi utilizzare la condizione matchesStorageClass su Oggetti Standard Storage, devi includere anche quanto segue:

  • Se il bucket si trova in una regione, includi REGIONAL e DURABLE_REDUCED_AVAILABILITY nella condizione.

  • Se il bucket si trova in una località multiregionale o a due regioni, includi MULTI_REGIONAL e DURABLE_REDUCED_AVAILABILITY nella condizione.

L'inclusione di queste classi aggiuntive garantisce che la regola del ciclo di vita copra le vecchie che potrebbero essere impostati su classi di archiviazione legacy.

noncurrentTimeBefore

La condizione noncurrentTimeBefore in genere viene utilizzata solo insieme con il controllo delle versioni degli oggetti. La condizione è soddisfatta per gli oggetti che sono diventati non corrente in una data precedente a quella specificata in questa condizione. La viene impostata utilizzando il formato di data YYYY-MM-DD. noncurrentTimeBefore è mai soddisfatto per un oggetto attivo.

numNewerVersions

In genere, la condizione numNewerVersions viene utilizzata solo insieme a Controllo delle versioni degli oggetti: Se il valore di questa condizione è impostato su N, viene generato un oggetto soddisfa la condizione quando esistono almeno N versioni (tra cui la versione live) più recente di questa versione. Per una versione dell'oggetto attiva, il numero di istanze è considerata 0. Per la versione non corrente più recente, il numero delle versioni più recenti è 1 (o 0 se non esiste una versione attiva dell'oggetto) e quindi attiva.

Comportamento del ciclo di vita degli oggetti

Cloud Storage controlla regolarmente tutti gli oggetti in un bucket per cui La Gestione del ciclo di vita è configurata ed esegue tutte le azioni applicabili in base alle regole del bucket. Cloud Storage esegue un'azione in modo asincrono quindi può intercorrere un certo periodo di tempo tra il momento in cui le condizioni sono soddisfatte e il momento in cui viene intrapresa un'azione. Le applicazioni non devono fare affidamento su azioni del ciclo di vita che si verificano entro un certo periodo di tempo dal raggiungimento di una condizione del ciclo di vita.

Ad esempio, se un oggetto soddisfa le condizioni per l'eliminazione, non vengano eliminati immediatamente e l'oggetto viene visualizzato finché l'azione del ciclo di vita eseguite sull'oggetto. Nei bucket in cui è abilitato il controllo delle versioni degli oggetti, significa che un oggetto attivo esisterà in uno stato non corrente per un certo anche se anche la versione non corrente dell'oggetto soddisfa il le condizioni della regola.

Gli addebiti applicabili continuano a essere applicati finché l'oggetto rimane nella versione originale. stato, con una sola eccezione: i costi di archiviazione at-rest vengono esclusi se l'oggetto soddisfa tutti i seguenti criteri:

  • L'oggetto si trova in un bucket con l'eliminazione temporanea disabilitata
  • L'oggetto è soggetto a una regola con un'azione Delete
  • L'unica condizione per la regola è una condizione age
  • La condizione age è soddisfatta per l'oggetto

SetStorageClass considerazioni sui costi

Analogamente alla modifica manuale della classe di archiviazione di un oggetto, utilizzando SetStorageClass viene conteggiato come un'operazione di classe A e viene fatturata in base alla tariffa determinato dalla classe di archiviazione di destinazione.

A differenza della modifica manuale della classe di archiviazione di un oggetto, l'uso di SetStorageClass non riscrivere un oggetto. Ciò conferisce alla Gestione del ciclo di vita degli oggetti determinati prezzi vantaggi:

Ad esempio, supponi di caricare un oggetto come Nearline Storage e 20 giorni dopo la configurazione del ciclo di vita cambia la classe di archiviazione dell'oggetto Coldline Storage. Questa modifica non comporta costi di recupero o eliminazione anticipata. Se poi elimini l'oggetto 60 giorni dopo la modifica della classe di archiviazione, un addebito per l'eliminazione anticipata di solo 10 giorni, poiché la classe Coldline Storage ha e la durata minima dell'archiviazione è di 80 giorni.

In confronto, supponiamo che tu carichi un oggetto come Nearline Storage e 20 giorni in seguito modificare la classe di archiviazione con una riscrittura in Coldline Storage). Questa modifica prevede una tariffa di recupero e una il costo di eliminazione anticipata. Se elimini l'oggetto 60 giorni dopo la riscrittura, è previsto un addebito per l'eliminazione anticipata di 30 giorni.

In entrambi gli esempi, se l'eliminazione temporanea è abilitata sul bucket, i costi di archiviazione aumentano, mentre quelli per l'eliminazione anticipata si riducono in base la durata del periodo di conservazione dell'eliminazione temporanea.

Data/ora creazione oggetto

In molti casi, il caricamento di un oggetto viene completato subito dopo il suo inizio. tuttavia, per caricamenti che avvengono in più richieste, ad esempio caricamenti ripristinabili, Potrebbero trascorrere alcuni giorni tra l'invio della richiesta di caricamento iniziale e il momento in cui quando viene inviata la richiesta di caricamento finale. In questi casi, devi tenere presente seguenti:

  • Un oggetto non è soggetto alle regole del ciclo di vita fino al completamento del suo caricamento.
  • L'ora di creazione di un oggetto si basa sul momento in cui viene completato il caricamento. Ciò influisce le condizioni del ciclo di vita age e createdBefore.
  • Quando imposti un Custom-Time per l'oggetto, lo fai all'inizio del per il caricamento. Se imposti un valore Custom-Time in base all'ora della richiesta, il valore Custom-Time potrebbe essere molto prima della data e dell'ora di creazione dell'oggetto. Questo influisce sulle condizioni del ciclo di vita customTimeBefore e daysSinceCustomTime.

Metadati relativi alla scadenza

Se viene specificata un'azione Delete per un bucket con la condizione age (e nessuna altre condizioni oltre a matchesStorageClass), alcuni oggetti potrebbero essere con metadati relativi alla data e all'ora di scadenza. La scadenza di un oggetto indica momento in cui l'oggetto diventa (o diventa) idoneo per l'eliminazione da parte di Gestione del ciclo di vita degli oggetti. La scadenza potrebbe cambiare poiché alla configurazione del ciclo di vita o ai criteri di conservazione.

Tieni presente che l'assenza dei metadati relativi alla data di scadenza non significa necessariamente l'oggetto non verrà eliminato, ma che le informazioni non saranno disponibili per stabilire quando e se verrà eliminato. Ad esempio, se l'oggetto l'ora di creazione è 10/01/2020 10:00 UTC e la condizione age è impostata a 10 giorni, la scadenza dell'oggetto è 20/01/2020 alle 10:00 UTC. Tuttavia, la scadenza non è disponibile per l'oggetto se:

  • Esistono altre condizioni specificate nella regola Delete, ad eccezione di matchesStorageClass.

  • Utilizza una condizione matchesStorageClass che non include la condizione dell'oggetto di archiviazione standard.

  • L'oggetto è sottoposto a un blocco, perché Cloud Storage non può sapere quando verrà rimossa la preautorizzazione.

  • L'eliminazione temporanea è abilitata sul tuo bucket.

Non ti viene addebitato alcun costo per l'archiviazione dopo la scadenza dell'oggetto, anche se non viene eliminato immediatamente. Puoi continuare ad accedere all'oggetto prima viene eliminato e sono responsabili di altri addebiti (richiesta, larghezza di banda larga). Se la scadenza non è disponibile per , l'archiviazione viene addebitata fino al momento in cui viene eliminato.

Quando lavori con le scadenze, tieni presente quanto segue:

  • Se il bucket ha un criterio di conservazione, la scadenza corrisponde a quella successiva della condizione age Gestione del ciclo di vita degli oggetti e dell'ora soddisfi il periodo di conservazione specificato dal criterio di conservazione.

  • Se per un oggetto sono applicabili più tempistiche di scadenza in conflitto a causa di diverse regole di gestione del ciclo di vita, la prima viene utilizzata l'ora di scadenza.

Opzioni per il monitoraggio delle azioni del ciclo di vita

Per monitorare le azioni di gestione del ciclo di vita intraprese da Cloud Storage, utilizza una delle seguenti opzioni:

  • Utilizza i log di utilizzo di Cloud Storage. Questa funzionalità registra sia e chi l'ha eseguita. Un valore pari a GCS Lifecycle Management nel campo cs_user_agent della voce di log indica è stata intrapresa da Cloud Storage in base a un ciclo di vita configurazione.
  • Abilita le notifiche Pub/Sub per Cloud Storage per il tuo bucket. Questa funzionalità invia notifiche a Pub/Sub a un argomento di tua scelta quando si verificano azioni specificate. Tieni presente che questa funzione non registra chi ha eseguito le azioni.

Passaggi successivi