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ů jsou pro vás nejvhodnější:

  • AzCopy: Nástroj příkazového řádku specifický pro úložiště, který si můžete stáhnout a zkopírovat data z jednoho objektu do jiného objektu 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.
  • Průzkumník služby Microsoft Azure Storage: 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 blokových objektů blob ve vašem úč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 Službou Azure Stack Hub může existovat několik specifických požadavků pro každý nástroj 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 navrž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 jiného můžete kopírovat v rámci účtů úložiště nebo mezi sebou.

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žívala starší verze rozhraní API. Tím se povolí (omezená) podpora 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-09hodnotu .

Operační systém Příkaz
Windows V 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"
Operační systém Linux export AZCOPY_DEFAULT_SERVICE_API_VERSION=2017-11-09
MacOS export AZCOPY_DEFAULT_SERVICE_API_VERSION=2017-11-09

V AzCopy 10.1 jsou pro Azure Stack Hub podporovány následující funkce:

Vlastnost Podporované akce
Správa kontejneru Vytvoření kontejneru
Výpis obsahu kontejnerů
Správa úlohy Zobrazení úloh
Obnovení úlohy
Odebrání objektu blob Odeberte jeden blob
Odebrání celého nebo částečného virtuálního adresáře
Nahrát soubor Odeslání souboru
Nahrání adresáře
Nahrání obsahu adresáře
Stáhnout soubor Stažení souboru
Stažení adresáře
Stažení obsahu adresáře
Synchronizace souboru Synchronizace kontejneru s místním systémem souborů
Synchronizace místního systému souborů s kontejnerem

Poznámka:

Azure Stack Hub nepodporuje poskytování přihlašovacích údajů pro autorizaci pro 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žbou Azure Storage a Službou Azure Stack Hub. Pomocí nástroje AzCopy 10.1 nemůžete azcopy cp přesouvat data ze služby Azure Stack Hub do služby Azure Storage (nebo naopak).

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

Následující příklady se řídí typickými scénáři 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.

Stáhněte všechny blobové objekty 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

  • Všechny operace AzCopy v úložišti souborů nejsou dostupné, protože ve službě Azure Stack Hub ještě není dostupné úložiště souborů.
  • 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 Azure Storage pomocí nástroje AzCopy 10.1, nejprve si data stáhněte do místního umístění a pak je znovu nahrajte do cílového adresáře ve službě Azure Stack Hub nebo Azure Storage.
  • Verze AzCopy pro Linux podporuje pouze aktualizaci 1802 nebo novější verze; nepodporuje službu Table Service.
  • Pokud chcete kopírovat data do a ze služby Azure Table Storage, můžete použít PowerShell, rozhraní příkazového řádku nebo klientské knihovny Azure.

Azure PowerShell

Azure PowerShell je modul, který poskytuje rutiny pro správu služeb v Azure i ve službě Azure Stack Hub. Jedná se o 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

Pro práci se službou Azure Stack Hub se vyžadují kompatibilní moduly Azure PowerShellu. Další informace najdete v tématu Instalace PowerShellu pro Azure Stack Hub a konfigurace uživatelského prostředí PowerShellu služby Azure Stack Hub.

Ukázkový skript PowerShellu pro Azure Stack Hub

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

  1. Nainstalujte moduly Azure PowerShellu 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 spusťte ho jako správce, potom klikněte na Soubor, > a vytvořte nový soubor skriptu.
  4. Zkopírujte následující 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

rozdíl Get-AzStorageAccountKey

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

Návratový Get-AzStorageAccountKey formát hodnoty verze 1.2.11 má dvě vlastnosti: Key1 a Key2zatímco aktuální verze Azure vrátí 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í objektu blob mezi klastry Azure Stack Hub

Start-AzStorageBlobCopy lze použít ke spuštění úlohy kopírování pro přesunutí objektu blob. Při nastavování vlastnosti AbsoluteUri jako identifikátoru URI objektu blob v jiném clusteru Azure Stack Hub je možné tuto rutinu použít ke kopírování objektů blob mezi dvěma clustery Azure Stack Hub. Ujistěte se, že jsou zdrojové a cílové clustery Azure Stack Hubu ve stejné verzi aktualizace. Azure Stack Hub v současné době nepodporuje kopírování Start-AzStorageBlobCopy objektů blob mezi dvěma clustery Azure Stack Hub, které nasadily různé verze aktualizací.

Azure CLI (příkazový řádek nástroje Azure)

Azure CLI je prostředí příkazového řádku Azure pro správu prostředků Azure. Můžete ho nainstalovat v systémech 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 Managerem. Poskytuje mnoho stejných funkcí, které najdete na portálu 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 se službou 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 práce s prostředky v účtu úložiště 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, abyste mohli pracovat s malým ukázkovým skriptem prostředí pro interakci s prostředky úložiště služby Azure Stack Hub. Skript dokončí následující akce:

  • Vytvoří v účtu úložiště nový kontejner.
  • Nahraje do kontejneru existující soubor (jako objekt blob).
  • Zobrazí seznam všech objektů blob v kontejneru.
  • Stáhne soubor na místo ve vašem lokální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 a přihlásit se k cílové službě Azure Stack Hub.

  1. Otevřete oblíbený textový editor a potom zkopírujte a vložte předchozí skript do editoru.
  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 svůj skript pojmenovali my_storage_sample.sh.
  4. V případě potřeby označte skript jako spustitelný soubor: 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"

Průzkumník služby Microsoft Azure Storage

Průzkumník služby Azure Storage je samostatná aplikace od Microsoftu. Umožňuje snadno pracovat s daty úložiště Azure Storage i azure Stack Hubu 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íka 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 vašim stávajícím blokovým objektům blob na vašem úložišti prostřednictvím systému souborů Linux. Azure Blob Storage je služba úložiště objektů, která 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 Postup připojení blob storage jako systému souborů pomocí Blobfuse.

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

Ve vývojové sadě Azure Stack (ASDK) by měl být blobEndpointmyaccount.blob.local.azurestack.external. V integrovaném systému Azure Stack Hub se obraťte na správce cloudu, pokud si nejste jistí svým koncovým bodem.

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

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

Při zadání sdíleného přístupového tokenu je 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