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-hulpprogramma's 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 opslagspecifiek opdrachtregelprogramma dat u kunt downloaden om gegevens van het ene object naar het andere object binnen of tussen uw opslagaccounts te kopiëren.

  • Azure PowerShell

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

  • Azure-CLI

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

  • Microsoft Azure Storage Explorer

    Een gebruiksvriendelijke zelfstandige app met een gebruikersinterface.

  • Blobfuse

    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.

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

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 van het ene object naar het andere kopiëren binnen of tussen uw opslagaccounts.

AzCopy downloaden en installeren

Download AzCopy V10+.

Configuratie en limieten voor AzCopy 10.1

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

Besturingssysteem Opdracht
Windows Gebruik het volgende in een opdrachtprompt: set AZCOPY_DEFAULT_SERVICE_API_VERSION=2017-11-09
In PowerShell gebruiken: $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
Een map uploaden
De inhoud van een map uploaden
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 Microsoft Entra-id. U moet toegang krijgen tot opslagobjecten in Azure Stack Hub met behulp van een SAS-token (Shared Access Signature).
  • 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 te verplaatsen van Azure Stack Hub naar Azure Storage (of andersom) met AzCopy 10.1.

AzCopy-opdrachtvoorbeelden voor gegevensoverdracht

De volgende voorbeelden volgen typische scenario's voor het kopiëren van gegevens naar en van 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

Eén bestand uploaden naar 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 in 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 in 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 opdrachtregelshell en scripttaal die speciaal is ontworpen voor systeembeheer.

PowerShell voor Azure Stack Hub installeren en configureren

Azure Stack Hub-compatibele Azure PowerShell modules zijn vereist om met Azure Stack Hub te kunnen werken. Zie PowerShell voor Azure Stack Hub installeren en De PowerShell-omgeving van de Azure Stack Hub-gebruiker configureren voor meer informatie.

PowerShell-voorbeeldscript voor Azure Stack Hub

In dit voorbeeld wordt ervan uitgegaan dat u PowerShell voor Azure Stack Hub hebt geïnstalleerd. Met dit script kunt u de configuratie voltooien en uw Azure Stack Hub-tenantreferenties vragen 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 heeft vermeld, wordt er een nieuwe doelmap op uw lokale computer gemaakt en wordt het afbeeldingsbestand gedownload.

  1. Installeer azure Stack Hub-compatibele Azure PowerShell-modules.
  2. Download de hulpprogramma's die nodig zijn om met Azure Stack Hub te werken.
  3. Open Windows PowerShell ISE, voer uit als administrator en klik vervolgens op Nieuw bestand> 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. Dit verschilt van de nieuwste versie van Azure PowerShell. Dit verschil heeft op de volgende manier invloed op de werking van opslagservices:

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

# 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 kopieertaak te starten om een blob te verplaatsen. Wanneer u de eigenschap AbsoluteUri instelt als de blob-URI in 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 van Azure Stack Hub dezelfde updateversie hebben. Azure Stack Hub biedt momenteel geen ondersteuning voor het kopiëren van Start-AzStorageBlobCopy blob 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 het 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 werken met de Azure Resource Manager. Het biedt veel van dezelfde functies als in de Azure Stack Hub-portal, waaronder uitgebreide gegevenstoegang.

Azure Stack Hub vereist Azure CLI versie 2.0 of hoger. Zie Azure Stack Hub CLI installeren en configureren voor meer informatie over het installeren en configureren van Azure CLI met Azure Stack Hub. Zie De Azure CLI gebruiken met Azure Storage voor meer informatie over het gebruik van de Azure CLI om verschillende taken uit te voeren die werken met resources in uw Azure Stack Hub-opslagaccount.

Azure CLI-voorbeeldscript voor Azure Stack Hub

Zodra u de CLI-installatie en -configuratie hebt voltooid, kunt u de volgende stappen uitvoeren om te werken met een klein shell-voorbeeldscript voor interactie met Azure Stack Hub-opslagresources. Het script voltooit de volgende acties:

  • 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 uitvoert, moet u ervoor zorgen dat u verbinding kunt maken en u kunt aanmelden bij 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, slaat u het script op en sluit u de editor. In de volgende stappen wordt ervan uitgegaan dat u het script een naam hebt 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-gegevens op Windows-, macOS- en Linux-computers. Als u een eenvoudige manier wilt om uw Azure Stack Hub Storage-gegevens te beheren, kunt u overwegen om Microsoft Azure Storage Explorer te gebruiken.

  • Zie Connect Storage Explorer to an Azure Stack Hub subscription (Storage Explorer verbinden met een Azure Stack Hub-abonnement) voor meer informatie over het configureren van Azure Storage Explorer om te werken met Azure Stack Hub.
  • Zie Aan de slag met Storage Explorer voor meer informatie over Microsoft Azure Storage Explorer

Blobfuse

Blobfuse is een virtueel bestandssysteemstuurprogramma 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 virtuele mapschema met het gebruik van slash / naar voren als scheidingsteken. Blobfuse werkt op zowel Azure als Azure Stack Hub.

Zie Blob Storage koppelen als een bestandssysteem met Blobfuse voor meer informatie over het koppelen van blobopslag als een bestandssysteem met Blobfuse op 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 blobEndpoint zijn myaccount.blob.local.azurestack.external. Neem in het geïntegreerde Azure Stack Hub-systeem contact op met uw cloudbeheerder als u niet zeker bent over uw eindpunt.

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

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

Wanneer een gedeeld toegangstoken wordt opgegeven, heeft het configuratiebestand voor referenties de volgende indeling:

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

Volgende stappen