Mit Objektlebenszyklus-Richtlinien in Google Distributed Cloud (GDC) mit Air Gap können Sie die Datenaufbewahrung und den Ablauf von Daten in Ihren Storage-Buckets automatisieren. Sie können Regeln für Alter, Präfix und Tag definieren, um nicht versionierte Objekte zu löschen oder Versionen ohne manuelle Bereinigung zu übertragen und ablaufen zu lassen.
Hinweis
Storage-Buckets sind Ressourcen, die auf ein bestimmtes Projekt beschränkt sind. Das Projekt fungiert als Container, der Ihre Buckets gruppiert und ihre Verwaltung über den Management API-Server ermöglicht. Bevor Sie die Vorgänge auf dieser Seite ausführen können, müssen Sie entweder ein neues Projekt erstellen oder ein vorhandenes Projekt auswählen, für das Sie ausreichende Berechtigungen haben.
Erforderliche IAM-Rollen
Wenden Sie sich an Ihren IAM-Projektadministrator, um die folgenden Rollen in Ihrem Projekt-Namespace anzufordern:
- Projekt-Bucket-Administrator (
project-bucket-admin): Erstellen, Aktualisieren und Löschen von Storage-Buckets. - Project Bucket Object Viewer (
project-bucket-object-viewer): Details zu Storage-Buckets und -Objekten ansehen und prüfen.
Weitere Informationen finden Sie unter Bucket-Zugriff gewähren.
Umgebung vorbereiten
So führen Sie Befehle für den Management API-Server oder den globalen API-Server aus:
- Melden Sie sich an und generieren Sie die kubeconfig-Datei für den zonalen Verwaltungs-API-Server, falls Sie noch keine haben.
- Gehen Sie bei Dual-Zone-Buckets so vor:
- Prüfen Sie mit Ihrem Infrastrukturbetreiber, ob die benutzerdefinierte Ressource
BucketLocationConfigfür Ihre gekoppelten Zonen erstellt wurde. - Generieren Sie die kubeconfig-Datei für den globalen API-Server.
- Prüfen Sie mit Ihrem Infrastrukturbetreiber, ob die benutzerdefinierte Ressource
Objektlebenszyklus-Richtlinie für Bucket festlegen
Mit der Richtlinie für den Objektlebenszyklus können Sie Objekte in Ihren Buckets automatisch verwalten. So können Sie Daten während ihrer gesamten Lebensdauer effizienter speichern. Eine Lebenszykluskonfiguration ist eine Liste von Regeln, mit denen eine Gruppe von Objekten basierend auf bestimmten Übereinstimmungskriterien abläuft.
Sie können einen Bucket mit oder ohne Richtlinie für den Objektlebenszyklus erstellen. Nachdem der Bucket erstellt wurde, können Sie eine neue Lebenszyklusrichtlinie anwenden, eine vorhandene aktualisieren oder eine vorhandene entfernen.
Bei Buckets ohne Versionsverwaltung bedeutet das Ablaufen, dass das Objekt asynchron endgültig entfernt wird.
Wenn bei versionierten Buckets die aktuelle Objektversion keine Löschmarkierung ist, wird die aktuelle Version durch den Ablauf inaktuell und der aktuellen Version wird eine Löschmarkierung hinzugefügt.
Aktualisieren Sie das Feld Bucket.spec.bucketPolicy.lifecyclePolicy, um die Richtlinie für den Objektlebenszyklus festzulegen und zu ändern.
Befehlszeile
Im Folgenden finden Sie einige Beispiele für Bucket-Ressourcen mit unterschiedlichen Richtlinien für den Objektlebenszyklus:
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/"
Alle Aktualisierungen der Lebenszyklusrichtlinie gelten für die vorhandenen Objekte und für Objekte, die nach der Aktualisierung hochgeladen werden.
Wenn für den Bucket auch die Objektsperre konfiguriert ist, werden Objekte vor dem Ablauf der Aufbewahrungstage geschützt.