サブスクリプションリソースグループごとに、各Azureストレージアカウントで使用した容量を確認するにはどうすればよいですか。
PowerShell、CLI、ポータルを介してAzureストレージアカウントで使用されているスペースを確認する方法を見つけることができません...
がここにあります .net core
スクリプトを使用して、過去1時間の平均メトリック値を使用してストレージアカウントの使用状況を一覧表示します。
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);
}
}
}