Verwenden der Datenübertragungstools im Azure Stack Hub-Speicher
Azure Stack Hub bietet eine Reihe von Speicherdiensten für Datenträger, Blobs, Tabellen und Warteschlangen sowie Funktionen zur Kontoverwaltung. Mit einer Reihe von Azure Storage-Tools können Sie Daten verwalten oder in bzw. aus Azure Stack Hub-Speicher verschieben. Dieser Artikel enthält eine Übersicht über die verfügbaren Tools.
Ihre Anforderungen bestimmen, welche der folgenden Tools sich am besten für Sie eignen:
-
Ein speicherspezifisches Befehlszeilenprogramm, das Sie herunterladen können, um Daten zwischen Objekten im gleichen oder in einem anderen Speicherkonto zu kopieren.
-
Eine aufgabenbasierte Befehlszeilenshell und Skriptsprache, die speziell für die Systemverwaltung entwickelt wurde.
Azure-Befehlszeilenschnittstelle
Ein plattformübergreifendes Tool auf Open-Source-Basis, das eine Reihe von Befehlen zum Arbeiten mit der Azure- und Azure Stack Hub-Plattform bietet.
Microsoft Azure Storage-Explorer
Eine benutzerfreundliche eigenständige App mit einer Benutzeroberfläche.
-
Ein virtueller Dateisystemtreiber für Azure Blob Storage, der Ihnen den Zugriff auf vorhandene Blockblobdaten in Ihrem Speicherkonto über das Linux-Dateisystem ermöglicht.
Aufgrund der Unterschiede bei den Speicherdiensten zwischen Azure und Azure Stack Hub gelten für jedes der in den folgenden Abschnitten beschriebenen Tools möglicherweise besondere Anforderungen. Einen Vergleich zwischen Azure Stack Hub-Speicher und Azure Storage finden Sie unter Azure Stack Hub-Speicher: Unterschiede und Überlegungen.
AzCopy
AzCopy ist ein Befehlszeilenprogramm zum Kopieren von Daten in bzw. aus Microsoft Azure Blob und Table Storage. Hierzu werden einfache Befehle mit optimaler Leistung verwendet. Sie können Daten aus einem Objekt in ein anderes im gleichen oder in einem anderen Speicherkonto kopieren.
Herunterladen und Installieren von AzCopy
Laden Sie AzCopy V10+ herunter.
Konfiguration und Einschränkungen von AzCopy 10.1
AzCopy 10.1 kann jetzt so konfiguriert werden, dass ältere API-Versionen verwendet werden können. Dies ermöglicht (eingeschränkte) Unterstützung für Azure Stack Hub.
Um die API-Version für AzCopy für die Unterstützung von Azure Stack Hub zu konfigurieren, legen Sie die Umgebungsvariable AZCOPY_DEFAULT_SERVICE_API_VERSION
auf 2017-11-09
fest.
Betriebssystem | Get-Help |
---|---|
Windows | Verwenden Sie in einer Eingabeaufforderung: set AZCOPY_DEFAULT_SERVICE_API_VERSION=2017-11-09 Verwenden Sie in PowerShell: $env:AZCOPY_DEFAULT_SERVICE_API_VERSION="2017-11-09" |
Linux | export AZCOPY_DEFAULT_SERVICE_API_VERSION=2017-11-09 |
MacOS | export AZCOPY_DEFAULT_SERVICE_API_VERSION=2017-11-09 |
In AzCopy 10.1 werden die folgenden Funktionen für Azure Stack Hub unterstützt:
Funktion | Unterstützte Aktionen |
---|---|
Container verwalten | Erstellen eines Containers Auflisten der Inhalte von Containern |
Auftrag verwalten | Anzeigen von Aufträgen Fortsetzen eines Auftrags |
Blob entfernen | Entfernen eines einzelnen Blobs Entfernen eines ganzen oder teilweisen virtuellen Verzeichnisses |
Hochladen der Datei | Hochladen einer Datei Hochladen eines Verzeichnisses Hochladen der Inhalte eines Verzeichnisses |
Herunterladen der Datei | Herunterladen einer Datei Herunterladen eines Verzeichnisses Herunterladen der Inhalte eines Verzeichnisses |
Datei synchronisieren | Synchronisieren eines Containers mit einem lokalen Dateisystem Synchronisieren eines lokalen Dateisystem mit einem Container |
Hinweis
- Azure Stack Hub unterstützt nicht die Bereitstellung von Autorisierungsanmeldeinformationen für AzCopy mithilfe von Microsoft Entra-ID. Sie müssen für den Zugriff auf Speicherobjekte in Azure Stack Hub ein SAS-Token (Shared Access Signature) verwenden.
- Azure Stack Hub unterstützt keine synchrone Datenübertragung zwischen zwei Blobspeicherorten in Azure Stack Hub sowie zwischen Azure Storage und Azure Stack Hub. Sie können „azcopy cp“ nicht verwenden, um Daten direkt mit AzCopy 10.1 von Azure Stack Hub in Azure Storage (oder umgekehrt) zu verschieben.
AzCopy-Beispielbefehle für die Datenübertragung
Die folgenden Beispiele behandeln typische Szenarien für das Kopieren von Daten in und aus Azure Stack Hub-Blobs. Weitere Informationen finden Sie unter Erste Schritte mit AzCopy.
Herunterladen aller Blobs auf einen lokalen Datenträger
azcopy cp "https://[account].blob.core.windows.net/[container]/[path/to/directory]?[SAS]" "/path/to/dir" --recursive=true
Hochladen einer einzelnen Datei in ein virtuelles Verzeichnis
azcopy cp "/path/to/file.txt" "https://[account].blob.core.windows.net/[container]/[path/to/blob]?[SAS]"
Bekannte Probleme mit AzCopy
- AzCopy-Vorgänge für Dateispeicher sind nicht verfügbar, da in Azure Stack Hub noch kein Dateispeicher verfügbar ist.
- Wenn Sie Daten zwischen zwei Blobspeicherorten in Azure Stack Hub oder mithilfe von AzCopy 10.1 zwischen Azure Stack Hub und Azure Storage übertragen möchten, müssen Sie die Daten zuerst an einen lokalen Speicherort herunterladen und dann erneut in das Zielverzeichnis in Azure Stack Hub oder in Azure Storage hochladen. Oder Sie können AzCopy 7.1 verwenden und die Übertragung mit der Option /SyncCopy angeben, um die Daten zu kopieren.
- Die Linux-Version von AzCopy unterstützt nur das Update 1802 oder höhere Versionen und unterstützt den Tabellenspeicherdienst nicht.
- Wenn Sie Daten in und aus Ihrem Azure Table-Speicherdienst kopieren möchten, installieren Sie AzCopy, Version 7.3.0.
Azure PowerShell
Azure PowerShell ist ein Modul, das Cmdlets für die Verwaltung von Diensten in Azure und Azure Stack Hub bereitstellt. Bei diesem Modul handelt es sich um eine aufgabenbasierte Befehlszeilenshell und Skriptsprache, die speziell für die Systemverwaltung entwickelt wurde.
Installieren und Konfigurieren von PowerShell für die Verwendung mit Azure Stack Hub
Für die Verwendung von Azure Stack Hub sind mit Azure Stack Hub kompatible Azure PowerShell-Module erforderlich. Weitere Informationen finden Sie unter Installieren von PowerShell für Azure Stack Hub und Konfigurieren der PowerShell-Umgebung des Azure Stack Hub-Benutzers.
PowerShell-Beispielskript für Azure Stack Hub
In diesem Beispiel wird davon ausgegangen, dass Sie die Installation von PowerShell für Azure Stack Hub erfolgreich durchgeführt haben. Dieses Skript unterstützt Sie beim Abschluss der Konfiguration und fordert Sie zur Eingabe Ihrer Azure Stack Hub-Mandantenanmeldeinformationen auf, um Ihr Konto der lokalen PowerShell-Umgebung hinzuzufügen. Als Nächstes legt das Skript das standardmäßige Azure-Abonnement fest, erstellt ein neues Speicherkonto in Azure, erstellt in dem neuen Speicherkonto einen neuen Container und lädt eine vorhandene Imagedatei (Blob) in diesen Container hoch. Nachdem das Skript alle Blobs in diesem Container aufgelistet hat, erstellt es ein neues Zielverzeichnis auf dem lokalen Computer und lädt dann die Image-Datei herunter.
- Installieren Sie mit Azure Stack Hub kompatible Azure PowerShell-Module.
- Laden Sie die Tools herunter, die für die Arbeit mit Azure Stack Hub benötigt werden.
- Öffnen Sie Windows PowerShell ISE, wählen Sie Als Administrator ausführen, und klicken Sie dann auf Datei>Neu, um eine neue Skriptdatei zu erstellen.
- Kopieren Sie das folgende Skript, und fügen Sie es in die neue Skriptdatei ein.
- Aktualisieren Sie die Skriptvariablen auf Basis der Konfigurationseinstellungen.
Hinweis
Dieses Skript muss im Stammverzeichnis für AzureStack_Tools ausgeführt werden.
# begin
$ARMEvnName = "AzureStackUser" # set AzureStackUser as your Azure Stack Hub environment name
$ARMEndPoint = "https://management.local.azurestack.external"
$GraphAudience = "https://graph.windows.net/"
$AADTenantName = "<myDirectoryTenantName>.onmicrosoft.com"
$SubscriptionName = "basic" # Update with the name of your subscription.
$ResourceGroupName = "myTestRG" # Give a name to your new resource group.
$StorageAccountName = "azsblobcontainer" # Give a name to your new storage account. It must be lowercase.
$Location = "Local" # Choose "Local" as an example.
$ContainerName = "photo" # Give a name to your new container.
$ImageToUpload = "C:\temp\Hello.jpg" # Prepare an image file and a source directory in your local computer.
$DestinationFolder = "C:\temp\download" # A destination directory in your local computer.
# Import the Connect PowerShell module"
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force
Import-Module .\Connect\AzureStack.Connect.psm1
# Configure the PowerShell environment
# Register an Az environment that targets your Azure Stack Hub instance
Add-AzEnvironment -Name $ARMEvnName -ARMEndpoint $ARMEndPoint
# Login
$TenantID = Get-AzsDirectoryTenantId -AADTenantName $AADTenantName -EnvironmentName $ARMEvnName
Connect-AzAccount -EnvironmentName $ARMEvnName -TenantId $TenantID
# Set a default Azure subscription.
Select-AzSubscription -SubscriptionName $SubscriptionName
# Create a new Resource Group
New-AzResourceGroup -Name $ResourceGroupName -Location $Location
# Create a new storage account.
New-AzStorageAccount -ResourceGroupName $ResourceGroupName -Name $StorageAccountName -Location $Location -Type Standard_LRS
# Set a default storage account.
Set-AzCurrentStorageAccount -StorageAccountName $StorageAccountName -ResourceGroupName $ResourceGroupName
# Create a new container.
New-AzStorageContainer -Name $ContainerName -Permission Off
# Upload a blob into a container.
Set-AzStorageBlobContent -Container $ContainerName -File $ImageToUpload
# List all blobs in a container.
Get-AzStorageBlob -Container $ContainerName
# Download blobs from the container:
# Get a reference to a list of all blobs in a container.
$blobs = Get-AzStorageBlob -Container $ContainerName
# Create the destination directory.
New-Item -Path $DestinationFolder -ItemType Directory -Force
# Download blobs into the local destination directory.
$blobs | Get-AzureStorageBlobContent -Destination $DestinationFolder
# end
PowerShell – Bekannte Probleme
Unterschied zu „Get-AzStorageAccountKey“
Die kompatible Azure PowerShell-Modulversion für Azure Stack Hub ist derzeit 1.2.11 für Benutzervorgänge. Sie unterscheidet sich von der neuesten Version von Azure PowerShell. Dieser Unterschied wirkt sich wie folgt auf den Betrieb der Speicherdienste aus:
Das Format des Rückgabewerts von Get-AzStorageAccountKey
in Version 1.2.11 hat zwei Eigenschaften: Key1
und Key2
. Die aktuelle Azure-Version gibt dagegen ein Array mit allen Kontoschlüsseln zurück.
# This command gets a specific key for a storage account,
# and works for Azure PowerShell version 1.4, and later versions.
(Get-AzStorageAccountKey -ResourceGroupName "RG01" `
-AccountName "MyStorageAccount").Value[0]
# This command gets a specific key for a storage account,
# and works for Azure PowerShell version 1.3.2, and previous versions.
(Get-AzStorageAccountKey -ResourceGroupName "RG01" `
-AccountName "MyStorageAccount").Key1
Weitere Informationen finden Sie unter Get-AzureRMStorageAccountKey.
Kopieren eines Blobs zwischen Azure Stack Hub-Clustern
Start-AzStorageBlobCopy
kann verwendet werden, um einen Kopierauftrag zum Verschieben eines Blobs zu starten. Wenn Sie die Eigenschaft AbsoluteUri
als Blob-URI für einen anderen Azure Stack Hub-Cluster festlegen, kann dieses Cmdlet zum Kopieren eines Blobs zwischen zwei Azure Stack Hub-Clustern verwendet werden. Stellen Sie sicher, dass die Azure Stack Hub-Quell- und Zielcluster die gleiche Updateversion aufweisen. Azure Stack Hub unterstützt derzeit nicht die Verwendung von Start-AzStorageBlobCopy
zum Kopieren von Blobs zwischen zwei Azure Stack Hub-Clustern, die unterschiedliche Updateversionen aufweisen.
Azure-Befehlszeilenschnittstelle
Die Azure CLI ist die Befehlszeilenumgebung von Azure und dient zum Verwalten von Azure-Ressourcen. Sie können sie unter macOS, Linux und Windows installieren und über die Befehlszeile ausführen.
Azure CLI ist für die Verwaltung von Azure-Ressourcen über die Befehlszeile sowie die Erstellung von Automatisierungsskripts für Azure Resource Manager optimiert. Sie bietet viele der im Azure Stack Hub-Portal vorhandenen Funktionen, so z.B. umfangreiche Datenzugriffsfunktionen.
Azure Stack Hub erfordert Azure CLI Version 2.0 oder höher. Weitere Informationen zum Installieren und Konfigurieren von Azure CLI mit Azure Stack Hub finden Sie im Artikel zum Installieren und Konfigurieren der CLI für Azure Stack Hub. Weitere Informationen zur Verwendung der Azure CLI für einige Aufgaben in Verbindung mit Ressourcen in Ihrem Azure Stack Hub-Speicherkonto finden Sie unter Verwenden der Azure CLI mit Azure Storage.
Azure CLI-Beispielskript für Azure Stack Hub
Wenn Sie die Installation und Konfiguration der CLI abgeschlossen haben, können Sie die folgenden Schritte ausprobieren, um mit einem kleinen Shell-Beispielskript für die Interaktion mit Azure Stack Hub-Speicherressourcen zu arbeiten. Dieses Skript führt folgende Aktionen aus:
- Erstellen eines Blobcontainers in Ihrem Speicherkonto
- Hochladen einer vorhandenen Datei (als Blob) in den Container
- Auflisten aller Blobs im Container
- Herunterladen der Datei in ein von Ihnen angegebenes Ziel auf dem lokalen Computer
Stellen Sie vor der Ausführung dieses Skripts sicher, dass Sie eine Verbindung mit der gewünschten Azure Stack Hub-Instanz herstellen und sich dort anmelden können.
- Öffnen Sie Ihren bevorzugten Texteditor, in den Sie das kopierte vorhergehende Skript einfügen.
- Aktualisieren Sie die Skriptvariablen entsprechend Ihren Konfigurationseinstellungen.
- Nachdem Sie die erforderlichen Variablen aktualisiert haben, speichern Sie das Skript, und beenden Sie den Editor. In den nächsten Schritten wird vorausgesetzt, dass Sie Ihr my_storage_sample.sh genannt haben.
- Markieren Sie das Skript bei Bedarf als ausführbar:
chmod +x my_storage_sample.sh
- Führen Sie das Skript aus. Beispielsweise in Bash:
./my_storage_sample.sh
#!/bin/bash
# A simple Azure Stack Hub storage example script
export AZURESTACK_RESOURCE_GROUP=<resource_group_name>
export AZURESTACK_RG_LOCATION="local"
export AZURESTACK_STORAGE_ACCOUNT_NAME=<storage_account_name>
export AZURESTACK_STORAGE_CONTAINER_NAME=<container_name>
export AZURESTACK_STORAGE_BLOB_NAME=<blob_name>
export FILE_TO_UPLOAD=<file_to_upload>
export DESTINATION_FILE=<destination_file>
echo "Creating the resource group..."
az group create --name $AZURESTACK_RESOURCE_GROUP --location $AZURESTACK_RG_LOCATION
echo "Creating the storage account..."
az storage account create --name $AZURESTACK_STORAGE_ACCOUNT_NAME --resource-group $AZURESTACK_RESOURCE_GROUP --account-type Standard_LRS
echo "Creating the blob container..."
az storage container create --name $AZURESTACK_STORAGE_CONTAINER_NAME --account-name $AZURESTACK_STORAGE_ACCOUNT_NAME
echo "Uploading the file..."
az storage blob upload --container-name $AZURESTACK_STORAGE_CONTAINER_NAME --file $FILE_TO_UPLOAD --name $AZURESTACK_STORAGE_BLOB_NAME --account-name $AZURESTACK_STORAGE_ACCOUNT_NAME
echo "Listing the blobs..."
az storage blob list --container-name $AZURESTACK_STORAGE_CONTAINER_NAME --account-name $AZURESTACK_STORAGE_ACCOUNT_NAME --output table
echo "Downloading the file..."
az storage blob download --container-name $AZURESTACK_STORAGE_CONTAINER_NAME --account-name $AZURESTACK_STORAGE_ACCOUNT_NAME --name $AZURESTACK_STORAGE_BLOB_NAME --file $DESTINATION_FILE --output table
echo "Done"
Microsoft Azure Storage-Explorer
Azure Storage-Explorer ist eine eigenständige App von Microsoft. Mit ihr können Sie Daten aus Azure Storage und Azure Stack Hub-Speicher einfach auf Computern unter Windows, macOS und Linux nutzen. Microsoft Azure Storage-Explorer bietet eine komfortable Verwaltung für Ihre Azure Stack Hub-Speicherdaten.
- Weitere Informationen zum Konfigurieren von Azure Storage-Explorer für die Verwendung mit Azure Stack Hub finden Sie unter Herstellen einer Verbindung von Storage-Explorer mit einem Azure Stack Hub-Abonnement.
- Weitere Informationen zum Microsoft Azure Storage-Explorer finden Sie unter Erste Schritte mit dem Storage-Explorer.
blobfuse
blobfuse ist ein virtueller Dateisystemtreiber für Azure Blob Storage, der Ihnen den Zugriff auf vorhandene Blockblobdaten in Ihrem Speicherkonto über das Linux-Dateisystem ermöglicht. Azure Blob Storage ist ein Objektspeicherdienst und verfügt daher nicht über einen hierarchischen Namespace. Blobfuse stellt diesen Namespace mithilfe des Schemas für virtuelle Verzeichnisse bereit. Dabei wird als Trennzeichen ein Schrägstrich (/
) verwendet. blobfuse funktioniert sowohl unter Azure als auch unter Azure Stack Hub.
Weitere Informationen zum Bereitstellen von Blobspeicher als Dateisystem mit blobfuse unter Linux finden Sie unter Einbinden von Blob Storage als Dateisystem mit blobfuse.
Für Azure Stack Hub muss blobEndpoint neben „accountName“, „accountKey/sasToken“ und „containerName“ bei der Konfiguration der Anmeldeinformationen für das Speicherkonto angegeben werden.
Im Azure Stack Development Kit (ASDK) sollte blobEndpoint auf myaccount.blob.local.azurestack.external
festgelegt werden. Wenden Sie sich hinsichtlich des integrierten Azure Stack Hub-Systems an Ihren Cloudadministrator, wenn Sie sich beim Endpunkt nicht sicher sind.
Beachten Sie, dass accountKey und sasToken nicht gleichzeitig konfiguriert werden können. Wenn ein Speicherkontoschlüssel angegeben wird, hat die Konfigurationsdatei für die Anmeldeinformationen das folgende Format:
accountName myaccount
accountKey myaccesskey==
containerName mycontainer
blobEndpoint myaccount.blob.local.azurestack.external
Wenn ein SAS-Token angegeben wird, hat die Konfigurationsdatei für die Anmeldeinformationen das folgende Format:
accountName myaccount
sasToken ?mysastoken
containerName mycontainer
blobEndpoint myaccount.blob.local.azurestack.external