Рейтинг:0

Расчет размера учетных записей хранения и контейнеров Azure с помощью PowerShell

флаг cn

У меня ограниченные знания PowerShell, но я хотел бы рассчитать общий размер (в ГБ) каждой учетной записи хранения, или же каждый контейнер в моих учетных записях хранения. У меня есть несколько учетных записей хранения и контейнеров в несколько групп ресурсов.

Мне трудно составить сценарий, который извлекает все учетные записи хранения и контейнеры, поскольку у меня более одной группы ресурсов. Я нашел приведенный ниже скрипт, который отлично работает, но требует ввода имени единая учетная запись хранения и группа ресурсов.

В идеале я хочу иметь возможность выбрать все учетные записи хранения в моей подписке и нет необходимо ввести имя отдельной учетной записи хранения и группы ресурсов. Буду признателен за любую помощь/предложения по этому поводу, спасибо!

# Подключиться к Azure
Connect-AzureRmAccount

# Статические значения для имен групп ресурсов и учетных записей хранения
$resourceGroup = "РГП-01"
$storageAccountName = "storagestg3"

# Получить ссылку на учетную запись хранения и контекст
$storageAccount = Get-AzureRmStorageAccount `
-ResourceGroupName $resourceGroup `
-Name $storageAccountName
$ctx = $storageAccount.Context

# Получить все контейнеры больших двоичных объектов
$AllContainers = Get-AzureStorageContainer-Context $ctx
$AllContainersCount = $Всеконтейнеры.Count
Write-Host "Мы нашли контейнеры '$($AllContainersCount)'. Размер обработки для каждого из них"

# Нулевые счетчики
$Общая длина = 0
$ Всего Контейнеров = 0

# Цикл для просмотра каждого контейнера и вычисления размера
Foreach ($Container в $AllContainers){
$TotalContainers = $TotalContainers + 1
Write-Host "Обработка контейнера '$($TotalContainers)'/'$($AllContainersCount)'"
$listOfBLobs = Get-AzureStorageBlob -Container $Container.Name -Context $ctx

# обнуляем нашу сумму
$длина = 0

# это перебирает список больших двоичных объектов, извлекает длину каждого большого двоичного объекта и добавляет ее к общему количеству
$listOfBlobs | ForEach-Object {$length = $length + $_.Length}
$Общая длина = $Общая длина + $длина
}
# конец цикла контейнера

# Преобразование длины в ГБ
$TotalLengthGB = $TotalLength/1024/1024/1024

# Вывод результата
Write-Host "Общая длина = " $TotallengthGB "ГБ"
djdomi avatar
флаг za
что конкретно говорит против ленивого способа запустить игру Х раз?
jrd1989 avatar
флаг cn
Вы имеете в виду каждый раз вручную вводить имя учетной записи хранения? Если да, то это определенно возможно, но у меня есть 4 разные подписки с 50-75 учетными записями хранения каждая, так что это было бы утомительно и отнимало много времени. Я хотел бы автоматизировать процесс, если это возможно
djdomi avatar
флаг za
я имею в виду `$resourceGroup = "RGP-01"` и `$storageAccountName = "storagestg3"`, похоже, это переменные, которые нужно установить, и ИМХО вам нужно только написать скрипт, который вызывает его снова с этими двумя параметрами и это может понадобиться только один раз
djdomi avatar
флаг za
но я бы порекомендовал присоединиться к stackoverflow, так как это действие программы, а не случай поддержки при сбое сервера.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.