Korzystanie z narzędzi transferu danych w usłudze Azure Stack Hub Storage

Usługa Azure Stack Hub udostępnia zestaw usług magazynowania dla dysków, obiektów blob, tabel, kolejek i funkcji zarządzania kontami. Niektóre narzędzia usługi Azure Storage są dostępne, jeśli chcesz zarządzać danymi lub przenosić je do lub z usługi Azure Stack Hub Storage. Ten artykuł zawiera omówienie dostępnych narzędzi.

Wymagania określają, które z następujących narzędzi najlepiej sprawdza się w Twoim przypadku:

  • AzCopy

    Narzędzie wiersza polecenia specyficzne dla magazynu, które można pobrać w celu skopiowania danych z jednego obiektu do innego obiektu w ramach kont magazynu lub między nimi.

  • Azure PowerShell

    Oparty na zadaniach powłoka wiersza polecenia i język skryptów przeznaczony specjalnie do administrowania systemem.

  • Interfejs wiersza polecenia platformy Azure

    Międzyplatformowe narzędzie typu open source, które udostępnia zestaw poleceń do pracy z platformami Azure i Azure Stack Hub.

  • Microsoft Azure Storage Explorer

    Łatwa w użyciu aplikacja autonomiczna z interfejsem użytkownika.

  • Blobfuse

    Wirtualny sterownik systemu plików dla Azure Blob Storage, który umożliwia dostęp do istniejących danych blokowych obiektów blob na koncie magazynu za pośrednictwem systemu plików Linux.

Ze względu na różnice między usługami magazynu między platformą Azure i usługą Azure Stack Hub mogą istnieć pewne specyficzne wymagania dla każdego narzędzia opisanego w poniższych sekcjach. Porównanie usług Azure Stack Hub Storage i Azure Storage można znaleźć w temacie Azure Stack Hub Storage: Differences and considerations (Magazyn usługi Azure Stack Hub: różnice i zagadnienia).

AzCopy

AzCopy to narzędzie wiersza polecenia przeznaczone do kopiowania danych do i z magazynu obiektów blob i tabel platformy Microsoft Azure przy użyciu prostych poleceń z optymalną wydajnością. Dane z jednego obiektu można skopiować do innego w ramach kont magazynu lub między nimi.

Pobieranie i instalowanie narzędzia AzCopy

Pobierz narzędzie AzCopy w wersji 10+.

Konfiguracja i limity narzędzia AzCopy 10.1

Narzędzie AzCopy 10.1 można teraz skonfigurować do korzystania ze starszych wersji interfejsu API. Umożliwia to (ograniczoną) obsługę usługi Azure Stack Hub. Aby skonfigurować wersję interfejsu API dla narzędzia AzCopy do obsługi usługi Azure Stack Hub, ustaw zmienną AZCOPY_DEFAULT_SERVICE_API_VERSION środowiskową na 2017-11-09.

System operacyjny Polecenie
Windows W wierszu polecenia użyj polecenia: set AZCOPY_DEFAULT_SERVICE_API_VERSION=2017-11-09
W programie PowerShell użyj: $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

W narzędziu AzCopy 10.1 w usłudze Azure Stack Hub są obsługiwane następujące funkcje:

Cecha Obsługiwane akcje
Zarządzanie kontenerem Tworzenie kontenera
Wyświetlanie zawartości kontenerów
Zarządzanie zadaniem Wyświetlanie zadań
Wznawianie zadania
Usuwanie obiektu blob Usuwanie pojedynczego obiektu blob
Usuwanie całego lub częściowego katalogu wirtualnego
Przekazywanie pliku Przekazywanie pliku
Przekazywanie katalogu
Przekazywanie zawartości katalogu
Pobieranie pliku Pobieranie pliku
Pobieranie katalogu
Pobieranie zawartości katalogu
Synchronizowanie pliku Synchronizowanie kontenera z lokalnym systemem plików
Synchronizowanie lokalnego systemu plików z kontenerem

Uwaga

  • Usługa Azure Stack Hub nie obsługuje podawania poświadczeń autoryzacji do narzędzia AzCopy przy użyciu identyfikatora Microsoft Entra. Musisz uzyskać dostęp do obiektów magazynu w usłudze Azure Stack Hub przy użyciu tokenu sygnatury dostępu współdzielonego (SAS).
  • Usługa Azure Stack Hub nie obsługuje synchronicznego transferu danych między dwiema lokalizacjami obiektów blob usługi Azure Stack Hub oraz między usługą Azure Storage i usługą Azure Stack Hub. Nie można użyć polecenia "azcopy cp", aby przenieść dane z usługi Azure Stack Hub do usługi Azure Storage (lub odwrotnie) bezpośrednio za pomocą narzędzia AzCopy 10.1.

Przykłady poleceń narzędzia AzCopy na potrzeby transferu danych

Poniższe przykłady są zgodne z typowymi scenariuszami kopiowania danych do i z obiektów blob usługi Azure Stack Hub. Aby dowiedzieć się więcej, zobacz Wprowadzenie do narzędzia AzCopy.

Pobieranie wszystkich obiektów blob na dysk lokalny

azcopy cp "https://[account].blob.core.windows.net/[container]/[path/to/directory]?[SAS]" "/path/to/dir" --recursive=true

Przekazywanie pojedynczego pliku do katalogu wirtualnego

azcopy cp "/path/to/file.txt" "https://[account].blob.core.windows.net/[container]/[path/to/blob]?[SAS]"

Znane problemy z narzędziem AzCopy

  • Żadna operacja narzędzia AzCopy w magazynie plików nie jest dostępna, ponieważ magazyn plików nie jest jeszcze dostępny w usłudze Azure Stack Hub.
  • Jeśli chcesz przesyłać dane między dwiema lokalizacjami obiektów blob usługi Azure Stack Hub — lub między usługą Azure Stack Hub i usługą Azure Storage przy użyciu narzędzia AzCopy 10.1 — najpierw musisz pobrać dane do lokalizacji lokalnej, a następnie ponownie załadować do katalogu docelowego w usłudze Azure Stack Hub lub Azure Storage. Możesz też użyć narzędzia AzCopy 7.1 i określić transfer przy użyciu opcji /SyncCopy , aby skopiować dane.
  • Wersja narzędzia AzCopy w systemie Linux obsługuje tylko aktualizację 1802 lub nowszą i nie obsługuje usługi Table Service.
  • Jeśli chcesz skopiować dane do i z usługi Azure Table Storage, zainstaluj narzędzie AzCopy w wersji 7.3.0

Azure PowerShell

Azure PowerShell to moduł, który udostępnia polecenia cmdlet do zarządzania usługami na platformie Azure i w usłudze Azure Stack Hub. Jest to oparty na zadaniach powłoka wiersza polecenia i język skryptowy zaprojektowany specjalnie do administrowania systemem.

Instalowanie i konfigurowanie programu PowerShell dla usługi Azure Stack Hub

Moduły Azure PowerShell zgodne z usługą Azure Stack Hub są wymagane do pracy z usługą Azure Stack Hub. Aby uzyskać więcej informacji, zobacz Instalowanie programu PowerShell dla usługi Azure Stack Hub i Konfigurowanie środowiska programu PowerShell użytkownika usługi Azure Stack Hub.

Przykładowy skrypt programu PowerShell dla usługi Azure Stack Hub

W tym przykładzie założono, że pomyślnie zainstalowano program PowerShell dla usługi Azure Stack Hub. Ten skrypt pomoże Ci ukończyć konfigurację i poprosić o podanie poświadczeń dzierżawy usługi Azure Stack Hub w celu dodania konta do lokalnego środowiska programu PowerShell. Następnie skrypt ustawi domyślną subskrypcję platformy Azure, utworzy nowe konto magazynu na platformie Azure, utworzy nowy kontener na tym nowym koncie magazynu i przekaże istniejący plik obrazu (blob) do tego kontenera. Po wyświetleniu listy wszystkich obiektów blob w tym kontenerze skrypt utworzy nowy katalog docelowy na komputerze lokalnym i pobierze plik obrazu.

  1. Zainstaluj moduły Azure PowerShell zgodne z usługą Azure Stack Hub.
  2. Pobierz narzędzia wymagane do pracy z usługą Azure Stack Hub.
  3. Otwórz Windows PowerShell ISE i Uruchom jako administrator, a następnie kliknij pozycję Nowy plik,>aby utworzyć nowy plik skryptu.
  4. Skopiuj poniższy skrypt i wklej go do nowego pliku skryptu.
  5. Zaktualizuj zmienne skryptu na podstawie ustawień konfiguracji.

    Uwaga

    Ten skrypt musi zostać uruchomiony w katalogu głównym dla AzureStack_Tools.

# 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

Znane problemy dotyczące programu PowerShell

różnica Get-AzStorageAccountKey

Bieżąca zgodna wersja modułu Azure PowerShell dla usługi Azure Stack Hub to 1.2.11 dla operacji użytkownika. Różni się od najnowszej wersji Azure PowerShell. Ta różnica ma wpływ na operację usług magazynu w następujący sposób:

Format wartości zwracanej Get-AzStorageAccountKey w wersji 1.2.11 ma dwie właściwości: Key1 i Key2, podczas gdy bieżąca wersja platformy Azure zwraca tablicę zawierającą wszystkie klucze konta.

# 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

Aby uzyskać więcej informacji, zobacz Get-AzureRMStorageAccountKey.

Kopiowanie obiektu blob między klastrami usługi Azure Stack Hub

Start-AzStorageBlobCopy może służyć do uruchamiania zadania kopiowania w celu przeniesienia obiektu blob. Podczas ustawiania właściwości AbsoluteUri jako identyfikatora URI obiektu blob w innym klastrze usługi Azure Stack Hub to polecenie cmdlet może służyć do kopiowania obiektu blob między dwoma klastrami usługi Azure Stack Hub. Upewnij się, że źródłowe i docelowe klastry usługi Azure Stack Hub znajdują się w tej samej wersji aktualizacji. Usługa Azure Stack Hub obecnie nie obsługuje kopiowania Start-AzStorageBlobCopy obiektów blob między dwoma klastrami usługi Azure Stack Hub, które wdrożyły różne wersje aktualizacji.

Interfejs wiersza polecenia platformy Azure

Interfejs wiersza polecenia platformy Azure to środowisko wiersza polecenia platformy Azure do zarządzania jej zasobami. Można go zainstalować w systemach macOS, Linux i Windows i uruchomić go z poziomu wiersza polecenia.

Interfejs wiersza polecenia platformy Azure jest zoptymalizowany pod kątem zarządzania zasobami platformy Azure i administrowania nimi z poziomu wiersza polecenia oraz tworzenia skryptów automatyzacji, które działają w odniesieniu do usługi Azure Resource Manager. Udostępnia wiele tych samych funkcji znalezionych w portalu usługi Azure Stack Hub, w tym bogaty dostęp do danych.

Usługa Azure Stack Hub wymaga interfejsu wiersza polecenia platformy Azure w wersji 2.0 lub nowszej. Aby uzyskać więcej informacji na temat instalowania i konfigurowania interfejsu wiersza polecenia platformy Azure za pomocą usługi Azure Stack Hub, zobacz Instalowanie i konfigurowanie interfejsu wiersza polecenia usługi Azure Stack Hub. Aby uzyskać więcej informacji na temat używania interfejsu wiersza polecenia platformy Azure do wykonywania kilku zadań roboczych z zasobami na koncie magazynu usługi Azure Stack Hub, zobacz Korzystanie z interfejsu wiersza polecenia platformy Azure z usługą Azure Storage.

Przykładowy skrypt interfejsu wiersza polecenia platformy Azure dla usługi Azure Stack Hub

Po zakończeniu instalacji i konfiguracji interfejsu wiersza polecenia możesz spróbować wykonać następujące kroki, aby pracować z małym skryptem przykładowym powłoki w celu interakcji z zasobami magazynu usługi Azure Stack Hub. Skrypt wykonuje następujące akcje:

  • Tworzy nowy kontener na koncie magazynu.
  • Przekazuje istniejący plik (jako obiekt blob) do kontenera.
  • Wyświetla listę wszystkich obiektów blob w kontenerze.
  • Pobiera plik do miejsca docelowego na określonym komputerze lokalnym.

Przed uruchomieniem tego skryptu upewnij się, że możesz pomyślnie nawiązać połączenie i zalogować się do docelowej usługi Azure Stack Hub.

  1. Otwórz ulubiony edytor tekstów, a następnie skopiuj i wklej poprzedni skrypt do edytora.
  2. Zaktualizuj zmienne skryptu, aby odzwierciedlały ustawienia konfiguracji.
  3. Po zaktualizowaniu niezbędnych zmiennych zapisz skrypt i zamknij edytor. W następnych krokach założono, że skrypt został nazwany my_storage_sample.sh.
  4. W razie potrzeby oznacz skrypt jako plik wykonywalny: chmod +x my_storage_sample.sh
  5. Uruchom skrypt. Na przykład w powłoce 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

Eksplorator usługi Azure Storage to autonomiczna aplikacja firmy Microsoft. Umożliwia ona łatwą pracę z danymi usługi Azure Storage i Azure Stack Hub Storage na komputerach z systemami Windows, macOS i Linux. Jeśli chcesz łatwo zarządzać danymi usługi Azure Stack Hub Storage, rozważ użycie Eksplorator usługi Microsoft Azure Storage.

Blobfuse

Blobfuse to wirtualny sterownik systemu plików dla Azure Blob Storage, który umożliwia dostęp do istniejących blokowych danych obiektów blob na koncie magazynu za pośrednictwem systemu plików Systemu Linux. Azure Blob Storage jest usługą magazynu obiektów i dlatego nie ma hierarchicznej przestrzeni nazw. Blobfuse udostępnia tę przestrzeń nazw przy użyciu schematu katalogu wirtualnego z użyciem ukośnika / do przodu jako ogranicznika. Usługa Blobfuse działa zarówno na platformie Azure, jak i w usłudze Azure Stack Hub.

Aby dowiedzieć się więcej na temat instalowania magazynu obiektów blob jako systemu plików za pomocą systemu Blobfuse w systemie Linux, zobacz How to mount Blob Storage as a file system with Blobfuse (Jak zainstalować usługę Blob Storage jako system plików przy użyciu systemu Blobfuse).

W przypadku usługi Azure Stack Hub należy określić punkt blobEndpoint podczas konfigurowania poświadczeń konta magazynu wraz z accountName, accountKey/sasToken i containerName.

W zestawie Azure Stack Development Kit (ASDK) punkt blobEndpoint powinien mieć wartość myaccount.blob.local.azurestack.external. W zintegrowanym systemie usługi Azure Stack Hub skontaktuj się z administratorem chmury, jeśli nie masz pewności co do punktu końcowego.

accountKey i sasToken można skonfigurować tylko raz. Po podaniu klucza konta magazynu plik konfiguracji poświadczeń jest w następującym formacie:

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

Po podaniu tokenu dostępu współdzielonego plik konfiguracji poświadczeń ma następujący format:

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

Następne kroki