Defina a política de ciclo de vida dos objetos para contentores de armazenamento

Esta página mostra como definir a política de ciclo de vida de objetos para Google Distributed Cloud (GDC) air-gapped storage buckets.

Antes de começar

Um espaço de nomes do projeto gere os recursos de buckets no servidor da API de gestão. Tem de ter um projeto para trabalhar com buckets e objetos.

Também tem de ter as autorizações de bucket adequadas para realizar a seguinte operação. Consulte Conceda acesso ao bucket.

Defina a política de ciclo de vida de objetos no bucket

Pode usar a política de ciclo de vida de objetos para gerir automaticamente os objetos nos seus buckets. Isto ajuda a armazenar os dados de forma mais eficiente ao longo da respetiva duração. Uma configuração do ciclo de vida é uma lista de regras para expirar um grupo de objetos com base em determinados critérios de correspondência.

Pode criar um bucket com ou sem uma política de ciclo de vida de objetos. Além disso, pode aplicar uma nova política de ciclo de vida, atualizar uma existente ou remover uma existente após a criação do bucket.

Para buckets sem controlo de versões, a expiração significa remover permanentemente o objeto de forma assíncrona.

Para buckets com controlo de versões, se a versão atual do objeto não for um marcador de eliminação, a expiração torna a versão atual não atual e, em seguida, adiciona um marcador de eliminação à versão atual.

Para definir e modificar a política de ciclo de vida de objetos, atualize o campo Bucket.spec.bucketPolicy.lifecyclePolicy.

CLI

Seguem-se alguns exemplos de recursos de buckets com uma política de ciclo de vida de objetos diferente configurada:

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/"

Todas as atualizações à política de ciclo de vida aplicam-se aos objetos existentes e aos objetos carregados após a atualização.

Quando o bucket também tem o bloqueio de objetos configurado, os objetos são protegidos contra a expiração antes de terminarem os dias de retenção.