Partager via


Exporter/copier des instantanés managés en tant que disque dur virtuel vers un compte de stockage dans une autre région avec PowerShell

Ce script exporte une capture instantanée managée vers un compte de stockage dans une région différente. Il génère d’abord l’URI SAP de la capture instantanée et l’utilise ensuite pour copier celle-ci vers un compte de stockage dans une autre région. Ce script vous permet de conserver la sauvegarde de vos disques managés dans une autre région en cas de récupération d’urgence.

Si nécessaire, installez le module Azure PowerShell à l’aide des instructions figurant dans le guide Azure PowerShell, puis exécutez Connect-AzAccount pour créer une connexion avec Azure. En outre, vous devez disposer d’une clé publique SSH nommée id_rsa.pub dans le répertoire .ssh de votre profil utilisateur.

Si vous n’avez pas d’abonnement Azure, créez un compte gratuit Azure avant de commencer.

Exemple de script

#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

Explication du script

Ce script utilise les commandes suivantes afin de générer un URI SAS pour une capture instantanée gérée et copie cette dernière vers un compte de stockage à l’aide de l’URI SAS. Chaque commande du tableau renvoie à une documentation spécifique.

Commande Remarques
Grant-AzSnapshotAccess Génère l’URI SAP d’un instantané utilisé pour le copier dans un compte de stockage.
New-AzureStorageContext Crée un contexte de compte de stockage à l’aide du nom et de la clé du compte. Ce contexte peut être utilisé pour effectuer des opérations de lecture/écriture sur le compte de stockage.
Start-AzureStorageBlobCopy Copie le disque dur virtuel sous-jacent d’un instantané dans un compte de stockage

Étapes suivantes

Créer un disque managé à partir d’un VHD

Créer une machine virtuelle à partir d’un disque géré

Pour plus d’informations sur le module Azure PowerShell, consultez Documentation Azure PowerShell.

Vous trouverez des exemples de script PowerShell de machine virtuelle supplémentaires dans la documentation machine virtuelle Linux Azure.