Export/Copy a managed disk to a storage account using the Azure CLI
This script exports the underlying VHD of a managed disk to a storage account in same or different region. It first generates the SAS URI of the managed disk and then uses it to copy the VHD to a storage account. Use this script to copy managed disks to another region for regional expansion. If you want to publish the VHD file of a managed disk in Azure Marketplace, you can use this script to copy the VHD file to a storage account and then generate a SAS URI of the copied VHD to publish it in the Marketplace.
To run this sample, install the latest version of the Azure CLI. To start, run
az login to create a connection with Azure.
Samples for the Azure CLI are written for the
bash shell. To run this sample in Windows PowerShell or Command Prompt, you may need to change
elements of the script.
#Provide the subscription Id where managed disk is created subscriptionId=yourSubscriptionId #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
This script uses following commands to generate the SAS URI for a managed disk and copies the underlying VHD to a storage account using the SAS URI. Each command in the table links to command specific documentation.
|az disk grant-access||Generates read-only SAS that is used to copy the underlying VHD file to a storage account or download it to on-premises|
|az storage blob copy start||Copies a blob asynchronously from one storage account to another|
For more information on the Azure CLI, see Azure CLI documentation.
Additional virtual machine and managed disks CLI script samples can be found in the Azure Linux VM documentation.