Adatátviteli eszközök használata az Azure Stack Hub Storage-ban

Az Azure Stack Hub tárolószolgáltatásokat biztosít a lemezekhez, blobokhoz, táblákhoz, üzenetsorokhoz és fiókkezelési funkciókhoz. Egyes Azure Storage-eszközök akkor érhetők el, ha adatokat szeretne kezelni vagy áthelyezni az Azure Stack Hub Storage-ba vagy onnan. Ez a cikk áttekintést nyújt az elérhető eszközökről.

A követelmények határozzák meg, hogy az alábbi eszközök közül melyik működik a legjobban az Ön számára:

  • AzCopy

    Egy tárolóspecifikus parancssori segédprogram, amelyet letölthet, hogy adatokat másoljon az egyik objektumból egy másik objektumba a tárfiókok között vagy azok között.

  • Azure PowerShell

    Feladatalapú, parancssori rendszerhéj és szkriptelési nyelv, amelyet kifejezetten a rendszerfelügyelethez terveztek.

  • Azure CLI

    Nyílt forráskódú, platformfüggetlen eszköz, amely parancsokat biztosít az Azure és az Azure Stack Hub platformokkal való munkához.

  • Microsoft Azure Storage Explorer

    Könnyen használható különálló alkalmazás felhasználói felülettel.

  • Blobfuse

    A Azure Blob Storage virtuális fájlrendszer-illesztőprogramja, amely lehetővé teszi a tárfiókban lévő meglévő blokkblobadatok elérését a Linux fájlrendszeren keresztül.

Az Azure és az Azure Stack Hub közötti tárolási szolgáltatások közötti különbségek miatt az egyes eszközökre a következő szakaszokban meghatározott követelmények vonatkozhatnak. Az Azure Stack Hub Storage és az Azure Storage összehasonlításáért lásd : Azure Stack Hub Storage: Különbségek és szempontok.

AzCopy

Az AzCopy egy parancssori segédprogram, amellyel adatokat másolhat a Microsoft Azure blob- és table storage-ba, illetve onnan onnan az optimális teljesítménnyel rendelkező egyszerű parancsokkal. Az adatokat átmásolhatja egyik objektumból a másikba a tárfiókok között vagy belül.

Az AzCopy letöltése és telepítése

Töltse le az AzCopy V10+-t.

AzCopy 10.1 konfigurációja és korlátai

Az AzCopy 10.1 mostantól konfigurálható a régebbi API-verziók használatára. Ez (korlátozott) támogatást biztosít az Azure Stack Hubhoz. Az AzCopy API-verziójának az Azure Stack Hub támogatására való konfigurálásához állítsa a környezeti változót értékre AZCOPY_DEFAULT_SERVICE_API_VERSION2017-11-09.

Operációs rendszer Parancs
Windows A parancssorban használja a következőt: set AZCOPY_DEFAULT_SERVICE_API_VERSION=2017-11-09
A PowerShellben használja a következőket: $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

Az AzCopy 10.1-ben az alábbi funkciók támogatottak az Azure Stack Hubhoz:

Szolgáltatás Támogatott műveletek
Tároló kezelése Tároló létrehozása
Tárolók tartalmának listázása
Feladat kezelése Feladatok megjelenítése
Feladat folytatása
Blob eltávolítása Egyetlen blob eltávolítása
Teljes vagy részleges virtuális könyvtár eltávolítása
Fájl feltöltése Fájl feltöltése
Könyvtár feltöltése
Könyvtár tartalmának feltöltése
Fájl letöltése Fájl letöltése
Könyvtár letöltése
Könyvtár tartalmának letöltése
Fájl szinkronizálása Tároló szinkronizálása helyi fájlrendszerrel
Helyi fájlrendszer szinkronizálása tárolóval

Megjegyzés

  • Az Azure Stack Hub nem támogatja engedélyezési hitelesítő adatok megadását az AzCopy számára Microsoft Entra azonosító használatával. Az Azure Stack Hub tárolóobjektumaihoz közös hozzáférésű jogosultságkód (SAS) jogkivonat használatával kell hozzáférnie.
  • Az Azure Stack Hub nem támogatja a két Azure Stack Hub-blobhely, valamint az Azure Storage és az Azure Stack Hub közötti szinkron adatátvitelt. Az "azcopy cp" használatával nem helyezhet át adatokat az Azure Stack Hubból az Azure Storage-ba (vagy fordítva) közvetlenül az AzCopy 10.1-zel.

AzCopy-parancsok példái az adatátvitelhez

Az alábbi példák az adatok Azure Stack Hub-blobokba és -blobokból történő másolásának tipikus forgatókönyveit követik. További információ: Ismerkedés az AzCopyval.

Az összes blob letöltése helyi lemezre

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

Egyetlen fájl feltöltése virtuális könyvtárba

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

Az AzCopy ismert problémái

  • A fájltárolókon található AzCopy-műveletek nem érhetők el, mert a fájltároló még nem érhető el az Azure Stack Hubban.
  • Ha két Azure Stack Hub-blobhely – vagy az Azure Stack Hub és az Azure Storage között az AzCopy 10.1 használatával – szeretne adatokat átvinni, először le kell töltenie az adatokat egy helyi helyre, majd újra be kell töltenie az adatokat az Azure Stack Hub vagy az Azure Storage célkönyvtárába. Vagy használhatja az AzCopy 7.1-et, és megadhatja az átvitelt a /SyncCopy beállítással az adatok másolásához.
  • Az AzCopy Linux-verziója csak az 1802-es vagy újabb verziókat támogatja, és nem támogatja a Table szolgáltatást.
  • Ha adatokat szeretne másolni az Azure Table Storage szolgáltatásba és onnan, telepítse az AzCopy 7.3.0-s verzióját

Azure PowerShell

Azure PowerShell egy modul, amely parancsmagokat biztosít az Azure és az Azure Stack Hub szolgáltatásainak kezeléséhez. Ez egy feladatalapú, parancssori rendszerhéj és szkriptnyelv, amelyet kifejezetten a rendszerfelügyelethez terveztek.

A PowerShell telepítése és konfigurálása az Azure Stack Hubhoz

Az Azure Stack Hub-kompatibilis Azure PowerShell modulok szükségesek az Azure Stack Hub használatához. További információ: A PowerShell telepítése az Azure Stack Hubhoz és az Azure Stack Hub felhasználói PowerShell-környezetének konfigurálása.

PowerShell-mintaszkript az Azure Stack Hubhoz

Ez a minta feltételezi, hogy sikeresen telepítette a PowerShellt az Azure Stack Hubhoz. Ez a szkript segít elvégezni a konfigurációt, és megkérni az Azure Stack Hub-bérlő hitelesítő adatait, hogy adja hozzá a fiókját a helyi PowerShell-környezethez. A szkript ezután beállítja az alapértelmezett Azure-előfizetést, létrehoz egy új tárfiókot az Azure-ban, létrehoz egy új tárolót ebben az új tárfiókban, és feltölt egy meglévő képfájlt (blobot) az adott tárolóba. Miután a szkript felsorolja a tárolóban lévő összes blobot, létrehoz egy új célkönyvtárat a helyi számítógépen, és letölti a lemezképfájlt.

  1. Telepítse az Azure Stack Hub-kompatibilis Azure PowerShell modulokat.
  2. Töltse le az Azure Stack Hub használatához szükséges eszközöket.
  3. Nyissa meg Windows PowerShell ISE-t, és futtassa a parancsot rendszergazdaként, majd kattintson azÚjfájl> elemre egy új szkriptfájl létrehozásához.
  4. Másolja ki az alábbi szkriptet, és illessze be az új szkriptfájlba.
  5. Frissítse a szkriptváltozókat a konfigurációs beállítások alapján.

    Megjegyzés

    Ezt a szkriptet a AzureStack_Tools gyökérkönyvtárában kell futtatni.

# 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

A PowerShell ismert problémái

Get-AzStorageAccountKey különbség

Az Azure Stack Hub jelenlegi kompatibilis Azure PowerShell modulverziója 1.2.11 a felhasználói műveletekhez. Ez eltér a Azure PowerShell legújabb verziójától. Ez a különbség a következő módon befolyásolja a tárolási szolgáltatások működését:

Az 1.2.11-es verzió visszatérési érték formátuma Get-AzStorageAccountKey két tulajdonsággal rendelkezik: Key1 és Key2, míg az aktuális Azure-verzió egy tömböt ad vissza, amely tartalmazza az összes fiókkulcsot.

# 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

További információ: Get-AzureRMStorageAccountKey.

Blob másolása Azure Stack Hub-fürtök között

Start-AzStorageBlobCopy a blobok áthelyezésére szolgáló másolási feladat elindítására használható. Ha a tulajdonságot AbsoluteUri egy másik Azure Stack Hub-fürtön blob URI-ként állítja be, ez a parancsmag használható a blob két Azure Stack Hub-fürt közötti másolására. Győződjön meg arról, hogy a forrás- és cél Azure Stack Hub-fürtök ugyanazon a frissítési verzión találhatók. Az Azure Stack Hub jelenleg nem támogatja a blobok Start-AzStorageBlobCopy másolását két olyan Azure Stack Hub-fürt között, amelyek különböző frissítési verziókat telepítettek.

Azure CLI

Az Azure CLI az Azure parancssori felülete, amely Azure-erőforrások kezelésére szolgál. Telepítheti macOS, Linux és Windows rendszeren, és futtathatja a parancssorból.

Az Azure CLI az Azure-erőforrások parancssorból történő kezelésére és felügyeletére, valamint az Azure Resource Manager ellen működő automatizálási szkriptek létrehozására van optimalizálva. Számos, az Azure Stack Hub portálon található függvényt biztosít, beleértve a gazdag adathozzáférést is.

Az Azure Stack Hubhoz az Azure CLI 2.0-s vagy újabb verziója szükséges. Az Azure CLI Azure Stack Hubbal való telepítésével és konfigurálásával kapcsolatos további információkért lásd: Az Azure Stack Hub parancssori felületének telepítése és konfigurálása. Az Azure Stack Hub-tárfiókban található erőforrásokat használó több feladat Azure CLI-vel való végrehajtásával kapcsolatos további információkért lásd : Az Azure CLI használata az Azure Storage-ral.

Azure CLI-mintaszkript az Azure Stack Hubhoz

A parancssori felület telepítésének és konfigurálásának befejezése után az alábbi lépésekkel egy kis felületi mintaszkripttel dolgozhat az Azure Stack Hub storage-erőforrásaival való interakcióhoz. A szkript a következő műveleteket hajtja végre:

  • Létrehoz egy új tárolót a tárfiókban.
  • Feltölt egy meglévő fájlt (blobként) a tárolóba.
  • A tárolóban található összes blob felsorolása.
  • Letölti a fájlt egy megadott célhelyre a helyi számítógépen.

A szkript futtatása előtt győződjön meg arról, hogy sikeresen csatlakozhat a cél Azure Stack Hubhoz, és bejelentkezhet.

  1. Nyissa meg a kedvenc szövegszerkesztőt, majd másolja és illessze be az előző szkriptet a szerkesztőbe.
  2. Frissítse a szkript változóit a konfigurációs beállításoknak megfelelően.
  3. Miután frissítette a szükséges változókat, mentse a szkriptet, és lépjen ki a szerkesztőből. A következő lépések feltételezik, hogy elnevezte a szkriptet my_storage_sample.sh.
  4. Szükség esetén jelölje meg a szkriptet végrehajthatóként: chmod +x my_storage_sample.sh
  5. Futtassa a szkriptet. Például a Bashben: ./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 a Microsoft önálló alkalmazása. Lehetővé teszi az Azure Storage és az Azure Stack Hub Storage-adatok egyszerű használatát Windows, macOS és Linux rendszerű számítógépeken. Ha egyszerű módot szeretne az Azure Stack Hub Storage-adatok kezelésére, fontolja meg a Microsoft Azure Storage Explorer használatát.

Blobfuse

A Blobfuse egy virtuális fájlrendszer-illesztőprogram a Azure Blob Storage számára, amely lehetővé teszi a tárfiókban lévő meglévő blokkblobadatok elérését a Linux fájlrendszeren keresztül. Azure Blob Storage objektumtárolási szolgáltatás, ezért nem rendelkezik hierarchikus névtérrel. A Blobfuse ezt a névteret a virtuális könyvtársémával biztosítja, és a perjelet / elválasztóként használja. A Blobfuse az Azure-on és az Azure Stack Hubon is működik.

Ha többet szeretne megtudni a Blob Storage fájlrendszerként való csatlakoztatásáról a Blobfuse linuxos használatával, tekintse meg a Blob Storage fájlrendszerként való csatlakoztatását a Blobfuse használatával ismertető cikket.

Az Azure Stack Hub esetében a blobEndpointot meg kell adni, miközben konfigurálja a tárfiók hitelesítő adatait az accountName, accountKey/sasToken és containerName paraméterekkel együtt.

Az Azure Stack Development Kit (ASDK) blobEndpoint elemének a következőnek kell lennie myaccount.blob.local.azurestack.external: . Az Azure Stack Hub integrált rendszerében forduljon a felhőrendszergazdához, ha nem biztos a végponttal kapcsolatban.

az accountKey és a sasToken egyszerre csak egy konfigurálható. Ha meg van adva egy tárfiókkulcs, a hitelesítő adatok konfigurációs fájlja a következő formátumban van:

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

Megosztott hozzáférési jogkivonat megadásakor a hitelesítő adatok konfigurációs fájlja a következő formátumban van:

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

Következő lépések