检查订阅中azure存储帐户中使用的空间

Sur*_*tha 11 azure azure-storage local-storage azure-storage-blobs

如何在我的订阅资源组中检查我在每个azure存储帐户中使用的空间大小.

我无法通过PowerShell,CLI,门户网站检查azure存储帐户中使用的空间.

Shu*_*bao 12

Azure存储大小包括所有4种服务(Blob,队列,文件,表).根据我的知识,目前还没有办法计算所有服务的总大小.

但是,您可以使用Azure指标获取Portal上使用的blob空间.请选择监控 - >指标

在此输入图像描述

有关在Azure门户中监控存储帐户的更多信息,请参阅此链接.

此外,您可以使用PowerShell来获取blob.你可以使用一个很好的脚本.

  • 您的答案仅提供有关Blob存储大小的信息.它不包括该存储帐户中的表,文件和队列所占用的空间. (2认同)

Sim*_*ver 8

Azure 存储资源管理器有一个“目录统计”按钮。

导航到文件夹

在此处输入图片说明

点击按钮

在此处输入图片说明

总数显示在活动面板中

在此处输入图片说明


Sun*_*rma 7

经过大量搜索,我发现这篇文章非常相关:

https://techcommunity.microsoft.com/t5/azure-paas-blog/calculate-the-size-capacity-of-storage-account-and-it-services/ba-p/1064046

使用 Azure Monitor 检查存储帐户的容量。脚步:

  • 导航到 Azure Monitor
  • 单击存储帐户
  • 单击容量。您可以在此处并排查看所有帐户和已用容量。

在此处输入图片说明


Red*_*ood 5

这是.net core我用来使用过去一小时的平均指标值列出存储帐户使用情况的脚本。

using System;
using System.Collections.Generic;
using System.IO;
using System.Threading;
using Microsoft.Azure.Management.CosmosDB.Fluent.Models;
using Microsoft.Azure.Management.Fluent;
using Microsoft.Azure.Management.Monitor;
using Microsoft.Azure.Management.Monitor.Models;
using Microsoft.Rest.Azure.Authentication;

namespace storagelist
{
    class Program
    {
        static async System.Threading.Tasks.Task Main(string[] args)
        {
            // to generate my.azureauth file run the follow command:
            // az ad sp create-for-rbac --sdk-auth > my.azureauth
            var azure = Azure.Authenticate("my.azureauth").WithDefaultSubscription();

            var accounts = azure.StorageAccounts.List();
            // can get values from my.azureauth
            var tenantId = "";
            var clientId = "";
            var clientSecret = "";
            var serviceCreds = await ApplicationTokenProvider.LoginSilentAsync(tenantId, clientId, clientSecret);
            MonitorManagementClient readOnlyClient = new MonitorManagementClient(serviceCreds);

            var oneHour = System.TimeSpan.FromHours(1);
            var startDate = DateTime.Now.AddHours(-oneHour.Hours).ToUniversalTime().ToString("o");
            string endDate = DateTime.Now.ToUniversalTime().ToString("o");
            string timeSpan = startDate + "/" + endDate;

            List<string> fileContents = new List<string>();

            foreach (var storage in accounts)
            {
                var response = await readOnlyClient.Metrics.ListAsync(
                resourceUri: storage.Id,
                timespan: timeSpan,
                interval: oneHour,
                metricnames: "UsedCapacity",

                aggregation: "Average",
                resultType: ResultType.Data,
                cancellationToken: CancellationToken.None);

                foreach (var metric in response.Value)
                {
                    foreach (var series in metric.Timeseries)
                    {
                        foreach (var point in series.Data)
                        {
                            if (point.Average.HasValue)
                            {
                                fileContents.Add($"{storage.Id}, {point.Average.Value}");
                                break;
                            }
                        }
                        break;
                    }
                    break;
                }
            }

            await File.WriteAllLinesAsync("./storage.csv", fileContents);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)