Použití nástrojů pro přenos dat ve službě Azure Stack Hub Storage

Azure Stack Hub poskytuje sadu služeb úložiště pro disky, objekty blob, tabulky, fronty a funkce správy účtů. Některé nástroje azure Storage jsou k dispozici, pokud chcete spravovat nebo přesouvat data do nebo ze služby Azure Stack Hub Storage. Tento článek obsahuje přehled dostupných nástrojů.

Vaše požadavky určují, který z následujících nástrojů je pro vás nejvhodnější:

  • AzCopy

    Nástroj příkazového řádku specifický pro úložiště, který si můžete stáhnout ke kopírování dat z jednoho objektu do jiného v rámci nebo mezi účty úložiště.

  • Azure PowerShell

    Prostředí příkazového řádku založené na úlohách a skriptovací jazyk navržený speciálně pro správu systému.

  • Azure CLI

    Opensourcový multiplatformní nástroj, který poskytuje sadu příkazů pro práci s platformami Azure a Azure Stack Hub.

  • Microsoft Azure Storage Explorer

    Snadno použitelná samostatná aplikace s uživatelským rozhraním.

  • Blobfuse

    Ovladač virtuálního systému souborů pro Azure Blob Storage, který umožňuje přístup k existujícím datům objektů blob bloku v účtu úložiště prostřednictvím systému souborů Linux.

Vzhledem k rozdílům mezi službami úložiště mezi Azure a Azure Stack Hubem můžou být pro každý nástroj specifické požadavky popsané v následujících částech. Porovnání služby Azure Stack Hub Storage a Azure Storage najdete v tématu Azure Stack Hub Storage: Rozdíly a důležité informace.

AzCopy

AzCopy je nástroj příkazového řádku určený ke kopírování dat do a z úložiště objektů blob a tabulek Microsoft Azure pomocí jednoduchých příkazů s optimálním výkonem. Data z jednoho objektu do druhého můžete kopírovat v rámci nebo mezi účty úložiště.

Stažení a instalace Nástroje AzCopy

Stáhněte si AzCopy V10+.

Konfigurace a omezení nástroje AzCopy 10.1

AzCopy 10.1 je teď možné nakonfigurovat tak, aby používal starší verze rozhraní API. To umožňuje (omezenou) podporu služby Azure Stack Hub. Pokud chcete nakonfigurovat verzi rozhraní API pro AzCopy pro podporu služby Azure Stack Hub, nastavte proměnnou AZCOPY_DEFAULT_SERVICE_API_VERSION prostředí na 2017-11-09.

Operační systém Příkaz
Windows Na příkazovém řádku použijte: set AZCOPY_DEFAULT_SERVICE_API_VERSION=2017-11-09
V PowerShellu použijte: $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

Ve službě AzCopy 10.1 jsou pro Službu Azure Stack Hub podporovány následující funkce:

Funkce Podporované akce
Správa kontejneru Vytvoření kontejneru
Výpis obsahu kontejnerů
Spravovat úlohu Zobrazení úloh
Obnovení úlohy
Odebrání objektu blob Odebrání jednoho objektu blob
Odebrání celého nebo částečného virtuálního adresáře
Nahrání souboru Nahrání souboru
Nahrání adresáře
Nahrání obsahu adresáře
Stažení souboru Stažení souboru
Stažení adresáře
Stažení obsahu adresáře
Synchronizovat soubor Synchronizace kontejneru s místním systémem souborů
Synchronizace místního systému souborů do kontejneru

Poznámka

  • Azure Stack Hub nepodporuje poskytování autorizačních přihlašovacích údajů nástroji AzCopy pomocí id Microsoft Entra. K objektům úložiště ve službě Azure Stack Hub musíte přistupovat pomocí tokenu sdíleného přístupového podpisu (SAS).
  • Azure Stack Hub nepodporuje synchronní přenos dat mezi dvěma umístěními objektů blob služby Azure Stack Hub a mezi službami Azure Storage a Azure Stack Hub. Pomocí příkazu azcopy cp nemůžete přesunout data z Azure Stack Hubu do Služby Azure Storage (nebo naopak) přímo pomocí nástroje AzCopy 10.1.

Příklady příkazů AzCopy pro přenos dat

Následující příklady sledují typické scénáře kopírování dat do a z objektů blob služby Azure Stack Hub. Další informace najdete v tématu Začínáme s Nástrojem AzCopy.

Stažení všech objektů blob na místní disk

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

Nahrání jednoho souboru do virtuálního adresáře

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

Známé problémy s nástrojem AzCopy

  • Žádná operace AzCopy v úložišti souborů není dostupná, protože úložiště souborů ještě není dostupné ve službě Azure Stack Hub.
  • Pokud chcete přenášet data mezi dvěma umístěními objektů blob služby Azure Stack Hub nebo mezi službou Azure Stack Hub a Službou Azure Storage pomocí Nástroje AzCopy 10.1, musíte nejprve stáhnout data do místního umístění a pak je znovu načíst do cílového adresáře ve službě Azure Stack Hub nebo Azure Storage. Nebo můžete použít AzCopy 7.1 a zadat přenos s možností /SyncCopy ke kopírování dat.
  • Linuxová verze Nástroje AzCopy podporuje pouze aktualizaci 1802 nebo novější verze a nepodporuje službu Table Service.
  • Pokud chcete kopírovat data do a ze služby Azure Table Storage, nainstalujte azCopy verze 7.3.0.

Azure PowerShell

Azure PowerShell je modul, který poskytuje rutiny pro správu služeb v Azure i ve službě Azure Stack Hub. Je to prostředí příkazového řádku založené na úlohách a skriptovací jazyk určený speciálně pro správu systému.

Instalace a konfigurace PowerShellu pro Azure Stack Hub

Ke spolupráci se službou Azure Stack Hub se vyžadují moduly kompatibilní se službou Azure Stack Hub Azure PowerShell. Další informace najdete v tématech Instalace PowerShellu pro Azure Stack Hub a Konfigurace prostředí PowerShellu uživatele služby Azure Stack Hub.

Ukázkový skript PowerShellu pro Azure Stack Hub

V této ukázce se předpokládá, že jste úspěšně nainstalovali PowerShell pro Azure Stack Hub. Tento skript vám pomůže dokončit konfiguraci a požádat přihlašovací údaje tenanta služby Azure Stack Hub o přidání účtu do místního prostředí PowerShellu. Skript pak nastaví výchozí předplatné Azure, v Azure vytvoří nový účet úložiště, v tomto novém účtu úložiště vytvoří nový kontejner a do tohoto kontejneru nahraje existující soubor image (objekt blob). Jakmile skript vypíše všechny objekty blob v tomto kontejneru, vytvoří v místním počítači nový cílový adresář a stáhne soubor obrázku.

  1. Nainstalujte moduly Azure PowerShell kompatibilní se službou Azure Stack Hub.
  2. Stáhněte si nástroje potřebné pro práci se službou Azure Stack Hub.
  3. Otevřete Windows PowerShell ISE a Spustit jako správce a potom kliknutím na Nový soubor> vytvořte nový soubor skriptu.
  4. Zkopírujte níže uvedený skript a vložte ho do nového souboru skriptu.
  5. Aktualizujte proměnné skriptu na základě nastavení konfigurace.

    Poznámka

    Tento skript musí být spuštěn v kořenovém adresáři pro 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

Známé problémy s PowerShellem

Get-AzStorageAccountKey rozdíl

Aktuální kompatibilní verze modulu Azure PowerShell pro Azure Stack Hub je 1.2.11 pro uživatelské operace. Liší se od nejnovější verze Azure PowerShell. Tento rozdíl ovlivňuje provoz služeb úložiště následujícím způsobem:

Formát návratové Get-AzStorageAccountKey hodnoty ve verzi 1.2.11 má dvě vlastnosti: Key1 a , Key2zatímco aktuální verze Azure vrací pole obsahující všechny klíče účtu.

# 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

Další informace najdete v tématu Get-AzureRMStorageAccountKey.

Kopírování objektů blob mezi clustery Služby Azure Stack Hub

Start-AzStorageBlobCopy se dá použít ke spuštění úlohy kopírování pro přesun objektu blob. Při nastavení vlastnosti AbsoluteUri jako identifikátoru URI objektu blob v jiném clusteru Služby Azure Stack Hub je možné tuto rutinu použít ke kopírování objektů blob mezi dvěma clustery služby Azure Stack Hub. Ujistěte se, že zdrojový a cílový cluster Azure Stack Hub mají stejnou verzi aktualizace. Azure Stack Hub v současné době nepodporuje kopírování Start-AzStorageBlobCopy objektů blob mezi dvěma clustery Služby Azure Stack Hub, které mají nasazené různé verze aktualizací.

Azure CLI

Azure CLI je prostředí příkazového řádku Azure pro správu prostředků Azure. Můžete ho nainstalovat na macOS, Linux a Windows a spustit ho z příkazového řádku.

Azure CLI je optimalizované pro správu a správu prostředků Azure z příkazového řádku a pro vytváření automatizačních skriptů, které pracují s Azure Resource Manager. Poskytuje mnoho stejných funkcí, jako je portál Azure Stack Hub, včetně bohatého přístupu k datům.

Azure Stack Hub vyžaduje Azure CLI verze 2.0 nebo novější. Další informace o instalaci a konfiguraci Azure CLI ve službě Azure Stack Hub najdete v tématu Instalace a konfigurace rozhraní příkazového řádku služby Azure Stack Hub. Další informace o tom, jak pomocí Azure CLI provádět několik úloh při práci s prostředky v účtu úložiště služby Azure Stack Hub, najdete v tématu Použití Azure CLI se službou Azure Storage.

Ukázkový skript Azure CLI pro Azure Stack Hub

Po dokončení instalace a konfigurace rozhraní příkazového řádku můžete vyzkoušet následující kroky a pracovat s malým ukázkovým skriptem prostředí pro interakci s prostředky úložiště služby Azure Stack Hub. Skript provede následující akce:

  • Vytvoří nový kontejner ve vašem účtu úložiště.
  • Nahraje existující soubor (jako objekt blob) do kontejneru.
  • Zobrazí seznam všech objektů blob v kontejneru.
  • Stáhne soubor do cíle v místním počítači, který určíte.

Před spuštěním tohoto skriptu se ujistěte, že se můžete úspěšně připojit k cílové službě Azure Stack Hub a přihlásit se k němu.

  1. Otevřete oblíbený textový editor a potom do editoru zkopírujte a vložte předchozí skript.
  2. Aktualizujte proměnné skriptu tak, aby odrážely vaše nastavení konfigurace.
  3. Po aktualizaci potřebných proměnných uložte skript a ukončete editor. V dalších krocích se předpokládá, že jste skript pojmenovali my_storage_sample.sh.
  4. V případě potřeby označte skript jako spustitelný: chmod +x my_storage_sample.sh
  5. Spusťte skript. Například v 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

Průzkumník služby Azure Storage je samostatná aplikace od Microsoftu. Umožňuje snadno pracovat s daty Azure Storage a Azure Stack Hub Storage na počítačích s Windows, macOS a Linuxem. Pokud chcete snadno spravovat data služby Azure Stack Hub Storage, zvažte použití Průzkumník služby Microsoft Azure Storage.

Blobfuse

Blobfuse je ovladač virtuálního systému souborů pro Azure Blob Storage, který umožňuje přístup k existujícím datům objektů blob bloku v účtu úložiště prostřednictvím systému souborů Linux. Azure Blob Storage je služba úložiště objektů, a proto nemá hierarchický obor názvů. Blobfuse poskytuje tento obor názvů pomocí schématu virtuálního adresáře s použitím lomítka / jako oddělovače. Blobfuse funguje v Azure i ve službě Azure Stack Hub.

Další informace o připojení úložiště objektů blob jako systému souborů pomocí Blobfuse v Linuxu najdete v tématu Připojení úložiště blob jako systému souborů pomocí blobfuse.

V případě služby Azure Stack Hub je potřeba při konfiguraci přihlašovacích údajů účtu úložiště zadat blobEndpoint spolu s accountName, accountKey/sasToken a containerName.

V sadě Azure Stack Development Kit (ASDK) by měl být myaccount.blob.local.azurestack.externalbod blobEndpoint . Pokud si nejste jistí svým koncovým bodem, obraťte se v integrovaném systému Azure Stack Hub na správce cloudu.

accountKey a sasToken je možné nakonfigurovat pouze jeden po druhém. Po zadání klíče účtu úložiště bude konfigurační soubor přihlašovacích údajů v následujícím formátu:

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

Po zadání sdíleného přístupového tokenu bude konfigurační soubor přihlašovacích údajů v následujícím formátu:

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

Další kroky