Menetapkan kebijakan siklus proses objek untuk bucket penyimpanan

Halaman ini menunjukkan cara menetapkan kebijakan siklus proses objek untuk bucket penyimpanan Google Distributed Cloud (GDC) yang terisolasi.

Sebelum memulai

Bucket penyimpanan adalah resource yang dicakup ke project tertentu. Project bertindak sebagai penampung, mengelompokkan bucket Anda dan memungkinkan pengelolaannya melalui server Management API. Sebelum dapat melakukan operasi di halaman ini, Anda harus membuat project baru atau memilih project yang sudah ada dan memiliki izin yang memadai.

Peran IAM yang diperlukan

Hubungi Admin Project IAM Anda untuk meminta peran berikut di namespace project Anda:

  • Project Bucket Admin (project-bucket-admin): membuat, memperbarui, dan menghapus bucket penyimpanan.
  • Project Bucket Object Viewer (project-bucket-object-viewer): melihat dan memeriksa detail bucket dan objek penyimpanan.

Untuk mengetahui informasi selengkapnya, lihat Memberikan akses ke bucket.

Menyiapkan lingkungan Anda

Untuk menjalankan perintah terhadap server Management API atau server Global API, lakukan hal berikut:

  1. Login dan buat file kubeconfig untuk server Management API zonal jika Anda belum memilikinya.
  2. Untuk bucket zona ganda, lakukan hal berikut:
    • Pastikan dengan Operator Infrastruktur (IO) Anda bahwa resource kustom BucketLocationConfig telah dibuat untuk zona yang dipasangkan.
    • Buat file kubeconfig untuk server Global API.

Menetapkan kebijakan siklus proses objek pada bucket

Anda dapat menggunakan kebijakan siklus proses objek untuk mengelola objek di bucket secara otomatis. Hal ini membantu Anda menyimpan data secara lebih efisien sepanjang masa pakainya. Konfigurasi siklus proses adalah daftar aturan untuk mengakhiri masa berlaku sekelompok objek berdasarkan kriteria pencocokan tertentu.

Anda dapat membuat bucket dengan atau tanpa kebijakan siklus proses objek. Selain itu, Anda dapat menerapkan kebijakan siklus proses baru, memperbarui kebijakan yang ada, atau menghapus kebijakan yang ada setelah bucket dibuat.

Untuk bucket yang tidak memiliki versi, masa berlaku berakhir berarti menghapus objek secara permanen secara asinkron.

Untuk bucket yang memiliki versi, jika versi objek saat ini bukan penanda penghapusan, masa berlaku berakhir akan membuat versi saat ini menjadi versi lama, lalu menambahkan penanda penghapusan ke versi saat ini.

Untuk menetapkan dan mengubah kebijakan siklus proses objek, perbarui kolom Bucket.spec.bucketPolicy.lifecyclePolicy.

CLI

Berikut adalah beberapa contoh resource bucket dengan kebijakan siklus proses objek yang berbeda yang dikonfigurasi:

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

Setiap pembaruan pada kebijakan siklus proses berlaku untuk objek yang ada dan objek yang diupload setelah pembaruan.

Jika bucket juga memiliki penguncian objek yang dikonfigurasi, objek akan dilindungi dari masa berlaku yang berakhir sebelum hari retensi berakhir.