Cette page explique comment définir une règle de cycle de vie des objets pour les buckets de stockage isolés de Google Distributed Cloud (GDC).
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 votre administrateur de projet IAM pour demander les rôles suivants dans l'espace de noms de votre projet :
- Administrateur de bucket de projet (
project-bucket-admin) : créez, mettez à jour et supprimez des buckets de stockage. - Lecteur d'objets de bucket de projet (
project-bucket-object-viewer) : affichez et vérifiez 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 de gestion 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 à double zone, procédez comme suit :
- Vérifiez auprès de votre opérateur d'infrastructure (OI) que la ressource personnalisée
BucketLocationConfiga été créée pour vos zones appairées. - Générez le fichier kubeconfig pour le serveur d'API global.
- Vérifiez auprès de votre opérateur d'infrastructure (OI) 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 d'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 également 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 version, l'expiration signifie la suppression définitive de l'objet de manière asynchrone.
Pour les buckets avec version, si la version actuelle de l'objet n'est pas un marqueur de suppression, l'expiration rend la version actuelle obsolète, 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/"
Toutes les mises à jour de la règle de cycle de vie s'appliquent aux objets existants et aux objets importés après la mise à jour.
Lorsque le verrouillage d'objet est également configuré pour le bucket, les objets sont protégés contre l'expiration avant la fin des jours de conservation.