Como faço para excluir uma conta de armazenamento do Azure que contém um blob concedido?

155

Eu estava jogando com máquinas virtuais duráveis ​​do Windows Azure. No final, excluí a máquina virtual (com êxito) e tentei excluir a conta de armazenamento associada.

A solicitação para excluir a conta de armazenamento falha.

No Portal de visualização (manage.windowsazure.com), quando excluo a conta de armazenamento, recebo este erro:

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.

No portal anterior (windows.azure.com), recebo este erro:

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.

Ao tentar excluir o próprio blob (um VHD de 30 GB) no Azure Storage Explorer, recebo este erro:

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

Portanto, minha avaliação é que esse blob é concedido (pela máquina virtual anterior, agora excluída) e não posso excluí-lo, a menos que eu possa obter esse ID de concessão.

A pergunta é: como posso excluir esse blob e, consequentemente, a conta de armazenamento?

Fernando Correia
fonte

Respostas:

332

A chave da solução é a mensagem de que o contêiner possui um artefato de disco ativo e os conselhos para removê-lo do repositório.

O procedimento para remover a imagem de disco do repositório de blob é:

Depois disso, a conta de armazenamento pode ser excluída.

Notas:

  • Isso se aplica mesmo se você já excluiu todas as suas máquinas virtuais e mostra 0; ainda haverá artefatos na guia discos.
  • Os discos são desanexados de uma VM excluída de forma assíncrona; pode demorar alguns minutos após a VM ser excluída para que este campo seja limpo.

Consulte também: Não é possível excluir o VHD, "No momento, existe uma concessão no blob ..."

Fernando Correia
fonte
Uma observação importante: o botão excluir não funciona corretamente com o IE9. Não consegui acompanhar isso no IE, mas no Chrome não tive problemas.
Paul Keister
@PaulKeister Também está com problemas no Firefox 17.0.1. Eu tive que tentar algumas vezes.
23612 Justin Skiles
Além do comentário de @ DavideIcardi: neste tópico no fórum MSDN , é explicado que a concessão de blob é lançada de forma assíncrona e essa operação pode durar no máximo 2 horas.
Edithtt 16/05
1
Eu tive que ir para o portal antigo> Armazenamento> escolher uma conta de armazenamento na lista> clicar na guia Contêineres na parte superior> clicar em vhds> escolher o blob a ser excluído. Agora você pode excluir a conta de armazenamento.
Chdev77
1
idem @ chdev77. Eu também tive que ir ao portal antigo para que os discos aparecessem. Uau, isso foi chato como o inferno!
harristrader
16

Infelizmente, a resposta de Fernando não funcionou para mim, pois o armazenamento era "órfão", pois excluí sua VM antes de excluir o armazenamento. Não consegui encontrar uma maneira de fazer isso no portal, por isso instalei o azure-cli e, após a autenticação, executei os seguintes comandos:

azure storage account delete <my-account>

Isso falha e a mensagem de erro contém o nome do culpado, por exemplo:

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

Então eu apaguei a imagem ofensiva

azure vm disk delete <my-image>

E tentou novamente excluir o armazenamento, desta vez com sucesso.

azure storage account delete <my-account>

escuro
fonte
2
Tinha exatamente o mesmo problema. Eu tinha um monte de discos e imagens órfãos que você não pode excluir no portal. Se eu tivesse encontrado essas respostas há quatro meses!
James Wilson
12

Infelizmente, há o caso em que a VM foi excluída, mas Disks mostra a VM conectada ao blob (um VHD de 30 GB), impedindo a exclusão. Além disso, no caso do uso do Azure Storage Explorer, você encontra um blob VHD orfan, mas alugado, que não pode ser excluído e não há referência no Portal de Visualização.

FM
fonte
3
Sua resposta não está correta em TODAS as circunstâncias. Atualmente, tenho três (3) "discos" listados na seção "Máquinas virtuais -> discos" que não podem ser excluídos (portanto, o blob não pode ser excluído). Não tenho idéia de como me livrar deles, pois a única maneira atual que conheço é usar o portal. kieselmediagroup.blob.core.windows.net/misc/2012-08-21_1019.png
Jason
Como já observado por @Jason em algum momento, você não poderá excluir o disco também se já tiver excluído a máquina virtual correspondente. Na minha experiência, parece ser apenas um problema de tempo. Tente esperar alguns minutos e você poderá excluí-lo.
Davide Icardi 10/01
4
Esperei 3 meses ... devo continuar aguardando o problema de tempo?
Dawesi
Você pode encontrar a imagem do disco VHD em Procurar (no novo portal)
Stan Bashtavenko
8

Vá para máquinas virtuais e clique em discos. Marque o disco e escolha excluir disco na parte inferior. Agora você pode escolher se deseja manter ou excluir o vhd correspondente.

É importante primeiro excluir o disco via máquinas virtuais para não excluir via armazenamento.

Philluxx
fonte
1
Eu acho que muitos de vocês têm RTFM e não a pergunta. Esses são vhds bloqueados alugados órfãos ... Eu tenho o mesmo problema, onde não tenho NADA no Azure, mas dois VHDs e eles não serão excluídos porque são alugados e bloqueados (o que é um bug, pois não há nada a que alugá-los)
Dawesi
5

No meu caso, o armazenamento não pôde ser excluído devido a vmimages.

Use o comando power shell

get-azurevmimage | Onde-Objeto-Categoria de Propriedade -em -Valor "usuário"

para listar todas as imagens Para excluir TODAS AS IMAGENS, use o seguinte script:

get-azurevmimage | Where-Object -Property Category -in -Value "user" |   
foreach {
        echo "remove $($_.ImageName)"
        Remove-AzureVMImage –ImageName $($_.ImageName)
        }
Andreas Stolle
fonte
Você também pode excluir imagens da guia Imagens (dentro da seção de máquinas virtuais) no Portal de Gerenciamento Clássico do Azure.
Wagner Bertolini Junior
4

Como FM já declarou; existe um cenário em que, ao excluir uma VM, o disco ainda aparece como conectado à VM, mesmo que ela tenha sido excluída.

Para mim, isso aconteceu porque eu tinha um limite de gastos definido. Quando o limite de gastos é atingido, seus serviços são desativados. Quaisquer gateways de VPN que você criou e VMs serão excluídos. Ainda por cima, os discos conectados às VMs excluídas ainda acham que estão conectados :(

Encontrei este blog que explica o problema e mostra como usar o PowerShell para resolver.

Espero que isso ajude outros usuários.

Richard Weston
fonte
1
ótimo! seu link levou-me a uma ferramenta que ele fez alguns dias mais tarde que lhe permite "unlease" seu vhd: biztalkgurus.com/biztalk_server/biztalk_blogs/b/biztalk/archive/...
Yannick Smits
0

Às vezes, através do novo portal, excluímos a conta de armazenamento do azure, mas não podemos excluí-lo e obtemos este erro: ”Falha ao excluir a conta de armazenamento 'jason1disks796'. Erro: a conta de armazenamento não pode ser excluída devido ao uso de artefatos. "

Podemos usar o PowerShell para listar todos os blobs VHD da conta de armazenamento ( módulo 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

Se sua conta de armazenamento estiver no módulo ASM , você poderá usar este script para remover a conta de armazenamento:

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

Além disso, existe outro cenário: não há contêiner ou blob nessa conta de armazenamento ( uma conta de armazenamento vazia , não podemos encontrar blob ou contêiner nessa conta de armazenamento via PowerShell ou portal) quando usamos o portal para excluir a conta de armazenamento e a mensagem de erro ”Falha ao excluir a conta de armazenamento 'jason1disks796'. Erro: a conta de armazenamento não pode ser excluída devido ao uso de artefatos ”. Nesse cenário, podemos criar uma nova VM e especificar a conta de armazenamento para a conta de armazenamento problemática e excluí-la novamente.

Jason Ye
fonte
0

Verifique antes de excluir sua conta de armazenamento; deve haver máquinas virtuais associadas, discos e imagens para cada conta de armazenamento que você criou. Vá para o portal do Azure

Guia Selecionar máquinas virtuais no painel esquerdo Clique em Instâncias de imagens e discos

Observe que, as máquinas virtuais individuais têm seus discos conectados, que são exibidos na área Discos. Antes de excluir uma máquina virtual, exclua os discos associados primeiro e a máquina virtual terá o disco em segundo. Em seguida, exclua a conta de armazenamento por último. Procure também Rede no mesmo painel esquerdo, se houver algum associado à conta que você deseja excluir.

No novo portal atualizado do Azure, muitas das páginas de configuração mencionadas acima são alteradas. Você pode ver as opções de Imagens e Discos no painel "Todos os recursos". Na versão mais recente de um portal do Azure, você pode identificar facilmente as VMs, seus discos associados e sua conta de armazenamento, claramente em seus painéis verticais adjacentes, tudo em uma página com diferentes imagens de ícone.

vembutech
fonte
0

Para aqueles que dependem da GUI para gerenciar o Azure e não têm idéia de usar o PowerShell ou fazer as outras respostas, agora você pode excluir a conta de armazenamento bloqueado, marcando "Excluir imagens não anexadas" ao tentar excluir o armazenamento.

Ele excluirá automaticamente o armazenamento sem muito aborrecimento.

Vylix
fonte
Fiz isso agora, mas esqueci o texto exato da caixa de seleção.
Vylix 7/05/19