Questa pagina mostra come impostare i criteri del ciclo di vita degli oggetti per i bucket di archiviazione air-gapped di Google Distributed Cloud (GDC).
Prima di iniziare
I bucket di archiviazione sono risorse con ambito ristretto a un progetto specifico. Il progetto funge da container, raggruppando i bucket e consentendone la gestione tramite il server API di gestione. Prima di poter eseguire le operazioni descritte in questa pagina, devi creare un nuovo progetto o selezionarne uno esistente in cui disponi delle autorizzazioni sufficienti.
Ruoli IAM richiesti
Contatta l'amministratore del 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 maggiori informazioni, vedi Concedere l'accesso ai bucket.
Prepara l'ambiente
Per eseguire comandi sul server API di gestione o sul server API globale:
- Accedi e genera il file kubeconfig per il server API di gestione zonale, se non ne hai uno.
- Per i bucket a doppia zona:
- 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 i criteri del ciclo di vita degli oggetti sul bucket
Puoi utilizzare i criteri del ciclo di vita degli oggetti per gestire automaticamente gli oggetti nei bucket. In questo modo, puoi archiviare i dati in modo più efficiente durante il loro ciclo di vita. Una configurazione del ciclo di vita è un elenco di regole per far scadere un gruppo di oggetti in base a determinati criteri di corrispondenza.
Puoi creare un bucket con o senza criteri del ciclo di vita degli oggetti. Inoltre, puoi applicare nuovi criteri del ciclo di vita, aggiornare quelli esistenti o rimuoverli dopo la creazione del bucket.
Per i bucket senza controllo delle versioni, la scadenza comporta la rimozione permanente asincrona dell'oggetto.
Per i bucket con controllo delle versioni, se la versione corrente dell'oggetto non è un indicatore di eliminazione, la scadenza rende la versione corrente non corrente e poi aggiunge un indicatore di eliminazione alla versione corrente.
Per impostare e modificare i criteri del ciclo di vita degli oggetti, aggiorna il campo Bucket.spec.bucketPolicy.lifecyclePolicy.
CLI
Di seguito sono riportati alcuni esempi di risorse bucket con criteri del ciclo di vita degli oggetti diversi configurati:
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/"
Tutti gli aggiornamenti ai criteri del ciclo di vita si applicano agli oggetti esistenti e agli oggetti caricati dopo l'aggiornamento.
Se nel bucket è configurato anche il blocco degli oggetti, questi vengono protetti dalla scadenza prima della fine dei giorni di conservazione.