Dela via


Exportera/kopiera hanterade ögonblicksbilder som virtuell hårddisk till ett lagringskonto i en annan region med PowerShell

Det här skriptet exporterar en hanterad ögonblicksbild till ett lagringskonto i en annan region. Den genererar först SAS-URI:n för ögonblicksbilden och använder den sedan för att kopiera den till ett lagringskonto i en annan region. Använd det här skriptet för att bibehålla säkerhetskopieringen av dina hanterade diskar i en annan region för haveriberedskap.

Om det behövs installerar du Azure PowerShell-modulen med hjälp av anvisningarna i Azure PowerShell-guiden och kör Connect-AzAccount sedan för att skapa en anslutning till Azure. Du måste också ha en offentlig SSH-nyckel med namnet id_rsa.pub i .ssh-katalogen för din användarprofil.

Om du inte har en Azure-prenumeration skapar du ett kostnadsfritt Azure-konto innan du börjar.

Exempelskript

#Provide the subscription Id of the subscription where snapshot is created
$subscriptionId = "yourSubscriptionId"

#Provide the name of your resource group where snapshot is created
$resourceGroupName ="yourResourceGroupName"

#Provide the snapshot name 
$snapshotName = "yourSnapshotName"

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

#Provide storage account name where you want to copy the snapshot. 
$storageAccountName = "yourstorageaccountName"

#Name of the storage container where the downloaded snapshot will be stored
$storageContainerName = "yourstoragecontainername"

#Provide the key of the storage account where you want to copy snapshot. 
$storageAccountKey = 'yourStorageAccountKey'

#Provide the name of the VHD file to which snapshot will be copied.
$destinationVHDFileName = "yourvhdfilename"


# Set the context to the subscription Id where Snapshot is created
Select-AzSubscription -SubscriptionId $SubscriptionId

#Generate the SAS for the snapshot 
$sas = Grant-AzSnapshotAccess -ResourceGroupName $ResourceGroupName -SnapshotName $SnapshotName  -DurationInSecond $sasExpiryDuration -Access Read
#Create the context for the storage account which will be used to copy snapshot to the storage account 
$destinationContext = New-AzStorageContext -StorageAccountName $storageAccountName -StorageAccountKey $storageAccountKey

#Copy the snapshot to the storage account 
Start-AzStorageBlobCopy -AbsoluteUri $sas.AccessSAS -DestContainer $storageContainerName -DestContext $destinationContext -DestBlob $destinationVHDFileName

Förklaring av skript

Det här skriptet använder följande kommandon för att generera SAS-URI för en hanterad ögonblicksbild och kopierar ögonblicksbilden till ett lagringskonto med hjälp av SAS URI. Varje kommando i tabellen länkar till kommandospecifik dokumentation.

Kommando Noteringar
Grant-AzSnapshotAccess Genererar SAS-URI för en ögonblicksbild som används för att kopiera den till ett lagringskonto.
New-AzureStorageContext Skapar en lagringskontokontext med kontonamnet och nyckeln. Den här kontexten kan användas för att utföra läs-/skrivåtgärder på lagringskontot.
Start-AzureStorageBlobCopy Kopierar den underliggande virtuella hårddisken för en ögonblicksbild till ett lagringskonto

Nästa steg

Skapa en hanterad disk från en VHD

Skapa en virtuell dator från en hanterad disk

Mer information om Azure PowerShell-modulen finns i Azure PowerShell-dokumentationen.

Ytterligare powershell-skriptexempel för virtuella datorer finns i dokumentationen om virtuella Azure Linux-datorer.