使用 Azure CLI 將受控磁碟匯出/複製到儲存體帳戶
此指令碼會將受控磁碟的基礎 VHD 匯出到相同或不同區域的儲存體帳戶。 它會先產生受控磁碟的 SAS URI,然後用它來將 VHD 複製到儲存體帳戶。 使用此指令碼將受控磁碟複製到其他區域以進行區域擴充。 如果想要在 Azure Marketplace 中發行受控磁碟的 VHD 檔案,可以使用此指令碼將 VHD 檔案複製到儲存體帳戶,然後產生所複製 VHD 的 SAS URI,以在 Marketplace 中發佈它。
若要執行此範例,請安裝最新版的 Azure CLI。 若要啟動,請執行 az login
來建立與 Azure 的連線。
Azure CLI 的範例專為 bash
殼層撰寫。 若要在 Windows PowerShell 或命令提示字元中執行此範例,您可能需要變更指令碼的元素。
如果您沒有 Azure 訂用帳戶,請在開始之前先建立 Azure 免費帳戶。
範例指令碼
# 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>
指令碼說明
此指令碼會使用下列命令來產生受控磁碟的 SAS URI,並使用 SAS URI 將基礎 VHD 複製到儲存體帳戶。 下表中的每個命令都會連結至命令特定的文件。
Command | 注意 |
---|---|
az disk grant-access | 產生唯讀 SAS,用來將基礎 VHD 檔案複製到儲存體帳戶,或將它下載到內部部署 |
az storage blob copy start | 以非同步方式在儲存體帳戶間複製 blob |
後續步驟
如需 Azure CLI 的詳細資訊,請參閱 Azure CLI 文件。
您可以在 Azure Linux VM 文件中找到其他的虛擬機器和受控磁碟 CLI 指令碼範例。