探索 Blob 儲存體生命週期原則
生命週期管理原則是 JSON 文件中的規則集合。 原則內的每個規則定義都會包括篩選集和動作集。 篩選集會將規則動作限制為容器或物件名稱內的一組特定物件。 動作集會將階層或刪除動作套用至已篩選的一組物件:
{
"rules": [
{
"name": "rule1",
"enabled": true,
"type": "Lifecycle",
"definition": {...}
},
{
"name": "rule2",
"type": "Lifecycle",
"definition": {...}
}
]
}
原則是規則集合:
| 參數名稱 | 參數類型 | 備註 |
|---|---|---|
rules |
規則物件的陣列 | 在一項政策中至少需要一條規則。 您可以在原則中定義最多 100 個規則。 |
原則內的每個規則都有數個參數:
| 參數名稱 | 參數類型 | 備註 | 必要 |
|---|---|---|---|
name |
字串 | 規則名稱最多可以包括 256 個英數位元。 規則名稱會區分大小寫。 該名稱在原則內必須是唯一的。 | 對 |
enabled |
布林值 | 選用布林值,可允許暫時停用規則。 預設值為 True。 | 虛假 |
type |
列舉值 | 目前的有效類型為「生命週期」。 | 對 |
definition |
定義生命週期規則的物件 | 每個定義都是由篩選集和動作集組成。 | 對 |
規則
每個規則定義包含篩選集和動作集。 篩選集會將規則動作限制為容器或物件名稱內的一組特定物件。 動作集會將等級或刪除操作應用於已篩選的物件集合。
下列範例規則會篩選帳戶,以便對存在於 sample-container 內部且名稱以 blob1 開頭的物件執行動作。
- 在上次修改的 30 天後從 Blob 層移至非經常性儲存層
- 在上次修改的 90 天後從 Blob 層移至封存層
- 在上次修改 2,555 天(七年)後刪除資料塊
- 在快照集建立的 90 天後刪除 Blob 快照集
{
"rules": [
{
"enabled": true,
"name": "sample-rule",
"type": "Lifecycle",
"definition": {
"actions": {
"baseBlob": {
"tierToCool": {
"daysAfterModificationGreaterThan": 30
},
"tierToArchive": {
"daysAfterModificationGreaterThan": 90,
"daysAfterLastTierChangeGreaterThan": 7
},
"delete": {
"daysAfterModificationGreaterThan": 2555
}
},
"snapshot": {
"delete": {
"daysAfterCreationGreaterThan": 90
}
}
},
"filters": {
"blobTypes": [
"blockBlob"
],
"prefixMatch": [
"sample-container/blob1"
]
}
}
}
]
}
規則篩選
篩選條件會將規則動作限制在儲存體帳戶的 Blob 子集中。 如果定義多個篩選,則會對所有篩選執行邏輯 AND。 篩選條件包括:
| 篩選名稱 | 類型 | 必要 |
|---|---|---|
| blobTypes | 預先定義列舉值的陣列。 | Yes |
| prefixMatch | 要比對前置詞的字串陣列。 每個規則最多可以定義 10 個前置詞。 前置詞字串必須以容器名稱開頭。 | 不 |
| blobIndexMatch | 字典值的陣列,其中包含要比對的 Blob 索引標記索引鍵和值條件。 每個規則最多可以定義 10 個 Blob 索引標記條件。 | 不 |
規則動作
當符合執行條件時,將動作套用至已篩選的 Blob。
生命週期管理可支援分層及刪除 Blob,也支援刪除 Blob 快照集。 為 Blob 或 Blob 快照集上的每個規則定義至少一個動作。
| 動作 | 目前的版本 | 快照 | 舊版本 |
|---|---|---|---|
| tierToCool | 支援 blockBlob |
支援 | 支援 |
| tierToCold | 支援 blockBlob |
支援 | 支援 |
| enableAutoTierToHotFromCool | 支援 blockBlob |
不支援 | 不支援 |
| tierToArchive | 支援 blockBlob |
支援 | 支援 |
| 刪除 | 支持 blockBlob 和 appendBlob |
支援 | 支援 |
備註
如果您在同一個 Blob 上定義超過一個動作,生命週期管理會將成本最低的動作套用至 Blob。 例如,動作 delete 的成本比動作 tierToArchive 更低。 動作 tierToArchive 的成本比動作 tierToCool 更低。
執行條件是以年齡為基礎。 基底 Blob 使用上次修改時間來追蹤保留時間,而 Blob 快照集則使用快照集建立時間來追蹤保留時間。
| 動作執行條件 | 條件值 | 描述 |
|---|---|---|
| daysAfterModificationGreaterThan | 指出保留時間的整數值 (天) | 基底 Blob 動作的條件 |
| daysAfterCreationGreaterThan | 指出保留時間的整數值 (天) | Blob 快照集動作的條件 |
| daysAfterLastAccessTimeGreaterThan | 指出保留時間的整數值 (天) | 啟用存取追蹤時,Blob 目前版本的條件 |
| daysAfterLastTierChangeGreaterThan | 整數值表示自上次 Blob 層級變更後的天數 | 解除凍結的 Blob 在傳回封存存取層之前,在經常性存取層、非經常性存取層或極非經常性存取保留的最短時間 (以天為單位)。 此條件僅適用於 tierToArchive 動作。 |