Använda dataöverföringsverktyg i Azure Stack Hub Storage

Azure Stack Hub tillhandahåller en uppsättning lagringstjänster för diskar, blobbar, tabeller, köer och kontohanteringsfunktioner. Vissa Azure Storage-verktyg är tillgängliga om du vill hantera eller flytta data till eller från Azure Stack Hub Storage. Den här artikeln innehåller en översikt över de tillgängliga verktygen.

Dina krav avgör vilka av följande verktyg som fungerar bäst för dig:

  • AzCopy

    Ett lagringsspecifikt kommandoradsverktyg som du kan ladda ned för att kopiera data från ett objekt till ett annat objekt inom eller mellan dina lagringskonton.

  • Azure PowerShell

    Ett uppgiftsbaserat kommandoradsgränssnitt och skriptspråk som utformats särskilt för systemadministration.

  • Azure CLI

    Ett plattformsoberoende verktyg med öppen källkod som tillhandahåller en uppsättning kommandon för att arbeta med Azure- och Azure Stack Hub-plattformarna.

  • Microsoft Azure Storage Explorer

    En lättanvänd fristående app med ett användargränssnitt.

  • Blobfuse

    En virtuell filsystemdrivrutin för Azure Blob Storage, som gör att du kan komma åt dina befintliga blockblobdata i ditt lagringskonto via Linux-filsystemet.

På grund av skillnader i lagringstjänster mellan Azure och Azure Stack Hub kan det finnas vissa specifika krav för varje verktyg som beskrivs i följande avsnitt. En jämförelse mellan Azure Stack Hub Storage och Azure Storage finns i Azure Stack Hub Storage: Skillnader och överväganden.

AzCopy

AzCopy är ett kommandoradsverktyg som är utformat för att kopiera data till och från Microsoft Azure Blob och Table Storage med hjälp av enkla kommandon med optimala prestanda. Du kan kopiera data från ett objekt till ett annat inom eller mellan dina lagringskonton.

Ladda ned och installera AzCopy

Ladda ned AzCopy V10+.

Konfiguration och gränser för AzCopy 10.1

AzCopy 10.1 kan nu konfigureras att använda äldre API-versioner. Detta möjliggör (begränsat) stöd för Azure Stack Hub. Om du vill konfigurera API-versionen för AzCopy som stöd för Azure Stack Hub anger du AZCOPY_DEFAULT_SERVICE_API_VERSION miljövariabeln till 2017-11-09.

Operativsystem Kommando
Windows I en kommandotolk använder du: set AZCOPY_DEFAULT_SERVICE_API_VERSION=2017-11-09
I PowerShell använder du: $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

I AzCopy 10.1 stöds följande funktioner för Azure Stack Hub:

Funktion Åtgärder som stöds
Hantera container Skapa en container
Lista innehåll i containrar
Hantera jobb Visa jobb
Återuppta ett jobb
Ta bort blob Ta bort en enda blob
Ta bort hela eller partiella virtuella kataloger
Ladda upp filen Ladda upp en fil
Ladda upp en katalog
Ladda upp innehållet i en katalog
Ladda ned fil Ladda ned en fil
Ladda ned en katalog
Ladda ned innehållet i en katalog
Synkronisera fil Synkronisera en container till ett lokalt filsystem
Synkronisera ett lokalt filsystem till en container

Anteckning

  • Azure Stack Hub stöder inte autentiseringsuppgifter för auktorisering till AzCopy med hjälp av Microsoft Entra-ID. Du måste komma åt lagringsobjekt på Azure Stack Hub med hjälp av en SAS-token (Signatur för delad åtkomst).
  • Azure Stack Hub stöder inte synkron dataöverföring mellan två Azure Stack Hub-blobplatser och mellan Azure Storage och Azure Stack Hub. Du kan inte använda "azcopy cp" för att flytta data från Azure Stack Hub till Azure Storage (eller tvärtom) direkt med AzCopy 10.1.

AzCopy-kommandoexempel för dataöverföring

Följande exempel följer vanliga scenarier för att kopiera data till och från Azure Stack Hub-blobar. Mer information finns i Komma igång med AzCopy.

Ladda ned alla blobar till en lokal disk

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

Ladda upp en enskild fil till en virtuell katalog

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

Kända problem med AzCopy

  • Alla AzCopy-åtgärder på en fillagring är inte tillgängliga eftersom fillagring ännu inte är tillgängligt i Azure Stack Hub.
  • Om du vill överföra data mellan två Azure Stack Hub-blobplatser – eller mellan Azure Stack Hub och Azure Storage med hjälp av AzCopy 10.1 – måste du först ladda ned data till en lokal plats och sedan ladda upp dem på nytt till målkatalogen på Azure Stack Hub eller Azure Storage. Eller så kan du använda AzCopy 7.1 och ange överföringen med alternativet /SyncCopy för att kopiera data.
  • Linux-versionen av AzCopy stöder endast 1802-uppdateringen eller senare versioner och stöder inte Tabelltjänst.
  • Om du vill kopiera data till och från Azure Table Storage-tjänsten installerar du AzCopy version 7.3.0

Azure PowerShell

Azure PowerShell är en modul som tillhandahåller cmdletar för hantering av tjänster på både Azure och Azure Stack Hub. Det är ett uppgiftsbaserat kommandoradsgränssnitt och skriptspråk som är särskilt utformat för systemadministration.

Installera och konfigurera PowerShell för Azure Stack Hub

Azure Stack Hub-kompatibla Azure PowerShell moduler krävs för att fungera med Azure Stack Hub. Mer information finns i Installera PowerShell för Azure Stack Hub och Konfigurera Azure Stack Hub-användarens PowerShell-miljö.

PowerShell-exempelskript för Azure Stack Hub

Det här exemplet förutsätter att du har installerat PowerShell för Azure Stack Hub. Det här skriptet hjälper dig att slutföra konfigurationen och be dina autentiseringsuppgifter för Azure Stack Hub-klienten att lägga till ditt konto i den lokala PowerShell-miljön. Skriptet anger sedan standardprenumerationen för Azure, skapar ett nytt lagringskonto i Azure, skapar en ny container i det nya lagringskontot och laddar upp en befintlig avbildningsfil (blob) till containern. När skriptet visar alla blobar i containern skapas en ny målkatalog på den lokala datorn och avbildningsfilen laddas ned.

  1. Installera Azure Stack Hub-kompatibla Azure PowerShell moduler.
  2. Ladda ned de verktyg som krävs för att arbeta med Azure Stack Hub.
  3. Öppna Windows PowerShell ISE och Kör som administratör och klicka sedan på Ny fil>för att skapa en ny skriptfil.
  4. Kopiera skriptet nedan och klistra in det i den nya skriptfilen.
  5. Uppdatera skriptvariablerna baserat på dina konfigurationsinställningar.

    Anteckning

    Det här skriptet måste köras i rotkatalogen för 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

Kända problem med PowerShell

Get-AzStorageAccountKey skillnad

Den aktuella kompatibla Azure PowerShell modulversionen för Azure Stack Hub är 1.2.11 för användaråtgärderna. Det skiljer sig från den senaste versionen av Azure PowerShell. Den här skillnaden påverkar lagringstjänster på följande sätt:

Returvärdeformatet Get-AzStorageAccountKey i version 1.2.11 har två egenskaper: Key1 och Key2, medan den aktuella Azure-versionen returnerar en matris som innehåller alla kontonycklar.

# 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

Mer information finns i Get-AzureRMStorageAccountKey.

Kopiera blob mellan Azure Stack Hub-kluster

Start-AzStorageBlobCopy kan användas för att starta ett kopieringsjobb för att flytta en blob. När du anger egenskapen AbsoluteUri som blob-uri på ett annat Azure Stack Hub-kluster kan den här cmdleten användas för att kopiera blob mellan två Azure Stack Hub-kluster. Kontrollera att Azure Stack Hub-käll- och målkluster har samma uppdateringsversion. Azure Stack Hub stöder för närvarande inte användning för Start-AzStorageBlobCopy att kopiera blobar mellan två Azure Stack Hub-kluster som har distribuerat olika uppdateringsversioner.

Azure CLI

Azure CLI är Azures kommandoradsmiljö för att hantera Azure-resurser. Du kan installera det på macOS, Linux och Windows och köra det från kommandoraden.

Azure CLI är optimerat för att hantera och administrera Azure-resurser från kommandoraden och för att skapa automatiseringsskript som fungerar mot Azure Resource Manager. Den innehåller många av de funktioner som finns i Azure Stack Hub-portalen, inklusive omfattande dataåtkomst.

Azure Stack Hub kräver Azure CLI version 2.0 eller senare. Mer information om hur du installerar och konfigurerar Azure CLI med Azure Stack Hub finns i Installera och konfigurera Azure Stack Hub CLI. Mer information om hur du använder Azure CLI för att utföra flera uppgifter som arbetar med resurser i ditt Azure Stack Hub-lagringskonto finns i Använda Azure CLI med Azure Storage.

Azure CLI-exempelskript för Azure Stack Hub

När du har slutfört CLI-installationen och konfigurationen kan du prova följande steg för att arbeta med ett litet gränssnittsexempelskript för att interagera med Azure Stack Hub-lagringsresurser. Skriptet slutför följande åtgärder:

  • Skapar en ny container i ditt lagringskonto.
  • Laddar upp en befintlig fil (som en blob) till containern.
  • Visar en lista över alla blobar i containern.
  • Laddar ned filen till ett mål på den lokala dator som du anger.

Innan du kör det här skriptet kontrollerar du att du kan ansluta och logga in på azure stack-målhubben.

  1. Öppna din favorittextredigerare och kopiera och klistra in föregående skript i redigeraren.
  2. Uppdatera skriptets variabler så att de återspeglar dina konfigurationsinställningar.
  3. När du har uppdaterat de nödvändiga variablerna sparar du skriptet och avslutar redigeringsprogrammet. Nästa steg förutsätter att du har döpt skriptet till my_storage_sample.sh.
  4. Markera skriptet som körbart om det behövs: chmod +x my_storage_sample.sh
  5. Kör skriptet. Till exempel i 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 är en fristående app från Microsoft. Det gör att du enkelt kan arbeta med både Azure Storage- och Azure Stack Hub Storage-data på Windows-, macOS- och Linux-datorer. Om du vill ha ett enkelt sätt att hantera dina Azure Stack Hub Storage-data bör du överväga att använda Microsoft Azure Storage Explorer.

Blobfuse

Blobfuse är en virtuell filsystemdrivrutin för Azure Blob Storage, som gör att du kan komma åt dina befintliga blockblobdata i ditt lagringskonto via Linux-filsystemet. Azure Blob Storage är en objektlagringstjänst och har därför inget hierarkiskt namnområde. Blobfuse tillhandahåller det här namnområdet med hjälp av det virtuella katalogschemat med hjälp av snedstreck / som avgränsare. Blobfuse fungerar på både Azure och Azure Stack Hub.

Mer information om hur du monterar Blob Storage som ett filsystem med Blobfuse i Linux finns i Montera Blob Storage som ett filsystem med Blobfuse.

För Azure Stack Hub måste blobEndpoint anges när du konfigurerar dina autentiseringsuppgifter för lagringskontot tillsammans med accountName, accountKey/sasToken och containerName.

I Azure Stack Development Kit (ASDK) ska blobEndpoint vara myaccount.blob.local.azurestack.external. I Azure Stack Hub-integrerat system kontaktar du molnadministratören om du inte är säker på slutpunkten.

accountKey och sasToken kan bara konfigureras en i taget. När en lagringskontonyckel anges har konfigurationsfilen för autentiseringsuppgifter följande format:

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

När en token för delad åtkomst anges har konfigurationsfilen för autentiseringsuppgifter följande format:

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

Nästa steg