Les règles de cycle de vie des objets dans Google Distributed Cloud (GDC) sous air gap vous permettent d'automatiser la conservation des données et leur expiration dans vos buckets de stockage. Vous pouvez définir des règles d'âge, de préfixe et de tag pour supprimer des objets sans version, ou pour effectuer la transition et l'expiration des versions sans nettoyage manuel.
Avant de commencer
Les buckets de stockage sont des ressources limitées à un projet spécifique. Le projet agit comme un conteneur, regroupant vos buckets et permettant de les gérer via le serveur de l'API Management. Avant de pouvoir effectuer les opérations décrites sur cette page, vous devez créer un projet ou en sélectionner un existant pour lequel vous disposez des autorisations suffisantes.
Rôles IAM requis
Contactez l'administrateur de projet IAM pour demander les rôles suivants dans l'espace de noms de votre projet :
- Administrateur de buckets de projet (
project-bucket-admin) : créer, mettre à jour et supprimer des buckets de stockage. - Lecteur d'objets de bucket de projet (
project-bucket-object-viewer) : permet d'afficher et de vérifier les détails des buckets et des objets de stockage.
Pour en savoir plus, consultez Accorder l'accès à un bucket.
Préparer votre environnement
Pour exécuter des commandes sur le serveur d'API Management ou le serveur d'API global, procédez comme suit :
- Connectez-vous et générez le fichier kubeconfig pour le serveur d'API de gestion zonale si vous n'en avez pas.
- Pour les buckets birégionaux, procédez comme suit :
- Vérifiez auprès de votre opérateur d'infrastructure (IO) que la ressource personnalisée
BucketLocationConfiga été créée pour vos zones associées. - Générez le fichier kubeconfig pour le serveur d'API global.
- Vérifiez auprès de votre opérateur d'infrastructure (IO) que la ressource personnalisée
Définir une règle de cycle de vie des objets sur un bucket
Vous pouvez utiliser une règle de cycle de vie des objets pour gérer automatiquement les objets de vos buckets. Cela vous aide à stocker les données plus efficacement tout au long de leur cycle de vie. Une configuration de cycle de vie est une liste de règles permettant de faire expirer un groupe d'objets en fonction de certains critères de correspondance.
Vous pouvez créer un bucket avec ou sans règle de cycle de vie des objets. Vous pouvez appliquer une nouvelle règle de cycle de vie, mettre à jour une règle existante ou supprimer une règle existante après la création du bucket.
Pour les buckets sans gestion des versions, l'expiration signifie la suppression définitive de l'objet de manière asynchrone.
Pour les buckets avec gestion des versions, si la version actuelle de l'objet n'est pas un marqueur de suppression, l'expiration fait passer la version actuelle à l'état archivé, puis ajoute un marqueur de suppression à la version actuelle.
Pour définir et modifier la règle de cycle de vie des objets, mettez à jour le champ Bucket.spec.bucketPolicy.lifecyclePolicy.
CLI
Voici quelques exemples de ressources de bucket avec différentes règles de cycle de vie des objets configurées :
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/"
Toute mise à jour de la règle de cycle de vie s'applique aux objets existants et aux objets importés après la mise à jour.
Lorsque le verrouillage d'objets est également configuré sur le bucket, les objets sont protégés contre l'expiration avant la fin de la période de conservation.