PowerShell을 사용하여 Blob 컨테이너 크기 계산
이 스크립트는 스토리지 계정의 모든 Azure Blob Storage 컨테이너 크기를 계산합니다.
이 샘플에는 Azure PowerShell이 필요합니다. Get-Module -ListAvailable Az
을 실행하여 버전을 찾습니다.
설치 또는 업그레이드해야 하는 경우 Azure PowerShell 모듈 설치를 참조하세요.
Connect-AzAccount cmdlet을 실행하여 Azure에 연결합니다.
Azure를 구독하고 있지 않다면 시작하기 전에 Azure 체험 계정을 만듭니다.
Important
이 PowerShell 스크립트는 계정에서 컨테이너의 예상 크기를 제공하므로 청구 요금 계산에 사용하면 안 됩니다. 청구 목적으로 컨테이너 크기를 계산하는 스크립트는 청구 목적으로 Blob Storage 컨테이너 크기 계산을 참조하세요.
샘플 스크립트
<#
.SYNOPSIS
Calculates the total size of blobs in all containers in a specified Azure storage account.
.DESCRIPTION
Before running this script, ensure you have:
- A storage account created
- At least one container in the storage account
- Uploaded some blobs into the container
.EXAMPLE
.\Get-AzureStorageAccountBlobSize.ps1 -StorageAccountName mystorageaccount -ResourceGroupName myResourceGroup
.NOTES
This script incurs transactional costs for Azure requests.
#>
[CmdletBinding()]
param (
[ValidateNotNullOrEmpty()]
[string]$ResourceGroupName = '<name-of-your-resource-group>',
[ValidateNotNullOrEmpty()]
[string]$StorageAccountName = '<name-of-your-storage-account>'
)
$containerstats = @()
# Get a reference to the storage account and the context.
$storageAccount = Get-AzStorageAccount -ResourceGroupName $ResourceGroupName -Name $StorageAccountName
$Ctx = $storageAccount.Context
$container_continuation_token = $null
do {
$containers = Get-AzStorageContainer -Context $Ctx -MaxCount 5000 -ContinuationToken $container_continuation_token
$container_continuation_token = $null
if ($containers -ne $null) {
$container_continuation_token = $containers[$containers.Count - 1].ContinuationToken
for ([int] $c = 0; $c -lt $containers.Count; $c++) {
$container = $containers[$c].Name
Write-Verbose "Processing container : $container"
$total_usage = 0
$total_blob_count = 0
$soft_delete_usage = 0
$soft_delete_count = 0
$version_usage = 0
$version_count =
$snapshot_count = 0
$snapshot_usage = 0
$blob_continuation_token = $null
do {
$blobs = Get-AzStorageBlob -Context $Ctx -IncludeDeleted -IncludeVersion -Container $container -ConcurrentTaskCount 100 -MaxCount 5000 -ContinuationToken $blob_continuation_token
$blob_continuation_token = $null
if ($blobs -ne $null) {
$blob_continuation_token = $blobs[$blobs.Count - 1].ContinuationToken
for ([int] $b = 0; $b -lt $blobs.Count; $b++) {
$total_blob_count++
$total_usage += $blobs[$b].Length
if ($blobs[$b].IsDeleted) {
$soft_delete_count++
$soft_delete_usage += $blobs[$b].Length
}
if ($blobs[$b].SnapshotTime -ne $null) {
$snapshot_count++
$snapshot_usage+= $blobs[$b].Length
}
if ($blobs[$b].VersionId -ne $null) {
$version_count++
$version_usage += $blobs[$b].Length
}
}
if ($blob_continuation_token -ne $null) {
Write-Verbose "Blob listing continuation token = {0}".Replace("{0}",$blob_continuation_token.NextMarker)
}
}
} while ($blob_continuation_token -ne $null)
Write-Verbose "Calculated size of $container = $total_usage with soft_delete usage of $soft_delete_usage"
$containerstats += [PSCustomObject] @{
Name = $container
TotalBlobCount = $total_blob_count
TotalBlobUsageinGB = $total_usage/1GB
SoftDeletedBlobCount = $soft_delete_count
SoftDeletedBlobUsageinGB = $soft_delete_usage/1GB
SnapshotCount = $snapshot_count
SnapshotUsageinGB = $snapshot_usage/1GB
VersionCount = $version_count
VersionUsageinGB = $version_usage/1GB
}
}
}
if ($container_continuation_token -ne $null) {
Write-Verbose "Container listing continuation token = {0}".Replace("{0}",$container_continuation_token.NextMarker)
}
} while ($container_continuation_token -ne $null)
Write-Host "Total container stats"
$containerstats | Format-Table -AutoSize
배포 정리
다음 명령을 실행하여 리소스 그룹, 컨테이너 및 모든 관련된 리소스를 제거합니다.
Remove-AzResourceGroup -Name bloblisttestrg
스크립트 설명
이 스크립트는 다음 명령을 사용하여 Blob Storage 컨테이너의 크기를 계산합니다. 표에 있는 각 항목은 명령 관련 설명서에 연결됩니다.
명령 | 주의 |
---|---|
Get-AzStorageAccount | 리소스 그룹 또는 구독의 지정된 스토리지 계정 또는 모든 스토리지 계정을 가져옵니다. |
Get-AzStorageContainer | 스토리지 컨테이너를 나열합니다. |
Get-AzStorageBlob | 컨테이너의 Blob을 나열합니다. |
다음 단계
청구 목적으로 컨테이너 크기를 계산하는 스크립트는 청구 목적으로 Blob Storage 컨테이너 크기 계산을 참조하세요.
Azure PowerShell 모듈에 대한 자세한 내용은 Azure PowerShell 설명서를 참조하세요.
Azure Storage용 PowerShell 샘플에서 더 많은 PowerShell 스크립트 샘플을 찾습니다.