Cette page vous explique comment définir une règle de cycle de vie des objets pour les buckets de stockage Google Distributed Cloud (GDC) avec isolation physique.
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 leur gestion via le serveur d'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 projet de bucket (
project-bucket-admin) : créer, mettre à jour et supprimer des buckets de stockage. - Lecteur de projet d'objets de bucket (
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 de l'API de gestion ou le serveur de l'API globale, 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 permet de 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 repère de suppression, l'expiration fait passer la version actuelle à l'état archivé, puis ajoute un repère 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.