Azure存储热、冷、归档层统计信息获取方法咨询
获取Azure Blob存储各访问层的数量、空间及成本信息
通过Azure Portal操作
1. 查看分层存储统计(数量/空间)
- 进入目标存储账户,左侧菜单选择「监控」>「指标」
- 在指标界面,点击「添加指标」,分别选择:
- 指标名称:
Blob Count(Blob数量),添加维度Access Tier,即可拆分显示Hot/Cool/Archive各层级的Blob数量 - 指标名称:
Blob Capacity(Blob容量),同样添加Access Tier维度,查看各层级的占用空间(Archive层可关注Archive Blob Capacity指标)
- 指标名称:
- 调整时间范围为需要统计的周期(如月度),即可查看对应时段的分层数据
2. 查看分层成本明细
- 在存储账户左侧菜单选择「成本管理」>「成本分析」
- 点击「添加筛选器」,选择「服务名称」=「存储」;再点击「添加分组依据」,选择「访问层」
- 界面会自动按Hot/Cool/Archive层级拆分显示成本,支持切换时间范围查看月度或自定义周期的成本数据
通过编程/命令行操作
1. Azure CLI
统计各层级Blob数量
# 登录Azure CLI az login # 统计指定容器内各访问层的Blob数量 az storage blob list --account-name <你的存储账户名> --container-name <容器名> --query "[].properties.accessTier" --output tsv | sort | uniq -c
统计各层级占用空间
# 统计Hot层总大小(单位:GB) az storage blob list --account-name <你的存储账户名> --container-name <容器名> --query "[?properties.accessTier=='Hot'].properties.contentLength | sum(@)/1024/1024/1024" --output tsv # 替换'Hot'为'Cool'或'Archive'即可统计对应层级
2. Azure PowerShell
统计各层级Blob数量与空间
# 登录Azure PowerShell Connect-AzAccount # 获取存储账户上下文 $storageAccount = Get-AzStorageAccount -ResourceGroupName <资源组名> -Name <存储账户名> $containerContext = $storageAccount.Context # 遍历Blob并统计分层数据 Get-AzStorageBlob -Container <容器名> -Context $containerContext | Group-Object -Property AccessTier | ForEach-Object { $totalSizeGB = [math]::Round(($_.Group | Measure-Object -Property Length -Sum).Sum / 1GB, 2) [PSCustomObject]@{ AccessTier = $_.Name BlobCount = $_.Count TotalSizeGB = $totalSizeGB } }
3. Python SDK示例
from azure.storage.blob import BlobServiceClient # 替换为你的存储账户连接字符串和容器名 CONNECTION_STRING = "<存储账户连接字符串>" CONTAINER_NAME = "<容器名>" def get_tier_stats(): blob_service_client = BlobServiceClient.from_connection_string(CONNECTION_STRING) container_client = blob_service_client.get_container_client(CONTAINER_NAME) tier_stats = { "Hot": {"count": 0, "size_bytes": 0}, "Cool": {"count": 0, "size_bytes": 0}, "Archive": {"count": 0, "size_bytes": 0} } for blob in container_client.list_blobs(): tier = blob.access_tier if tier in tier_stats: tier_stats[tier]["count"] += 1 tier_stats[tier]["size_bytes"] += blob.size # 格式化输出 for tier, stats in tier_stats.items(): size_gb = stats["size_bytes"] / (1024 ** 3) print(f"Access Tier: {tier}") print(f" Blob Count: {stats['count']}") print(f" Total Size: {round(size_gb, 2)} GB\n") if __name__ == "__main__": get_tier_stats()
编程方式获取分层成本
可以使用Azure Cost Management SDK(如Python的azure-mgmt-costmanagement),通过构建包含AccessTier维度的成本查询请求,拆分获取各层级的成本数据。
内容的提问来源于stack exchange,提问作者Nick Gallant
相关产品推荐
相关产品推荐

