Как удалить учетную запись Azure, содержащую арендованный блок?



Answers

К сожалению, ответ Фернандо не работал для меня, поскольку хранилище было «сиротой», поскольку я удалил его виртуальную машину перед удалением хранилища. Я не мог найти способ сделать это с портала, поэтому я установил azure-cli , и после проверки подлинности выполнялись следующие команды:

azure storage account delete <my-account>

Это не удается, и сообщение об ошибке содержит имя виновника, например:

error: Storage account <my-account> has some active image(s) and/or disk(s), eg <my-image>. Ensure these image(s) and/or disk(s) are removed before deleting this storage

Затем я удалил оскорбительное изображение

azure vm disk delete <my-image>

И попытался снова удалить хранилище, на этот раз успешно.

azure storage account delete <my-account>

Question

Я играл с прочными виртуальными машинами Windows Azure. В конце я удалил виртуальную машину (успешно) и попытался удалить связанную учетную запись хранилища.

Не удалось выполнить запрос на удаление учетной записи хранилища.

На портале предварительного просмотра (manage.windowsazure.com), когда я удаляю учетную запись хранилища, я получаю эту ошибку:

Failed to delete Storage account 'portalvhdscwtwycpsxxxxx'

Details:

Storage account portalvhdscwtwycpsxxxxx has 1 container(s) which have an active image and/or disk artifacts. Ensure those artifacts are removed from the image repository before deleting this storage account.

На предыдущем портале (windows.azure.com) я получаю эту ошибку:

Submit Failed

Storage account portalvhdscwtwycpsxxxxx has 1 container(s) which have an active image and/or disk artifacts. Ensure those artifacts are removed from the image repository before deleting this storage account.

Пытаясь удалить сам blob (VHD на 30 ГБ) в Azure Storage Explorer, я получаю эту ошибку:

There is currently a lease on the blob and no lease ID was specified in the request.

Поэтому моя оценка заключается в том, что этот blob арендуется (по предыдущей, теперь удаленной виртуальной машине), и я не могу удалить его, если я не могу получить этот идентификатор аренды.

Возникает вопрос: как я могу удалить этот блок и, следовательно, учетную запись хранилища?




Иногда мы с помощью нового портала удаляем учетную запись azure storage, но мы не можем ее удалить и получить эту ошибку: «Не удалось удалить учетную запись« jason1disks796 ». Ошибка. Учетная запись хранилища не может быть удалена из-за использования ее артефактов. «

Мы можем использовать PowerShell для перечисления всех блоков VHD учетной записи хранилища ( ARM-модуль ):

PS > Login-AzureRmAccount
PS > $RGName = "jason1"
PS > $SAName = "jason1disks796"
PS > $ConName = "vhds"
PS > $TempObj = New-Object -TypeName PSCustomObject
PS > $TempObj |Add-Member -Name BlobName -MemberType NoteProperty -Value $null
PS > $TempObj |Add-Member -Name LeaseState -MemberType NoteProperty -Value $null
PS > $Keylist = Get-AzureRmStorageAccountKey -ResourceGroupName $RGName -StorageAccountName $SAName
PS > $Key = $Keylist[0].Value
PS > $Ctx = New-AzureStorageContext -StorageAccountName $SAName -StorageAccountKey $Key
PS > Get-AzureStorageContainer -Context $ctx
CloudBlobContainer : Microsoft.WindowsAzure.Storage.Blob.CloudBlobContainer
Permission         : Microsoft.WindowsAzure.Storage.Blob.BlobContainerPermissions
PublicAccess       : Off
LastModified       : 1/19/2017 1:27:21 AM +00:00
ContinuationToken  :
Context            : Microsoft.WindowsAzure.Commands.Common.Storage.AzureStorageContext
Name               : vhds
PS > $List = Get-AzureStorageBlob -Blob *.vhd -Container $ConName -Context $Ctx
PS > $List | ForEach-Object { $TempObj.BlobName = $_.Name; $TempObj.LeaseState = $_.ICloudBlob.Properties.LeaseState; $TempObj }

BlobName              LeaseState
--------              ----------
SQL20170119092405.vhd     Leased

PS > Get-AzureStorageBlob -Blob * -Container $con -Context $ctx | Remove-AzureStorageBlob
PS > Remove-AzureRmStorageAccount -ResourceGroupName $RGname -Name $SAName

Если ваша учетная запись хранилища находится в модуле ASM , вы можете использовать этот скрипт для удаления учетной записи хранилища:

Add-AzureAccount
$SAName = "jason1161"
$ConName = "vhds"
$TempObj = New-Object -TypeName PSCustomObject
$TempObj |Add-Member -Name BlobName -MemberType NoteProperty -Value $null
$TempObj |Add-Member -Name LeaseState -MemberType NoteProperty -Value $null
$Keylist = Get-AzureStorageKey -StorageAccountName $SAName
$Key = $Keylist.primary
$Ctx = New-AzureStorageContext -StorageAccountName $SAName -StorageAccountKey $Key
$List = Get-AzureStorageBlob -Blob *.vhd -Container $ConName -Context $Ctx
$List | ForEach-Object { $TempObj.BlobName = $_.Name; $TempObj.LeaseState = $_.ICloudBlob.Properties.LeaseState; $TempObj }
PS > Get-AzureStorageBlob -Blob * -Container $con -Context $ctx | Remove-AzureStorageBlob
PS > Remove-AzureStorageAccount -Name $SAName

Кроме того, существует еще один сценарий: в этой учетной записи хранения нет контейнера или blob ( пустая учетная запись хранилища , мы не можем найти blob или контейнер в этой учетной записи хранилища через PowerShell или портал), когда мы используем портал для удаления учетной записи хранилища , и сообщение об ошибке «Не удалось удалить учетную запись« jason1disks796 ». Ошибка: учетная запись хранилища не может быть удалена из-за использования ее артефактов ». В этом случае мы можем создать новую виртуальную машину и указать учетную запись хранилища на проблемную учетную запись хранилища, а затем удалить ее еще раз.




В моем случае хранилище невозможно удалить из-за vmimages.

Использовать команду оболочки питания

get-azurevmimage | Where-Object -Property Category -in -Value "user"

для отображения всех изображений Чтобы удалить ВСЕ ВАШИ ИЗОБРАЖЕНИЯ, используйте следующий скрипт:

get-azurevmimage | Where-Object -Property Category -in -Value "user" |   
foreach {
        echo "remove $($_.ImageName)"
        Remove-AzureVMImage –ImageName $($_.ImageName)
        }



Перейдите на виртуальные машины, затем нажмите диски. Отметьте диск и выберите «Удалить диск» внизу. Теперь вы можете выбрать, хотите ли вы сохранить или удалить соответствующий VHD.

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






Related