Bagikan melalui


Struktur kebijakan manajemen siklus hidup Azure Blob Storage

Anda dapat menggunakan kebijakan manajemen siklus hidup untuk transisi blob ke tingkat akses hemat biaya berdasarkan pola penggunaannya. Anda juga dapat menghapus blob sepenuhnya di akhir siklus hidupnya. Kebijakan dapat beroperasi pada versi saat ini, versi dan rekam jepret sebelumnya, tetapi kebijakan tidak beroperasi pada blob dalam kontainer sistem seperti kontainer $logs atau $web . Untuk informasi umum, lihat Gambaran umum manajemen siklus hidup Azure Blob Storage.

Artikel ini menjelaskan elemen kebijakan manajemen siklus hidup. Untuk contoh kebijakan, lihat artikel berikut ini:

Petunjuk / Saran

Meskipun manajemen siklus hidup membantu Anda mengoptimalkan biaya untuk satu akun, Anda dapat menggunakan Tindakan Azure Storage untuk menyelesaikan beberapa operasi data dalam skala besar di beberapa akun.

Aturan

Kebijakan manajemen siklus hidup adalah kumpulan aturan di dokumen JSON. Contoh JSON berikut menampilkan definisi aturan lengkap:

{
  "rules": [
    {
      "name": "rule1",
      "enabled": true,
      "type": "Lifecycle",
      "definition": {...}
    },
    {
      "name": "rule2",
      "type": "Lifecycle",
      "definition": {...}
    }
  ]
}
Nama Parameter Jenis parameter Catatan
aturan Daftar objek aturan Setidaknya satu aturan diperlukan dalam sebuah kebijakan. Anda dapat mendefinisikan hingga 100 aturan dalam kebijakan.

Setiap aturan dalam kebijakan memiliki beberapa parameter, yang dijelaskan dalam tabel berikut:

Nama Parameter Tipe Catatan Diperlukan
Nama string Nama aturan dapat menyertakan hingga 256 karakter alfanumerik. Nama aturan sensitif terhadap huruf besar/kecil. Itu harus unik dalam sebuah kebijakan. Ya
diaktifkan Boolean Boolean yang bersifat opsional agar aturan dapat dinonaktifkan sementara. Nilai defaultnya adalah true. Tidak.
jenis Sebuah nilai enum Jenis yang valid saat ini adalah Lifecycle. Ya
Definisi Sebuah objek yang mendefinisikan aturan siklus hidup Setiap definisi terdiri dari set filter dan set tindakan. Ya

Filter

Filter membatasi tindakan ke subset blob dalam akun penyimpanan. Anda dapat menggunakan filter untuk menentukan blob mana yang akan disertakan. Filter tidak menyediakan cara untuk menentukan blob mana yang akan dikecualikan. Jika lebih dari satu filter ditentukan, AND logis diterapkan ke semua filter. Tabel berikut ini menjelaskan setiap parameter.

Nama filter Tipe Deskripsi Diperlukan
blobTypes Array nilai enum yang telah ditentukan sebelumnya Jenis blob (baik blockblob atau appendBlob) Ya
prefixMatch Array yang berisi string String-string ini adalah awalan yang harus dicari kecocokannya. Tidak.
blobIndexMatch Deretan nilai kamus Nilai-nilai ini terdiri dari kunci tag indeks blob dan kondisi nilai yang akan dicocokkan. Tidak.

Filter pencocokan awalan

Jika Anda menerapkan filter prefixMatch, maka setiap aturan dapat menentukan hingga 10 awalan yang memperhatikan huruf besar/kecil. Untai awalan harus dimulai dengan nama kontainer. Misalnya, jika Anda ingin mencocokkan semua blob di bawah jalur https://myaccount.blob.core.windows.net/sample-container/blob1/..., tentukan prefixMatch sebagai sample-container/blob1.

Filter ini akan cocok dengan semua blob di sample-container mana nama dimulai dengan blob1. Jika Anda tidak menentukan kecocokan awalan, maka, aturan berlaku untuk semua blob dalam akun penyimpanan. String awalan tidak mendukung pencocokan karakter pengganti. Karakter seperti * dan ? diperlakukan sebagai literal string.

Filter kecocokan indeks blob

Jika Anda menerapkan filter blobIndexMatch , maka setiap aturan dapat menentukan hingga 10 kondisi tag indeks blob. Misalnya, jika Anda ingin mencocokkan semua blob dengan Project = Contoso di bawah https://myaccount.blob.core.windows.net/, maka filter blobIndexMatch adalah {"name": "Project","op": "==","value": "Contoso"}. Jika Anda tidak menentukan nilai untuk filter blobIndexMatch , maka aturan berlaku untuk semua blob dalam akun penyimpanan.

Tindakan

Anda harus menentukan setidaknya satu tindakan untuk setiap aturan. Tindakan diterapkan ke blob yang difilter saat kondisi pelaksanaan terpenuhi. Untuk mempelajari selengkapnya tentang kondisi menjalankan, lihat bagian Kondisi Menjalankan Tindakan di artikel ini. Tabel berikut ini menjelaskan setiap tindakan yang tersedia dalam definisi kebijakan.

Tindakan Deskripsi
TierToCool Atur blob ke tingkat akses dingin.

Tidak didukung dengan blob penambahan, blob halaman, atau dengan blob di akun penyimpanan blob blok premium.
TierToCold Atur blob ke tingkat akses dingin.

Tidak didukung dengan blob penambahan, blob halaman, atau dengan blob di akun penyimpanan blob blok premium.
TierToArchive Mengatur blob sebagai tingkat akses arsip.

Merehidrasi sebuah blob tidak memperbarui properti waktu terakhir diubah atau diakses terakhir dari blob tersebut. Akibatnya, tindakan ini mungkin memindahkan blob yang direhidrasi kembali ke lapisan arsip. Untuk mencegah hal ini terjadi, tambahkan kondisi daysAfterLastTierChangeGreaterThan ke tindakan ini.

Tindakan ini tidak didukung dengan blob penambahan, blob halaman, atau dengan blob di akun penyimpanan blob blok premium. Juga tidak didukung dengan blob yang menggunakan cakupan enkripsi atau dengan blob di akun yang dikonfigurasi untuk Penyimpanan zona redundan (ZRS), penyimpanan geo-zona-redundan (GZRS) / penyimpanan geo-zona-redundan akses baca (RA-GZRS).
aktifkanAutoTierKePanasDariDingin Jika blob diatur ke tingkat dingin, tindakan ini secara otomatis memindahkan blob tersebut ke tingkat panas saat blob diakses.

Tindakan ini hanya tersedia saat digunakan dengan kondisi eksekusi daysAfterLastAccessTimeGreaterThan .

Tindakan ini tidak berpengaruh pada blob yang disetel ke tingkat dingin sebelum mengaktifkan tindakan ini dalam aturan.

Tindakan ini memindahkan blob dari dingin ke panas hanya satu kali dalam 30 hari. Perlindungan ini diberlakukan untuk melindungi dari beberapa penalti penghapusan awal yang dibebankan ke akun.

Tidak didukung dengan versi atau rekam jepret sebelumnya.
Menghapus Menghapus blob.

Tidak didukung dengan blob halaman atau blob dalam kontainer yang bersifat tidak dapat diubah.

Jika Anda menentukan lebih dari satu tindakan pada blob yang sama, maka manajemen siklus hidup menerapkan tindakan paling murah ke blob. Misalnya, tindakan penghapusan lebih murah daripada tindakan tierToArchive dan tindakan tierToArchive lebih murah daripada tindakan tierToCool .

Menghapus tindakan di akun yang memiliki namespace hierarkis

Saat diterapkan ke akun dengan namespace hierarki diaktifkan, tindakan hapus akan menghapus direktori kosong. Jika direktori tidak kosong, tindakan hapus akan menghapus objek yang memenuhi kondisi kebijakan dalam siklus eksekusi kebijakan siklus hidup pertama. Jika tindakan tersebut menghasilkan direktori kosong yang juga memenuhi kondisi kebijakan, maka direktori tersebut akan dihapus dalam siklus eksekusi berikutnya, dan sebagainya.

Menghapus tindakan pada blob yang memiliki versi dan rekam jepret

Kebijakan manajemen siklus hidup tidak akan menghapus versi blob saat ini hingga versi atau rekam jepret sebelumnya yang terkait dengan blob tersebut telah dihapus. Jika blob di akun penyimpanan Anda memiliki versi atau rekam jepret sebelumnya, maka Anda harus menyertakan versi dan rekam jepret sebelumnya saat menentukan tindakan penghapusan sebagai bagian dari kebijakan.

Kondisi pelaksanaan tindakan

Semua kondisi pelaksanaan berbasis waktu. Jika jumlah hari yang telah berlalu melebihi jumlah hari yang ditentukan dalam kondisi tersebut, maka tindakan terkait dapat dijalankan. Kondisi kebijakan dinilai pada setiap objek hanya sekali selama kebijakan dijalankan. Dalam beberapa kasus, objek mungkin memenuhi kondisi setelah dinilai oleh eksekusi. Objek tersebut diproses dalam eksekusi berikutnya.

Versi terkini menggunakan waktu modifikasi terakhir atau akses terakhir, versi sebelumnya menggunakan waktu pembuatan, dan snapshot blob menggunakan waktu pembuatan snapshot untuk melacak usia.

Tabel berikut ini menjelaskan setiap kondisi pelaksanaan tindakan.

Nama kondisi Tipe Deskripsi
hariSetelahModifikasiLebihDari Integer Usia dalam hari setelah blob waktu terakhir dimodifikasi. Berlaku untuk tindakan pada versi blob saat ini.
daysAfterCreationGreaterThan Integer Usia dalam hari sejak waktu pembuatan. Berlaku untuk tindakan pada versi blob saat ini, versi blob sebelumnya atau cuplikan blob.
daysAfterLastAccessTimeGreaterThan Integer Usia dalam hari setelah waktu akses terakhir atau dalam beberapa kasus, saat tanggal kebijakan diaktifkan. Untuk mempelajari selengkapnya, lihat bagian Pelacakan waktu akses di bawah ini. Berlaku untuk tindakan pada versi blob saat ini ketika pelacakan akses diaktifkan.
jumlahHariSetelahPerubahanTingkatTerakhirLebihDari Integer Usia dalam hari setelah waktu perubahan tingkat blob yang terakhir kali. Durasi minimum dalam hari saat blob yang direhidrasi disimpan dalam tingkat panas, sejuk, atau dingin sebelum dikembalikan ke tingkat arsip. Hanya berlaku untuk tindakan tierToArchive .

Pelacakan waktu akses

Anda dapat mengaktifkan pelacakan waktu akses untuk menyimpan catatan kapan blob Anda terakhir dibaca atau ditulis dan sebagai filter untuk mengelola tingkatan dan retensi data blob Anda.

Saat Anda mengaktifkan pelacakan waktu akses, properti blob yang disebut LastAccessTime diperbarui saat blob dibaca atau ditulis. Operasi Dapatkan Blob dan Put Blob adalah operasi akses dan akan memperbarui waktu akses blob. Namun, Get Blob Properties, Get Blob Metadata, dan Get Blob Tags bukan operasi akses. Operasi tersebut tidak akan memperbaharui waktu akses dari suatu blob.

Jika Anda menerapkan kondisi eksekusi daysAfterLastAccessTimeGreaterThan ke kebijakan, maka LastAccessTime digunakan untuk menentukan apakah kondisi tersebut terpenuhi.

Jika Anda menerapkan kondisi eksekusi daysAfterLastAccessTimeGreaterThan ke kebijakan, tetapi Anda tidak mengaktifkan pelacakan waktu akses, maka LastAccessTime tidak digunakan. Tanggal pelacakan akses terakhir diaktifkan digunakan sebagai gantinya. Bahkan, tanggal bahwa pelacakan akses terakhir diaktifkan digunakan dalam situasi apa pun di mana LastAccessTime properti blob adalah nilai null. Ini dapat terjadi bahkan jika Anda telah mengaktifkan pelacakan waktu akses dalam kasus di mana blob belum diakses sejak pelacakan diaktifkan.

Nota

Untuk meminimalkan dampak pada latensi akses baca, hanya pembacaan pertama dalam 24 jam terakhir yang memperbarui waktu akses terakhir. Pembacaan berikutnya dalam periode 24 jam yang sama tidak memperbarui waktu akses terakhir. Jika blob dimodifikasi di antara pembacaan, waktu akses terakhir adalah yang lebih baru dari dua nilai.

Untuk mempelajari cara mengaktifkan pelacakan waktu akses, lihat Mengaktifkan pelacakan waktu akses secara opsional.

Langkah selanjutnya