发现 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 支持 blockBlobappendBlob 支持 支持

注意

如果在同一 Blob 中定义了多个操作,生命周期管理将对该 Blob 应用开销最低的操作。 例如,操作 delete 的开销比 tierToArchive 更低。 操作 tierToArchive 的开销比 tierToCool 更低。

运行条件基于期限。 基本 Blob 使用上次修改时间来跟踪陈旧程度,Blob 快照使用快照创建时间来跟踪陈旧程度。

操作运行条件 条件值 说明
daysAfterModificationGreaterThan 指示陈旧程度(天)的整数值 基本 Blob 操作的条件
daysAfterCreationGreaterThan 指示陈旧程度(天)的整数值 Blob 快照操作的条件
daysAfterLastAccessTimeGreaterThan 指示陈旧程度(天)的整数值 启用访问跟踪时 Blob 当前版本的条件
daysAfterLastTierChangeGreaterThan 整数值,指示自上次 blob 层更改时间后的天数 解除冻结的 blob 在返回到存档层之前,在热层、凉层或冷层中保留的最短时间(以天为单位)。 此条件仅适用于 tierToArchive 操作。