Freigeben über


Verwenden von Datenübertragungstools in Azure Stack Hub Storage

Azure Stack Hub bietet eine Reihe von Speicherdiensten für Datenträger, Blobs, Tabellen, Warteschlangen und Kontoverwaltungsfunktionen. Einige Azure Storage-Tools sind verfügbar, wenn Sie Daten in Azure Stack Hub Storage verwalten oder verschieben möchten. Dieser Artikel enthält eine Übersicht über die verfügbaren Tools.

Ihre Anforderungen bestimmen, welche der folgenden Tools für Sie am besten geeignet sind:

  • AzCopy: Ein speicherspezifisches Befehlszeilenprogramm, das Sie herunterladen können, um Daten von einem Objekt in ein anderes Objekt innerhalb oder zwischen Ihren Speicherkonten zu kopieren.
  • Azure PowerShell: Eine aufgabenbasierte Befehlszeilenshell und Skriptsprache, die speziell für die Systemverwaltung entwickelt wurde.
  • Azure CLI: Ein plattformübergreifendes Open Source-Tool, das eine Reihe von Befehlen für die Arbeit mit den Azure- und Azure Stack Hub-Plattformen bereitstellt.
  • Microsoft Azure Storage Explorer: Eine einfach zu verwendende eigenständige App mit einer Benutzeroberfläche.
  • Blobfuse: Ein virtueller Dateisystemtreiber für Azure Blob Storage, mit dem Sie über das Linux-Dateisystem auf Ihre vorhandenen Block-BLOB-Daten in Ihrem Speicherkonto zugreifen können.

Aufgrund von Unterschieden bei Speicherdiensten zwischen Azure und Azure Stack Hub gibt es möglicherweise einige spezifische Anforderungen für jedes Tool, das in den folgenden Abschnitten beschrieben wird. Einen Vergleich zwischen Azure Stack Hub Storage und Azure Storage finden Sie unter Azure Stack Hub Storage: Unterschiede und Überlegungen.

AzCopy

AzCopy ist ein Befehlszeilenprogramm zum Kopieren von Daten in und aus Microsoft Azure Blob- und Tabellenspeicher mit einfachen Befehlen mit optimaler Leistung. Sie können Daten von einem Objekt in ein anderes innerhalb oder zwischen Ihren Speicherkonten kopieren.

Herunterladen und Installieren von AzCopy

Laden Sie AzCopy V10+ herunter.

AzCopy 10.1-Konfiguration und -Grenzwerte

AzCopy 10.1 kann jetzt für die Verwendung älterer API-Versionen konfiguriert werden. Dies ermöglicht (eingeschränkte) Unterstützung für Azure Stack Hub. Um die API-Version für AzCopy zur Unterstützung von Azure Stack Hub zu konfigurieren, legen Sie die AZCOPY_DEFAULT_SERVICE_API_VERSION Umgebungsvariable auf 2017-11-09.

Betriebssystem Befehl
Fenster Verwenden Sie in einer Eingabeaufforderung: set AZCOPY_DEFAULT_SERVICE_API_VERSION=2017-11-09
Verwenden Sie in PowerShell Folgendes: $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 Features für Azure Stack Hub unterstützt:

Merkmal Unterstützte Aktionen
Container verwalten Container erstellen
Inhalt von Containern auflisten
Auftrag verwalten Anzeigen von Aufträgen
Fortsetzen eines Auftrags
Blob entfernen Entfernen eines einzelnen Blobs
Vollständiges oder teilweises virtuelles Verzeichnis entfernen
Hochladen der Datei Hochladen einer Datei
Hochladen eines Verzeichnisses
Hochladen der Inhalte eines Verzeichnisses
Herunterladen einer Datei Herunterladen einer Datei
Herunterladen eines Verzeichnisses
Herunterladen der Inhalte eines Verzeichnisses
Datei synchronisieren Synchronisieren eines Containers mit einem lokalen Dateisystem
Synchronisieren eines lokalen Dateisystems mit einem Container

Hinweis

Azure Stack Hub unterstützt die Bereitstellung von Autorisierungsanmeldeinformationen für AzCopy nicht mithilfe der Microsoft Entra-ID. Sie müssen auf Speicherobjekte im Azure Stack Hub mithilfe eines SAS-Tokens (Shared Access Signature) zugreifen. Azure Stack Hub unterstützt keine synchrone Datenübertragung zwischen zwei Azure Stack Hub-Blobspeicherorten und zwischen Azure Storage und Azure Stack Hub. Sie können Daten nicht azcopy cp direkt mit AzCopy 10.1 aus Azure Stack Hub in Azure Storage (oder umgekehrt) verschieben.

AzCopy-Befehlsbeispiele für die Datenübertragung

Die folgenden Beispiele folgen typischen Szenarien zum 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

  • Alle AzCopy-Vorgänge in einem Dateispeicher sind nicht verfügbar, da der Dateispeicher noch nicht im Azure Stack Hub verfügbar ist.
  • Wenn Sie Daten zwischen zwei Azure Stack Hub-BLOB-Speicherorten oder zwischen Azure Stack Hub und Azure Storage mithilfe von AzCopy 10.1 übertragen möchten, laden Sie die Daten zuerst an einen lokalen Speicherort herunter, und laden Sie dann erneut in das Zielverzeichnis auf Azure Stack Hub oder Azure Storage hoch.
  • Die Linux-Version von AzCopy unterstützt nur das Update von 1802 oder höher; der Tabellendienst wird nicht unterstützt.
  • Wenn Sie Daten in ihren Azure-Tabellenspeicherdienst kopieren möchten, können Sie PowerShell, CLI oder die Azure-Clientbibliotheken verwenden.

Azure PowerShell

Azure PowerShell ist ein Modul, das Cmdlets zum Verwalten von Diensten sowohl in Azure als auch im Azure Stack Hub bereitstellt. Es ist eine aufgabenbasierte Befehlszeilenshell und Skriptsprache, die speziell für die Systemverwaltung entwickelt wurde.

Installieren und Konfigurieren von PowerShell für Azure Stack Hub

Azure Stack Hub-kompatible Azure PowerShell-Module sind erforderlich, um mit Azure Stack Hub zu arbeiten. 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 PowerShell für Azure Stack Hub erfolgreich installiert haben. Dieses Skript hilft Ihnen, die Konfiguration abzuschließen und Ihre Azure Stack Hub-Mandantenanmeldeinformationen aufzufordern, Ihr Konto zur lokalen PowerShell-Umgebung hinzuzufügen. Das Skript legt dann das Azure-Standardabonnement fest, erstellt ein neues Speicherkonto in Azure, erstellt einen neuen Container in diesem neuen Speicherkonto und lädt eine vorhandene Imagedatei (BLOB) in diesen Container hoch. Nachdem das Skript alle Blobs in diesem Container auflistet, wird ein neues Zielverzeichnis auf Ihrem lokalen Computer erstellt und die Bilddatei heruntergeladen.

  1. Installieren Sie Azure Stack Hub-kompatible Azure PowerShell-Module.
  2. Laden Sie die Tools herunter, die zum Arbeiten mit Azure Stack Huberforderlich sind.
  3. Öffnen Sie Windows PowerShell ISE, und führen Sie sie als Administrator aus, und klicken Sie dann auf "Neu">, um eine neue Skriptdatei zu erstellen.
  4. Kopieren Sie das folgende Skript, und fügen Sie es in die neue Skriptdatei ein.
  5. Aktualisieren Sie die Skriptvariablen basierend auf Ihren 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

Bekannte Probleme bei PowerShell

Get-AzStorageAccountKey Unterschied

Die aktuelle kompatible Azure PowerShell-Modulversion für Azure Stack Hub ist 1.2.11 für die Benutzervorgänge. Es unterscheidet sich von der neuesten Version von Azure PowerShell. Dieser Unterschied wirkt sich auf den Speicherdienstvorgang wie folgt aus:

Das Rückgabewertformat in Get-AzStorageAccountKey Version 1.2.11 weist zwei Eigenschaften auf: Key1 und Key2die aktuelle Azure-Version gibt ein Array zurück, das alle Kontoschlüssel enthält.

# 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 zu starten, um ein BLOB zu verschieben. Wenn Sie die Eigenschaft AbsoluteUri als BLOB-URI auf einem anderen Azure Stack Hub-Cluster festlegen, kann dieses Cmdlet verwendet werden, um blobs zwischen zwei Azure Stack Hub-Clustern zu kopieren. Stellen Sie sicher, dass sich die Quell- und Ziel-Azure Stack Hub-Cluster auf derselben Updateversion befinden. Azure Stack Hub unterstützt derzeit nicht die Verwendung Start-AzStorageBlobCopy des Blobs zwischen zwei Azure Stack Hub-Clustern, die unterschiedliche Updateversionen bereitgestellt haben.

Azure-Befehlszeilenschnittstelle (Azure CLI)

Die Azure CLI ist die Befehlszeilenumgebung von Azure und dient zum Verwalten von Azure-Ressourcen. Sie können es unter macOS, Linux und Windows installieren und über die Befehlszeile ausführen.

Azure CLI ist für das Verwalten und Verwalten von Azure-Ressourcen über die Befehlszeile und für das Erstellen von Automatisierungsskripts optimiert, die mit dem Azure Resource Manager funktionieren. Es stellt viele der gleichen Funktionen bereit, die im Azure Stack Hub-Portal zu finden sind, einschließlich des umfassenden Datenzugriffs.

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 unter Installieren und Konfigurieren der Azure Stack Hub CLI. Weitere Informationen zur Verwendung der Azure CLI zum Ausführen mehrerer Aufgaben beim Arbeiten 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

Nachdem Sie die CLI-Installation und -Konfiguration abgeschlossen haben, können Sie die folgenden Schritte ausprobieren, um mit einem kleinen Shell-Beispielskript zu arbeiten, um mit Azure Stack Hub-Speicherressourcen zu interagieren. Das Skript schließt die folgenden Aktionen ab:

  • Erstellt einen neuen Container in Ihrem Speicherkonto.
  • Lädt eine vorhandene Datei (als Blob) in den Container hoch.
  • Listet alle Blobs im Container auf.
  • Lädt die Datei auf ihren lokalen Computer, den Sie angeben, auf ein Ziel herunter.

Bevor Sie dieses Skript ausführen, stellen Sie sicher, dass Sie erfolgreich eine Verbindung herstellen und sich beim Azure Stack Hub-Ziel anmelden können.

  1. Öffnen Sie Ihren bevorzugten Text-Editor, und kopieren Sie dann das vorherige Skript, und fügen Sie es in den Editor ein.
  2. Aktualisieren Sie die Variablen des Skripts, um Ihre Konfigurationseinstellungen widerzuspiegeln.
  3. Nachdem Sie die erforderlichen Variablen aktualisiert haben, speichern Sie das Skript, und beenden Sie den Editor. Bei den nächsten Schritten wird davon ausgegangen, dass Sie Ihr Skript my_storage_sample.sh benannt haben.
  4. Markieren Sie das Skript bei Bedarf als ausführbare Datei: chmod +x my_storage_sample.sh
  5. Führen Sie das Skript aus. Beispiel: 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. Sie können problemlos mit Azure Storage- und Azure Stack Hub Storage-Daten auf Windows-, macOS- und Linux-Computern arbeiten. Wenn Sie eine einfache Möglichkeit zum Verwalten Ihrer Azure Stack Hub Storage-Daten benötigen, sollten Sie microsoft Azure Storage Explorer verwenden.

blobfuse

Blobfuse ist ein virtueller Dateisystemtreiber für Azure Blob Storage, mit dem Sie über das Linux-Dateisystem auf Ihre vorhandenen Block-BLOB-Daten in Ihrem Speicherkonto zugreifen können. Azure Blob Storage ist ein Objektspeicherdienst und verfügt daher nicht über einen hierarchischen Namespace. Blobfuse stellt diesen Namespace mithilfe des virtuellen Verzeichnisschemas mit der Verwendung von Schrägstrich / als Trennzeichen bereit. Blobfuse funktioniert sowohl in Azure als auch im Azure Stack Hub.

Weitere Informationen zum Einbinden von BLOB-Speicher als Dateisystem mit Blobfuse unter Linux finden Sie unter How to mount Blob storage as a file system with Blobfuse.

Für Azure Stack Hub muss blobEndpoint angegeben werden, während Sie Ihre Speicherkontoanmeldeinformationen zusammen mit accountName, accountKey/sasToken und containerName konfigurieren.

Im Azure Stack Development Kit (ASDK) sollte der blobEndpoint sein myaccount.blob.local.azurestack.external. Wenden Sie sich im integrierten Azure Stack Hub-System an Ihren Cloudadministrator, wenn Sie nicht sicher sind, ob Sie sich über Ihren Endpunkt befinden.

accountKey und sasToken können jeweils nur einzeln konfiguriert werden. Wenn ein Speicherkontoschlüssel angegeben wird, weist die Konfigurationsdatei für Anmeldeinformationen das folgende Format auf:

accountName myaccount 
accountKey myaccesskey== 
containerName mycontainer 
blobEndpoint myaccount.blob.local.azurestack.external

Wenn ein freigegebenes Zugriffstoken angegeben wird, weist die Konfigurationsdatei für Anmeldeinformationen das folgende Format auf:

accountName myaccount 
sasToken ?mysastoken 
containerName mycontainer 
blobEndpoint myaccount.blob.local.azurestack.external

Nächste Schritte