Exportar/copiar um disco gerenciado para uma conta de armazenamento usando a CLI do Azure

Esse script exporta o VHD subjacente de um disco gerenciado para uma conta de armazenamento na mesma região ou em outra região. Ele primeiro gera o URI do SAS do disco gerenciado e, em seguida, usa-o para copiar o VHD para uma conta de armazenamento. Use esse script para copiar discos gerenciados para outra região para expansão regional. Se você desejar publicar o arquivo VHD de um disco gerenciado no Azure Marketplace, será possível usar este script para copiar o arquivo VHD para a conta de armazenamento e gerar um URI de SAS do VHD copiado para publicá-lo no Marketplace.

Para executar esta amostra, instale a última versão da CLI do Azure. Para iniciar, execute az login para criar uma conexão com o Azure.

As amostras da CLI do Azure são escritas para o shell bash. Para executar esta amostra no prompt de comando ou no Windows PowerShell, talvez você precise alterar os elementos do script.

Caso você não tenha uma assinatura do Azure, crie uma conta gratuita do Azure antes de começar.

Exemplo de script

# Verified per Raman Kumar as of 2/23/2022

# <FullScript>
#Provide the subscription Id where managed disk is created
subscriptionId="<subscriptionId>"

#Provide the name of your resource group where managed disk is created
resourceGroupName=myResourceGroupName

#Provide the managed disk name 
diskName=myDiskName

#Provide Shared Access Signature (SAS) expiry duration in seconds e.g. 3600.
#Know more about SAS here: https://docs.microsoft.com/en-us/azure/storage/storage-dotnet-shared-access-signature-part-1
sasExpiryDuration=3600

#Provide storage account name where you want to copy the underlying VHD file of the managed disk. 
storageAccountName=mystorageaccountname

#Name of the storage container where the downloaded VHD will be stored
storageContainerName=mystoragecontainername

#Provide the key of the storage account where you want to copy the VHD 
storageAccountKey=mystorageaccountkey

#Provide the name of the destination VHD file to which the VHD of the managed disk will be copied.
destinationVHDFileName=myvhdfilename.vhd

az account set --subscription $subscriptionId

sas=$(az disk grant-access --resource-group $resourceGroupName --name $diskName --duration-in-seconds $sasExpiryDuration --query [accessSas] -o tsv)

az storage blob copy start --destination-blob $destinationVHDFileName --destination-container $storageContainerName --account-name $storageAccountName --account-key $storageAccountKey --source-uri $sas
# </FullScript>

Explicação sobre o script

Esse script usa os comandos a seguir para gerar o URI de SAS para um disco gerenciado e copia o VHD subjacente para uma conta de armazenamento usando o URI de SAS. Cada comando da tabela é vinculado à documentação específica do comando.

Comando Observações
az disk grant-access Gera o SAS somente leitura usado para copiar o arquivo VHD subjacente para uma conta de armazenamento ou o baixá-lo localmente
az storage blob copy start Copia um blob de forma assíncrona de uma conta de armazenamento para outra

Próximas etapas

Criar um disco gerenciado com base em um VHD

Criar uma máquina virtual com base em um disco gerenciado

Para saber mais sobre a CLI do Azure, veja a documentação da CLI do Azure.

Os exemplos adicionais de script da CLI de máquina virtual e discos gerenciados podem ser encontrados na documentação da VM Linux do Azure.