Hulpprogramma's voor gegevensoverdracht gebruiken in Azure Stack Hub Storage

Azure Stack Hub biedt een set opslagservices voor schijven, blobs, tabellen, wachtrijen en accountbeheerfuncties. Sommige Azure Storage zijn beschikbaar als u gegevens wilt beheren of verplaatsen van of naar Azure Stack Hub Storage. In dit artikel vindt u een overzicht van de beschikbare hulpprogramma's.

Uw vereisten bepalen welke van de volgende hulpprogramma's het beste voor u werken:

  • AzCopy

    Een opslagspecifieke opdrachtregelprogramma dat u kunt downloaden om gegevens te kopiëren van het ene object naar een ander object binnen of tussen uw opslagaccounts.

  • Azure PowerShell

    Een op taken gebaseerde opdrachtregelshell en scripttaal die speciaal is ontworpen voor systeembeheer.

  • Azure-CLI

    Een open-source, platformoverschrijdend hulpprogramma dat een set opdrachten biedt voor het werken met de Azure- en Azure Stack Hub platforms.

  • Microsoft Azure Storage Explorer

    Een gebruiksvriendelijke, zelf-app met een gebruikersinterface.

  • Blobfuse

    Een stuurprogramma voor een virtueel bestandssysteem voor Azure Blob Storage, waarmee u via het Linux-bestandssysteem toegang hebt tot uw bestaande blok-blobgegevens in uw opslagaccount.

Vanwege de verschillen in opslagservices tussen Azure Azure Stack Hub, zijn er mogelijk enkele specifieke vereisten voor elk hulpprogramma dat in de volgende secties wordt beschreven. Voor een vergelijking tussen Azure Stack Hub Storage en Azure Storage, Azure Stack Hub Storage: verschillen en overwegingen.

AzCopy

AzCopy is een opdrachtregelprogramma dat is ontworpen om gegevens te kopiëren van en naar Microsoft Azure blob- en tabelopslag met behulp van eenvoudige opdrachten met optimale prestaties. U kunt gegevens kopiëren van het ene object naar het andere binnen of tussen uw opslagaccounts.

AzCopy downloaden en installeren

Download AzCopy V10+.

AzCopy 10.1-configuratie en -limieten

AzCopy 10.1 kan nu worden geconfigureerd voor het gebruik van oudere API-versies. Hierdoor is (beperkte) ondersteuning voor Azure Stack Hub. Als u de API-versie voor AzCopy wilt configureren voor Azure Stack Hub, stelt u de omgevingsvariabele AZCOPY_DEFAULT_SERVICE_API_VERSION in op 2017-11-09.

Besturingssysteem Opdracht
Windows Gebruik in een opdrachtprompt: set AZCOPY_DEFAULT_SERVICE_API_VERSION=2017-11-09
Gebruik in PowerShell: $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

In AzCopy 10.1 worden de volgende functies ondersteund voor Azure Stack Hub:

Functie Ondersteunde acties
Container beheren Een container maken
Inhoud van containers weergeven
Taak beheren Taken weergeven
Een taak hervatten
Blob verwijderen Eén blob verwijderen
Volledige of gedeeltelijke virtuele map verwijderen
Bestand uploaden Een bestand uploaden
Upload directory maken
Upload inhoud van een map weergeven
Bestand downloaden Een bestand downloaden
Een map downloaden
De inhoud van een map downloaden
Bestand synchroniseren Een container synchroniseren met een lokaal bestandssysteem
Een lokaal bestandssysteem synchroniseren met een container

Notitie

  • Azure Stack Hub biedt geen ondersteuning voor het verstrekken van autorisatiereferenties aan AzCopy met behulp van Azure Active Directory (AD). U moet toegang krijgen tot opslagobjecten op Azure Stack Hub met behulp van Shared Access Signature (SAS)-token.
  • Azure Stack Hub biedt geen ondersteuning voor synchrone gegevensoverdracht tussen twee Azure Stack Hub bloblocaties en tussen Azure Storage en Azure Stack Hub. U kunt azcopy cp niet gebruiken om gegevens rechtstreeks met AzCopy 10.1 te verplaatsen van Azure Stack Hub naar Azure Storage (of andersom).

AzCopy-opdrachtvoorbeelden voor gegevensoverdracht

De volgende voorbeelden volgen typische scenario's voor het kopiëren van gegevens van en naar Azure Stack Hub blobs. Zie Aan de slag met AzCopy voor meer informatie.

Alle blobs downloaden naar een lokale schijf

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

Upload bestand toevoegen aan virtuele map

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

Bekende problemen met AzCopy

  • Een AzCopy-bewerking voor een bestandsopslag is niet beschikbaar omdat bestandsopslag nog niet beschikbaar is in Azure Stack Hub.
  • Als u gegevens wilt overdragen tussen twee Azure Stack Hub-bloblocaties, of tussen Azure Stack Hub en Azure Storage met behulp van AzCopy 10.1, moet u de gegevens eerst downloaden naar een lokale locatie en vervolgens opnieuw uploaden naar de doelmap op Azure Stack Hub of Azure Storage. U kunt ook AzCopy 7.1 gebruiken en de overdracht opgeven met de optie /SyncCopy om de gegevens te kopiëren.
  • De Linux-versie van AzCopy ondersteunt alleen de 1802-update of latere versies en biedt geen ondersteuning voor Table-service.
  • Als u gegevens wilt kopiëren van en naar uw Azure Table Storage-service, installeert u AzCopy versie 7.3.0

Azure PowerShell

Azure PowerShell is een module die cmdlets biedt voor het beheren van services in Zowel Azure als Azure Stack Hub. Het is een op taken gebaseerde opdrachtregel-shell en scripttaal die speciaal is ontworpen voor systeembeheer.

PowerShell installeren en configureren voor Azure Stack Hub

Azure Stack Hub compatibele Azure PowerShell modules zijn vereist om te werken met Azure Stack Hub. Zie Install PowerShell for Azure Stack Hub andConfigure the Azure Stack Hub user's PowerShell environment (PowerShell-omgeving van de gebruiker Azure Stack Hub configureren) voor meer informatie.

PowerShell-voorbeeldscript voor Azure Stack Hub

In dit voorbeeld wordt ervan uitgenomen dat u PowerShell hebt geïnstalleerd voor Azure Stack Hub. Met dit script kunt u de configuratie voltooien en uw tenantreferenties Azure Stack Hub om uw account toe te voegen aan de lokale PowerShell-omgeving. Het script stelt vervolgens het standaard Azure-abonnement in, maakt een nieuw opslagaccount in Azure, maakt een nieuwe container in dit nieuwe opslagaccount en uploadt een bestaand afbeeldingsbestand (blob) naar die container. Nadat het script alle blobs in die container bevat, wordt er een nieuwe doelmap gemaakt op uw lokale computer en wordt het afbeeldingsbestand gedownload.

  1. Installeer Azure Stack Hub compatibele Azure PowerShell modules.
  2. Download de hulpprogramma's die nodig zijn om te werken met Azure Stack Hub.
  3. Open Windows PowerShell ISE en Als administrator uitvoeren en klik vervolgens op BestandNieuw om een nieuw scriptbestand te maken.
  4. Kopieer het onderstaande script en plak het in het nieuwe scriptbestand.
  5. Werk de scriptvariabelen bij op basis van uw configuratie-instellingen.

    Notitie

    Dit script moet worden uitgevoerd in de hoofdmap voor 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

Bekende problemen met PowerShell

Get-AzStorageAccountKey verschil

De huidige compatibele Azure PowerShell-moduleversie voor Azure Stack Hub is 1.2.11 voor de gebruikersbewerkingen. Deze verschilt van de nieuwste versie van Azure PowerShell. Dit verschil is op de volgende manier van invloed op de bewerking van opslagservices:

De retourwaarde-indeling Get-AzStorageAccountKey van in versie 1.2.11 heeft twee eigenschappen: Key1 en Key2, terwijl de huidige Azure-versie een matrix met alle accountsleutels retourneert.

# 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

Zie Get-AzureRMStorageAccountKey voor meer informatie.

Blob kopiëren tussen Azure Stack Hub clusters

Start-AzStorageBlobCopy kan worden gebruikt om een kopieer-taak te starten om een blob te verplaatsen. Bij het instellen van de AbsoluteUri eigenschap als de blob-URI op een ander Azure Stack Hub cluster, kan deze cmdlet worden gebruikt om blob te kopiëren tussen twee Azure Stack Hub clusters. Zorg ervoor dat de bron- en doelclusters Azure Stack Hub dezelfde updateversie hebben. Azure Stack Hub biedt momenteel geen ondersteuning voor het kopiëren Start-AzStorageBlobCopy van blobs tussen twee Azure Stack Hub clusters die verschillende updateversies hebben geïmplementeerd.

Azure CLI

Azure CLI is de nieuwe opdrachtregel van Azure voor het beheren van Azure-resources. U kunt deze installeren op macOS, Linux en Windows en uitvoeren vanaf de opdrachtregel.

Azure CLI is geoptimaliseerd voor het beheren en beheren van Azure-resources vanaf de opdrachtregel en voor het bouwen van automatiseringsscripts die op basis van de Azure Resource Manager. Het biedt veel van dezelfde functies die u kunt vinden in de Azure Stack Hub portal, waaronder uitgebreide gegevenstoegang.

Azure Stack Hub azure CLI versie 2.0 of hoger is vereist. Zie Install and configure Azure Stack Hub CLI (Azure CLI installeren en configureren) voor meer informatie over het installeren en configureren van Azure CLI Azure Stack Hub cli. Zie De Azure CLI gebruiken met Azure Storage voor meer informatie over het gebruik van de Azure CLI om verschillende taken uit te voeren met resources in uw Azure Stack Hub-opslagaccount.

Azure CLI-voorbeeldscript voor Azure Stack Hub

Nadat u de CLI-installatie en -configuratie hebt voltooid, kunt u de volgende stappen uitvoeren om te werken met een klein shellvoorbeeldscript om te communiceren met Azure Stack Hub opslagbronnen. Met het script worden de volgende acties voltooid:

  • Hiermee maakt u een nieuwe container in uw opslagaccount.
  • Uploadt een bestaand bestand (als een blob) naar de container.
  • Een lijst met alle blobs in de container.
  • Downloadt het bestand naar een bestemming op uw lokale computer die u opgeeft.

Voordat u dit script gaat uitvoeren, moet u ervoor zorgen dat u verbinding kunt maken met de doel-Azure Stack Hub.

  1. Open uw favoriete teksteditor en kopieer en plak het voorgaande script in de editor.
  2. Werk de variabelen van het script bij om uw configuratie-instellingen weer te geven.
  3. Nadat u de benodigde variabelen hebt bijgewerkt, kunt u het script opslaan en de editor afsluiten. In de volgende stappen wordt ervan uitgenomen dat u uw script de naam my_storage_sample.sh.
  4. Markeer het script als uitvoerbaar, indien nodig: chmod +x my_storage_sample.sh
  5. Voer het script uit. Bijvoorbeeld in 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 is een zelfstandige app van Microsoft. Hiermee kunt u eenvoudig werken met zowel Azure Storage als Azure Stack Hub Storage op Windows-, macOS- en Linux-computers. Als u een eenvoudige manier wilt om uw gegevens Azure Stack Hub Storage beheren, kunt u overwegen om uw Microsoft Azure Storage Explorer.

Blobfuse

Blobfuse is een stuurprogramma voor het virtuele bestandssysteem voor Azure Blob Storage, waarmee u toegang hebt tot uw bestaande blok-blobgegevens in uw opslagaccount via het Linux-bestandssysteem. Azure Blob Storage is een service voor objectopslag en heeft daarom geen hiërarchische naamruimte. Blobfuse biedt deze naamruimte met behulp van het schema van de virtuele map met het gebruik van slash / als scheidingsteken. Blobfuse werkt zowel in Azure als Azure Stack Hub.

Zie How to mount Blob storage as a file system with Blobfuse (Blob-opslag als een bestandssysteem aan Blobfuse toevoegen) voor meer informatie over het toevoegen van blob-opslag als een bestandssysteem met Blobfuse in Linux.

Voor Azure Stack Hub moet blobEndpoint worden opgegeven tijdens het configureren van de referenties van uw opslagaccount, samen met accountName, accountKey/sasToken en containerName.

In de Azure Stack Development Kit (ASDK) moet het blobEndpoint zijn . Neem in Azure Stack Hub geïntegreerd systeem contact op met uw cloudbeheerder als u niet zeker weet wat uw eindpunt is.

accountKeyen sasToken kunnen slechts één voor één worden geconfigureerd. Wanneer een opslagaccountsleutel wordt opgegeven, heeft het configuratiebestand met referenties de volgende indeling:

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

Wanneer een token voor gedeelde toegang wordt opgegeven, heeft het configuratiebestand met referenties de volgende indeling:

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

Volgende stappen