Exportar/Copiar um disco gerido para uma conta de armazenamento com a CLI do Azure
Este script exporta o VHD subjacente de um disco gerido para uma conta de armazenamento na mesma região ou numa região diferente. Gera primeiro o URI de SAS do disco gerido e, em seguida, utiliza-o para copiar o VHD para uma conta de armazenamento. Utilize este script para copiar discos geridos para outra região, para expansão a nível regional. Se quiser publicar o ficheiro VHD de um disco gerido no Azure Marketplace, pode utilizar este script para copiar o ficheiro VHD para uma conta de armazenamento e, em seguida, gerar um URI de SAS do VHD copiado para publicá-lo no Marketplace.
Para executar este exemplo, instale a versão mais recente da CLI do Azure. Para começar, execute az login
para criar uma ligação ao Azure.
Os exemplos da CLI do Azure são escritos para a bash
shell. Para executar este exemplo no Windows PowerShell ou na Linha de Comandos, poderá ter de alterar os elementos do script.
Se não tiver uma subscrição do Azure, crie uma conta gratuita do Azure antes de começar.
Script de exemplo
# 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/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 do script
Este script utiliza os seguintes comandos para gerar o URI de SAS de um disco gerido e copia o VHD subjacente para uma conta de armazenamento com o URI de SAS. Cada comando na tabela liga à documentação específica do comando.
Comando | Notas |
---|---|
az disk grant-access | Gera o SAS só de leitura utilizado para copiar o ficheiro VHD subjacente para uma conta de armazenamento ou transferi-lo para o local |
az storage blob copy start | Copia um blob de forma assíncrona de uma conta de armazenamento para outra |
Passos seguintes
Criar um disco gerido a partir de um VHD
Criar uma máquina virtual a partir de um disco gerido
Para obter mais informações sobre a CLI do Azure, veja Documentação da CLI do Azure.
Pode ver exemplos do script da CLI da máquina virtual e discos geridos adicionais na Documentação da VM Linux do Azure.