Même en utilisant Microsoft Azure, il arrive un moment où vous devez inévitablement accéder à des informations enregistrées en local sur site.
Il peut s'agir d'un disque virtuel au format VHD à utiliser pour le service IaaS d'Azure, de quelques scripts PowerShell devant être exécutés sur vos machines virtuelles Azure, ou peut-être simplement certains fichiers de configuration pour vos sites Web Azure. Quel que soit le cas, ces fichiers doivent être copiés dans un compte de stockage Azure pour que vos ressources Azure puissent y accéder.
L'applet de commande Set-AzureStorageBlobContent
Il y a plus d'une façon de transférer des fichiers enregistrés en local dans votre compte de stockage Microsoft Azure. Je vais procéder via l'applet de commande Set-AzureStorageBlobContent PowerShell, en utilisant les dernières ressources ARM (Azure Resource Manager). Set-AzureStorageBlobContent se trouve dans le module Azure PowerShell ; vous devez donc d'abord télécharger ce module et vous assurer qu'il est opérationnel. Pour enregistrer vos fichiers, vous avez également besoin d'un abonnement Azure et d'un compte de stockage. Dans cet exemple, je tiens pour acquis que vous disposez déjà d'un conteneur de stockage prédéfini.
Une fois que ces conditions préalables sont réunies, vous pouvez utiliser l'applet de commande Set-AzureStorageBlobContent pour transférer vos fichiers locaux et les convertir automatiquement en stockage blob.
Authentifier un compte
Pour commencer, il est nécessaire d'authentifier votre abonnement Azure, via l'applet de commande Add-AzureRmAccount. Vous êtes invité à entrer un nom d'utilisateur et un mot de passe, ce qui vous permet d'obtenir le jeton nécessaire pour modifier votre abonnement Azure.
Une fois votre abonnement Azure authentifié, vous devez spécifier un compte de stockage pour la création de votre stockage blob Azure. Lorsque vos fichiers locaux fichiers sont transférés dans Azure, ils sont automatiquement convertis en stockage blob. Pour spécifier un compte de stockage, vous pouvez utiliser l'applet de commande Get-AzureRmStorageAccount. Deux comptes de stockage sont à ma disposition ci-dessous :
Get-AzureRmStorageAccount | select storageaccountname
Il est maintenant nécessaire de définir un conteneur de stockage dans l'un de ces comptes. Pour ce faire, transmettez directement l'objet compte de stockage à l'applet de commande Get-AzureStorageContainer.
$storageContainer = Get-AzureRmStorageAccount | where {$_.StorageAccountName -eq 'adbdemostorageaccount'} | Get-AzureStorageContainer
Définir les chemins où copier les fichiers
J'ai donc associé ce conteneur de stockage à une variable, ce qui me permet de transmettre rapidement l'objet à l'applet de commande Set-AzureStorageBlobContent. Une fois que j'ai le conteneur de stockage, je dois définir le chemin de fichier local et le chemin de destination. Pour ce faire, je vais les utiliser comme paramètres pour l'applet de commande Set-AzureStorageBlobContent.
$FilePath = 'C:\Users\Adam\MyFile.txt'
$BlobName = 'MyFile.txt'
$storageContainer | Set-AzureStorageBlobContent –File $FilePath –Blob $BlobName
Comme vous pouvez le voir, j'ai défini un fichier texte qui est enregistré dans le dossier C:\Users\Adam et le blob porte le même nom que le fichier. Mais cette manipulation n'est pas nécessaire. Au moment de copier les fichiers, vous pouvez changer leur nom ; en ce qui me concerne, je conserve généralement le même nom pour plus de simplicité.
(Remarque : Si vous devez télécharger un VHD sur un compte de stockage Azure, n'utilisez PAS Set-AzureStorageBlobContent. À ce niveau, j'ai eu des problèmes de corruption de fichier. Veillez à utiliser systématiquement l'applet de commande Add-AzureRmVhd à la place.)
Cette méthode permet de copier simplement des fichiers dans votre compte de stockage Azure. Sachez cependant qu'il est toujours judicieux de créer du code réutilisable lorsque vous écrivez des scripts avec PowerShell. C'est pourquoi j'ai créé une fonction appelée Copy-AzureItem qui facilite ce processus. N'hésitez pas télécharger une copie et à l'utiliser pour vous-même. J'ai pu ainsi gagner beaucoup de temps, et les VHD sont également pris en charge.
Adam Bertram
Adam Bertram is a 20-year veteran of IT. He’s currently an automation engineer, blogger, independent consultant, freelance writer, author, and trainer. Adam focuses on DevOps, system management, and automation technologies as well as various cloud platforms. He is a Microsoft Cloud and Datacenter Management MVP and efficiency nerd that enjoys teaching others a better way to leverage automation.