Le policy del ciclo di vita degli oggetti in Google Distributed Cloud (GDC) con air gap ti consentono di automatizzare la conservazione dei dati e la scadenza nei bucket di archiviazione. Puoi definire regole relative a età, prefisso e tag per eliminare oggetti non sottoposti a controllo delle versioni o per eseguire la transizione e la scadenza delle versioni senza pulizia manuale.
Prima di iniziare
I bucket di archiviazione sono risorse con ambito limitato a un progetto specifico. Il progetto funge da container, raggruppando i bucket e consentendone la gestione tramite il server dell'API di gestione. Prima di poter eseguire le operazioni in questa pagina, devi creare un nuovo progetto o selezionarne uno esistente per cui disponi di autorizzazioni sufficienti.
Ruoli IAM richiesti
Contatta l'amministratore di progetto IAM per richiedere i seguenti ruoli nello spazio dei nomi del progetto:
- Project Bucket Admin (
project-bucket-admin): crea, aggiorna ed elimina i bucket di archiviazione. - Project Bucket Object Viewer (
project-bucket-object-viewer): visualizza e controlla i dettagli dei bucket e degli oggetti di archiviazione.
Per saperne di più, consulta Concedi l'accesso al bucket.
prepara l'ambiente
Per eseguire comandi sul server API di gestione o sul server API globale, segui questi passaggi:
- Accedi e genera il file kubeconfig per il server API di gestione a livello di zona, se non ne hai uno.
- Per i bucket a due zone, segui questi passaggi:
- Verifica con l'operatore dell'infrastruttura (IO) che la risorsa personalizzata
BucketLocationConfigsia stata creata per le zone accoppiate. - Genera il file kubeconfig per il server API globale.
- Verifica con l'operatore dell'infrastruttura (IO) che la risorsa personalizzata
Imposta la policy del ciclo di vita degli oggetti sul bucket
Puoi utilizzare la policy del ciclo di vita degli oggetti per gestire automaticamente gli oggetti nei tuoi bucket. In questo modo, puoi archiviare i dati in modo più efficiente per tutta la loro durata. Una configurazione del ciclo di vita è un elenco di regole per la scadenza di un gruppo di oggetti in base a determinati criteri di corrispondenza.
Puoi creare un bucket con o senza policy del ciclo di vita degli oggetti. Puoi applicare nuove policy del ciclo di vita, aggiornare quelle esistenti o rimuoverle dopo la creazione del bucket.
Per i bucket senza controllo delle versioni, la scadenza comporta la rimozione definitiva dell'oggetto in modo asincrono.
Per i bucket con controllo delle versioni, se la versione corrente dell'oggetto non è un indicatore di eliminazione, la scadenza rende non corrente la versione corrente e aggiunge un indicatore di eliminazione alla versione corrente.
Per impostare e modificare la policy del ciclo di vita degli oggetti, aggiorna il campo Bucket.spec.bucketPolicy.lifecyclePolicy.
Interfaccia a riga di comando
Di seguito sono riportati alcuni esempi di risorse bucket con diverse policy del ciclo di vita degli oggetti configurate:
apiVersion: object.gdc.goog/v1
kind: Bucket
metadata:
name: BUCKET_NAME
namespace: NAMESPACE_NAME
spec:
description: "Bucket with lifecycle rule to expire all objects after 365 days"
storageClass: Standard
bucketPolicy:
lifecyclePolicy:
enable: true
lifecycleRules:
- expiration:
days: 365
id: expire-all-after-365-days
status: Enabled
----------
apiVersion: object.gdc.goog/v1
kind: Bucket
metadata:
name: BUCKET_NAME
namespace: NAMESPACE_NAME
spec:
description: "Bucket with lifecycle rule to expire objects in the logs/ directory after 30 days"
storageClass: Standard
bucketPolicy:
lifecyclePolicy:
enable: true
lifecycleRules:
- expiration:
days: 30
id: expire-logs-dir-after-30-days
status: Enabled
filter:
prefixFilter: "logs/"
----------
apiVersion: object.gdc.goog/v1
kind: Bucket
metadata:
name: BUCKET_NAME
namespace: NAMESPACE_NAME
spec:
description: "Bucket with lifecycle rule to expire objects having specific tag after 30 days"
storageClass: Standard
bucketPolicy:
lifecyclePolicy:
enable: true
lifecycleRules:
- expiration:
days: 30
id: expire-tagged-objects-after-30-days
status: Enabled
filter:
tagFilters:
- key: environment
value: dev
----------
apiVersion: object.gdc.goog/v1
kind: Bucket
metadata:
name: BUCKET_NAME
namespace: NAMESPACE_NAME
spec:
description: "Bucket with lifecycle rule to expire noncurrent versions after 90 days"
storageClass: Standard
bucketPolicy:
lifecyclePolicy:
enable: true
lifecycleRules:
- noncurrentExpiration:
noncurrentDays: 90
id: expire-noncurrent-after-90-days
status: Enabled
----------
apiVersion: object.gdc.goog/v1
kind: Bucket
metadata:
name: BUCKET_NAME
namespace: NAMESPACE_NAME
spec:
description: "Bucket with lifecycle rule to expire objects on a specific date"
storageClass: Standard
bucketPolicy:
lifecyclePolicy:
enable: true
lifecycleRules:
- expiration:
date: "2027-01-01T00:00:00Z"
id: expire-on-specific-date
status: Enabled
----------
apiVersion: object.gdc.goog/v1
kind: Bucket
metadata:
name: BUCKET_NAME
namespace: NAMESPACE_NAME
spec:
description: "Bucket with multiple lifecycle rules and advanced filters"
storageClass: Standard
bucketPolicy:
lifecyclePolicy:
enable: true
lifecycleRules:
# Rule 1: Expire objects in 'tmp/' directory AND tagged with 'status=ready' after 7 days
- expiration:
days: 7
id: expire-ready-tmp-objects
status: Enabled
filter:
prefixFilter: "tmp/"
tagFilters:
- key: status
value: ready
# Rule 2: Expire all objects in 'logs/' directory after 90 days
- expiration:
days: 90
id: expire-logs-after-90-days
status: Enabled
filter:
prefixFilter: "logs/"
Eventuali aggiornamenti alla policy del ciclo di vita si applicano agli oggetti esistenti e a quelli caricati dopo l'aggiornamento.
Quando nel bucket è configurato anche il blocco degli oggetti, questi sono protetti dalla scadenza prima del termine dei giorni di conservazione.