发现 Blob 存储生命周期策略
生命周期管理策略是 JSON 文档中的规则集合。 策略中的每个规则定义都包括筛选器集和操作集。 筛选器集将规则操作限制为容器或对象名称中的某组对象。 操作集将层或删除操作应用于筛选的对象集:
{
"rules": [
{
"name": "rule1",
"enabled": true,
"type": "Lifecycle",
"definition": {...}
},
{
"name": "rule2",
"type": "Lifecycle",
"definition": {...}
}
]
}
策略是规则的集合:
参数名称 | 参数类型 | 注释 |
---|---|---|
rules |
规则对象的数组 | 一个策略至少需要包含一个规则。 最多可在一个策略中定义 100 个规则。 |
策略中的每个规则具有多个参数:
参数名称 | 参数类型 | 注释 | 必须 |
---|---|---|---|
name |
String | 规则名称最多只能包含 256 个字母数字字符。 规则名称区分大小写。 该名称必须在策略中唯一。 | True |
enabled |
布尔 | 一个允许暂时禁用规则的可选布尔值。 默认值为 true。 | False |
type |
枚举值 | 当前有效类型为生命周期。 | True |
definition |
定义生命周期规则的对象 | 每个定义均由筛选器集和操作集组成。 | True |
规则
每个规则定义包括筛选器集和操作集。 筛选器集将规则操作限制为容器或对象名称中的某组对象。 操作集对筛选的对象集应用分层或删除操作。
以下示例规则将筛选帐户,以针对 sample-container
中存在的、以 blob1
开头的对象运行操作。
- 在上次修改后的 30 天后,将 Blob 分层到冷层
- 在上次修改后的 90 天后,将 Blob 分层到存档层
- 在上次修改后的 2,555 天(7 年)后,删除 Blob
- 在创建快照后的 90 天后,删除 Blob 快照
{
"rules": [
{
"enabled": true,
"name": "sample-rule",
"type": "Lifecycle",
"definition": {
"actions": {
"version": {
"delete": {
"daysAfterCreationGreaterThan": 90
}
},
"baseBlob": {
"tierToCool": {
"daysAfterModificationGreaterThan": 30
},
"tierToArchive": {
"daysAfterModificationGreaterThan": 90,
"daysAfterLastTierChangeGreaterThan": 7
},
"delete": {
"daysAfterModificationGreaterThan": 2555
}
}
},
"filters": {
"blobTypes": [
"blockBlob"
],
"prefixMatch": [
"sample-container/blob1"
]
}
}
}
]
}
规则筛选器
筛选器将规则操作限制为存储帐户中的 Blob子集。 如果定义了多个筛选器,则对所有筛选器运行逻辑 AND。 筛选器包括:
筛选器名称 | 类型 | 是否必需 |
---|---|---|
blobTypes | 预定义枚举值的数组。 | 是 |
prefixMatch | 要匹配的前缀字符串数组。 每个规则最多可定义 10 个前缀。 前缀字符串必须以容器名称开头。 | 否 |
blobIndexMatch | 由要匹配的 Blob 索引标记键和值条件组成的字典值数组。 每个规则最多可以定义 10 个 Blob 索引标记条件。 | 否 |
规则操作
满足运行条件时,操作将应用到筛选的 Blob。
生命周期管理支持 Blob 的分层和删除,以及 Blob 快照的删除。 在 Blob 或 Blob 快照中为每个规则至少定义一个操作。
操作 | 当前版本 | 快照 | 早期版本 |
---|---|---|---|
tierToCool | 对 blockBlob 支持 |
支持 | 支持 |
tierToCold | 对 blockBlob 支持 |
支持 | 支持 |
enableAutoTierToHotFromCool | 对 blockBlob 支持 |
不支持 | 不支持 |
tierToArchive | 对 blockBlob 支持 |
支持 | 支持 |
delete | 支持 blockBlob 和 appendBlob |
支持 | 支持 |
注意
如果在同一 Blob 中定义了多个操作,生命周期管理将对该 Blob 应用开销最低的操作。 例如,操作 delete
的开销比 tierToArchive
更低。 操作 tierToArchive
的开销比 tierToCool
更低。
运行条件基于期限。 基本 Blob 使用上次修改时间来跟踪陈旧程度,Blob 快照使用快照创建时间来跟踪陈旧程度。
操作运行条件 | 条件值 | 说明 |
---|---|---|
daysAfterModificationGreaterThan | 指示陈旧程度(天)的整数值 | 基本 Blob 操作的条件 |
daysAfterCreationGreaterThan | 指示陈旧程度(天)的整数值 | Blob 快照操作的条件 |
daysAfterLastAccessTimeGreaterThan | 指示陈旧程度(天)的整数值 | 启用访问跟踪时 Blob 当前版本的条件 |
daysAfterLastTierChangeGreaterThan | 整数值,指示自上次 blob 层更改时间后的天数 | 解除冻结的 blob 在返回到存档层之前,在热层、凉层或冷层中保留的最短时间(以天为单位)。 此条件仅适用于 tierToArchive 操作。 |