你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
启用 Azure 存储 Blob 清单报表
Azure 存储 Blob 清单功能简述了存储帐户中的容器、Blob、快照和 Blob 版本。 使用清单报表可以了解 Blob 和容器的各种属性,例如总数据大小、新旧程度、加密状态、不可变性策略和法定保留,等等。 该报表概述了有关业务和符合性要求的数据。
若要详细了解 Blob 清单报表,请参阅 Azure 存储 Blob 清单。
通过将包含一个或多个规则的策略添加到存储帐户,可以启用 Blob 清单报表。 使用 Azure 门户来添加、编辑或删除策略。
启用库存报表
登录到 Azure 门户即可开始操作。
找到存储帐户并显示帐户概览。
在“数据管理”下,选择“Blob 清单”。
选择“添加第一个清单规则”。
随即显示“添加规则”页。
在“添加规则”页中,为新规则命名。
选择用于存储清单报表的容器。
在“要清点的对象类型”下,选择是为 Blob 还是为容器创建报表。
如果选择“Blob”,则在“Blob 子类型”下,选择要包括在报表中的 Blob 类型,以及是否在清单报表中包括 Blob 版本和/或快照。
注意
仅未启用分层命名空间功能的帐户才会显示包含 blob 版本的选项。
必须在该帐户上启用版本和快照,才能保存启用了相应选项的新规则。
选择要包含在报表中的字段,以及报表的格式。
选择你需要生成报表的频率。
可以选择添加一个前缀匹配来筛选清单报表中的 Blob。
选择“保存”。
可以使用 Azure PowerShell 模块来添加、编辑或删除策略。
打开 Windows PowerShell 命令窗口。
确保你已有最新的 Azure PowerShell 模块。 请参阅安装 Azure PowerShell 模块。
运行 Connect-AzAccount
命令以登录 Azure 订阅,并按照屏幕上的说明操作。
Connect-AzAccount
如果你的标识关联到多个订阅,请设置你的活动订阅。
$context = Get-AzSubscription -SubscriptionId <subscription-id>
Set-AzContext $context
将 <subscription-id>
占位符值替换为你的订阅 ID。
获取定义了要使用的存储帐户的存储帐户上下文。
$storageAccount = Get-AzStorageAccount -ResourceGroupName "<resource-group-name>" -AccountName "<storage-account-name>"
$ctx = $storageAccount.Context
使用 New-AzStorageBlobInventoryPolicyRule 命令创建清单规则。 每个规则都列出了报表字段。 要查看报表字段的完整列表,请参阅 Azure 存储 Blob 清单。
$containerName = "my-container"
$rule1 = New-AzStorageBlobInventoryPolicyRule -Name Test1 -Destination $containerName -Disabled -Format Csv -Schedule Daily -PrefixMatch con1,con2 `
-ContainerSchemaField Name,Metadata,PublicAccess,Last-modified,LeaseStatus,LeaseState,LeaseDuration,HasImmutabilityPolicy,HasLegalHold
$rule2 = New-AzStorageBlobInventoryPolicyRule -Name test2 -Destination $containerName -Format Parquet -Schedule Weekly -BlobType blockBlob,appendBlob -PrefixMatch aaa,bbb `
-BlobSchemaField name,Last-Modified,Metadata,LastAccessTime
$rule3 = New-AzStorageBlobInventoryPolicyRule -Name Test3 -Destination $containerName -Format Parquet -Schedule Weekly -IncludeBlobVersion -IncludeSnapshot -BlobType blockBlob,appendBlob -PrefixMatch aaa,bbb `
-BlobSchemaField name,Creation-Time,Last-Modified,Content-Length,Content-MD5,BlobType,AccessTier,AccessTierChangeTime,Expiry-Time,hdi_isfolder,Owner,Group,Permissions,Acl,Metadata,LastAccessTime
$rule4 = New-AzStorageBlobInventoryPolicyRule -Name test4 -Destination $containerName -Format Csv -Schedule Weekly -BlobType blockBlob -BlobSchemaField Name,BlobType,Content-Length,Creation-Time
使用 Set-AzStorageBlobInventoryPolicy 创建 Blob 清单策略。 使用 -Rule
参数将规则传递到此命令中。
$policy = Set-AzStorageBlobInventoryPolicy -StorageAccount $storageAccount -Rule $rule1,$rule2,$rule3,$rule4
可通过 Azure CLI 添加、编辑或删除策略。
首先,打开 Azure Cloud Shell,或者,如果已在本地安装 Azure CLI,请打开命令控制台应用程序,如 Windows PowerShell。
如果你的标识关联到多个订阅,请设置你的活动订阅。
az account set --subscription <subscription-id>
将 <subscription-id>
占位符值替换为你的订阅 ID。
在 JSON 文档中定义策略的规则。 下面显示了名为 policy.json
的示例 JSON 文件的内容。
{
"enabled": true,
"type": "Inventory",
"rules": [
{
"enabled": true,
"name": "inventoryPolicyRule2",
"destination": "mycontainer",
"definition": {
"filters": {
"blobTypes": [
"blockBlob"
],
"prefixMatch": [
"inventoryprefix1",
"inventoryprefix2"
],
"includeSnapshots": true,
"includeBlobVersions": true
},
"format": "Csv",
"schedule": "Daily",
"objectType": "Blob",
"schemaFields": [
"Name",
"Creation-Time",
"Last-Modified",
"Content-Length",
"Content-MD5",
"BlobType",
"AccessTier",
"AccessTierChangeTime",
"Snapshot",
"VersionId",
"IsCurrentVersion",
"Metadata"
]
}
}
]
}
使用 az storage account blob-inventory-policy create 命令创建 Blob 清单策略。 使用 --policy
参数提供 JSON 文档的名称。
az storage account blob-inventory-policy create -g myresourcegroup --account-name mystorageaccount --policy @policy.json
禁用清单报表
虽然可禁用单个报表,但也可完全阻止 blob 清单运行。
登录 Azure 门户。
找到存储帐户并显示帐户概览。
在“数据管理”下,选择“Blob 清单”。
选择“blob 清单设置”,然后在“blob 清单设置”窗格中,清除“启用 blob 清单”复选框,然后选择“保存”。
清除“启用 blob 清单”复选框将挂起所有 blob 清单运行。 如果想要恢复清单运行,可之后选中此复选框。
启用访问时间跟踪(可选)
可选择启用 blob 访问时间跟踪。 启用访问时间跟踪后,清单报表将包含基于上次通过读取或写入操作访问 blob 的时间的 LastAccessTime 字段。 为了尽量减少对读取访问延迟的影响,只有最近 24 小时的第一次读取会更新最后访问时间。 同一个 24 小时期间内的后续读取不会更新上次访问时间。 如果 Blob 在两次读取之间被修改,则上次访问时间是两个值中的较新值。
若要通过 Azure 门户启用上次访问时间跟踪,请执行以下步骤:
登录 Azure 门户。
找到存储帐户并显示帐户概览。
在“数据管理”下,选择“Blob 清单”。
选择“blob 清单设置”,然后在“blob 清单设置”窗格中,选择“启用上次访问跟踪”复选框。
若要通过 PowerShell 启用上次访问时间跟踪,请调用 Enable-AzStorageBlobLastAccessTimeTracking 命令,如以下示例中所示。 请务必将尖括号中的占位符值替换为你自己的值:
# Initialize these variables with your values.
$rgName = "<resource-group>"
$accountName = "<storage-account>"
Enable-AzStorageBlobLastAccessTimeTracking -ResourceGroupName $rgName `
-StorageAccountName $accountName `
-PassThru
若要使用 Azure CLI 启用上次访问时间跟踪,请调用 az storage account blob-service-properties update 命令,如以下示例中所示。 请务必将尖括号中的占位符值替换为你自己的值:
az storage account blob-service-properties update \
--resource-group <resource-group> \
--account-name <storage-account> \
--enable-last-access-tracking true
后续步骤