Kopieren von Dateien in den Azure-Blobspeicher

Juni 09, 2019 Sicherheit und Compliance, MOVEit

Bei der Verwendung von Microsoft Azure gelangen Sie unweigerlich an einen Punkt, an dem Sie auf lokal gespeicherte Daten zugreifen müssen.

Diese können sich auf einem virtuellen Datenträger im VHD-Format für den IaaS-Dienst von Azure oder in PowerShell-Skripten befinden, die Sie auf Ihren virtuellen Azure-Maschinen ausführen möchten. Es kann sich auch einfach um Konfigurationsdateien für Ihre Azure-Websites handeln. Damit Ihre Azure-Ressourcen auf diese Dateien zugreifen können, müssen sie in ein Azure-Speicherkonto kopiert werden.

Das cmdlet „Set-AzureStorageBlobContent“

Sie haben verschiedene Möglichkeiten, um lokal gespeicherte Dateien in Ihr Microsoft Azure-Speicherkonto zu übertragen. Ich verwende hierfür das PowerShell-cmdlet „Set-AzureStorageBlobContent“ mit den neueren Azure Resource Manager (ARM)-Ressourcen. Da das cmdlet „Set-AzureStorageBlobContent“ im Azure PowerShell-Modul bereitgestellt wird, müssen Sie zunächst das Modul herunterladen und zur Verfügung stellen. Außerdem benötigen Sie ein Azure-Abonnement sowie ein Speicherkonto für Ihre Dateien. In diesem Beispiel gehen wir davon aus, dass Sie bereits einen Speichercontainer erstellt haben.

Sobald diese Voraussetzungen erfüllt sind, können Sie Ihre lokalen Dateien mit dem cmdlet „Set-AzureStorageBlobContent“ übertragen und automatisch in das Blob-Speicherformat umwandeln.

Konto authentifizieren

Authentifizieren Sie zunächst Ihr Azure-Abonnement mit dem cmdlet „Add-AzureRmAccount“. Sie werden zur Eingabe eines Benutzernamens und eines Kennworts aufgefordert. Dadurch erhalten Sie das zum Ändern Ihres Azure-Abonnements erforderliche Token.

Nachdem Sie Ihr Azure-Abonnement authentifiziert haben, geben Sie ein Speicherkonto an, in dem Sie Ihr Azure-Speicher-Blob erstellen. Ihre lokalen Dateien werden bei der Übertragung an Azure automatisch in das Blob-Speicherformat umgewandelt. Das Speicherkonto können Sie mit dem cmdlet „Get-AzureRmStorageAccount“ angeben. Im folgenden Beispiel stehen zwei Speicherkonten zur Verfügung:

 Get-AzureRmStorageAccount | select storageaccountname

Geben Sie jetzt in einem der Speicherkonten einen Speichercontainer an. Sie können zu diesem Zweck das Speicherkontoobjekt direkt an das cmdlet „Get-AzureStorageContainer“ übergeben.

 $storageContainer = Get-AzureRmStorageAccount | where {$_.StorageAccountName -eq 'adbdemostorageaccount'} | Get-AzureStorageContainer

Pfade zum Kopieren von Dateien festlegen

Wie Sie sehen, habe ich diesen Speichercontainer einer Variablen zugewiesen. Auf diese Weise kann ich das Objekt schnell an das cmdlet „Set-AzureBlobStorageContent“ übergeben. Nachdem ich den Speichercontainer angegeben habe, lege ich den lokalen Dateipfad und den Zielpfad fest. Hierfür verwende ich diese als Parameter für das cmdlet „Set-AzureStorageBlobContent“.

 $FilePath = 'C:\Users\Adam\MyFile.txt'
 $BlobName = 'MyFile.txt'
 $storageContainer | Set-AzureStorageBlobContent –File $FilePath –Blob $BlobName

Wie Sie sehen, habe ich eine im Ordner C:\Users\Adam gespeicherte Textdatei angegeben und den Blob nach der Datei benannt. Dies ist jedoch nicht erforderlich. Sie können den Namen während des Kopierens ändern. Ich behalte den Namen der Einfachheit halber bei.

(Hinweis: Wenn Sie eine VHD in ein Azure-Speicherkonto hochladen möchten, verwenden Sie NICHT „Set-AzureStorageBlobContent“. Die Dateien können dadurch beschädigt werden. Verwenden Sie stattdessen immer das cmdlet „Add-AzureRmVhd“.)

Mit dieser Methode lassen sich Dateien einfach in das Azure-Speicherkonto kopieren. Wenn Sie Skripte mit PowerShell schreiben, empfiehlt sich jedoch die Erstellung von wiederverwendbarem Code. Ich habe zur Vereinfachung des Verfahrens eine Funktion namens Copy-AzureItem erstellt. Sie können diese gerne zur Nutzung herunterladen. Sie kann Ihnen eine Menge Zeit sparen und unterstützt zudem VHDs.

Tipp: Testen Sie unsere Software für Netzwerk-Monitoring oder Managed File Transfer kostenfrei.

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.