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 naar of van Azure Stack Hub Storage. Dit artikel bevat een overzicht van de beschikbare hulpprogramma's.
Uw vereisten bepalen welke van de volgende hulpprogramma's het meest geschikt zijn voor u:
- AzCopy-: een opslagspecifiek opdrachtregelprogramma dat u kunt downloaden om gegevens van het ene object naar het andere object te kopiëren binnen of tussen uw opslagaccounts.
- 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-platformen.
- Microsoft Azure Storage Explorer: een gebruiksvriendelijke zelfstandige app met een gebruikersinterface.
- Blobfuse-: een stuurprogramma voor een virtueel 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 overwegingenvoor een vergelijking tussen Azure Stack Hub Storage en Azure Storage.
AzCopy
AzCopy is een opdrachtregelprogramma dat is ontworpen voor het kopiëren van gegevens naar en van 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
Configuratie en limieten van AzCopy 10.1
AzCopy 10.1 kan nu worden geconfigureerd voor het gebruik van oudere API-versies. Hierdoor wordt (beperkte) ondersteuning voor Azure Stack Hub ingeschakeld.
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 | Bevelen |
---|---|
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 | Vacatures 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 opgeven van autorisatiereferenties voor 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 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 naar en van Azure Stack Hub-blobs. Zie Aan de slag met AzCopyvoor 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
Een 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 op een bestandsopslag is niet beschikbaar omdat de 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, downloadt u eerst de gegevens naar een lokale locatie en uploadt u vervolgens opnieuw naar de doelmap in Azure Stack Hub of Azure Storage.
- De Linux-versie van AzCopy ondersteunt alleen de 1802-update of latere versies; Het biedt geen ondersteuning voor table-service.
- Als u gegevens wilt kopiëren naar en van uw Azure Table Storage-service, kunt u PowerShell, CLI of de Azure-clientbibliotheken gebruiken.
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 installeren en configureren voor Azure Stack Hub
Azure Stack Hub-compatibele Azure PowerShell-modules zijn vereist voor gebruik met Azure Stack Hub. Zie PowerShell installeren voor Azure Stack Hub en De PowerShell-omgeving van de Azure Stack Hub-gebruiker configurerenvoor 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 opgesomd, wordt er een nieuwe doelmap op uw lokale computer gemaakt en wordt het imagebestand gedownload.
- Installeer Azure Stack Hub-compatibele Azure PowerShell-modules.
- Download de hulpprogramma's die nodig zijn om te werken met Azure Stack Hub.
- Open Windows PowerShell ISE en Als administrator uitvoeren, en klik vervolgens op Bestand>nieuwe om een nieuw scriptbestand te maken.
- Kopieer het onderstaande script en plak het in het nieuwe scriptbestand.
- 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 versie van de Azure PowerShell-module voor Azure Stack Hub is 1.2.11 voor de gebruikersbewerkingen. Dit verschilt van de nieuwste versie van Azure PowerShell. Dit verschil is van invloed op de werking van opslagservices op de volgende manier:
De retourwaarde-indeling van Get-AzStorageAccountKey
in versie 1.2.11 heeft twee eigenschappen: Key1
en Key2
, terwijl de huidige Versie van Azure 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-AzureRMStorageAccountKeyvoor 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. Bij het instellen van de eigenschap AbsoluteUri
als blob-URI op een ander Azure Stack Hub-cluster, kan deze cmdlet worden gebruikt om blob tussen twee Azure Stack Hub-clusters te kopiëren. Zorg ervoor dat de bron- en doelclusters van Azure Stack Hub zich in dezelfde updateversie bevinden. Azure Stack Hub biedt momenteel geen ondersteuning voor het gebruik van Start-AzStorageBlobCopy
om blob te kopiëren tussen twee Azure Stack Hub-clusters die verschillende updateversies hebben geïmplementeerd.
Azure CLI
De Azure CLI is de opdrachtregelervaring 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 van Azure-resources via de commandoregel en voor het bouwen van automatiseringsscripts die werken met Azure Resource Manager. Het biedt veel van dezelfde functies in de Azure Stack Hub-portal, waaronder uitgebreide gegevenstoegang.
Voor Azure Stack Hub is Azure CLI versie 2.0 of hoger vereist. Zie Azure Stack Hub CLI installeren en configurerenvoor meer informatie over het installeren en configureren van Azure CLI met Azure Stack Hub. Zie De Azure CLI gebruiken met Azure Storagevoor 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 om te communiceren met Azure Stack Hub-opslagbronnen. Het script voltooit de volgende acties:
- Hiermee maakt u een nieuwe container in uw opslagaccount.
- Uploadt een bestaand bestand (als blob) naar de container.
- Een lijst met alle blobs in de container.
- Hiermee downloadt u het bestand naar een bestemming op uw lokale computer die u opgeeft.
Voordat u dit script uitvoert, moet u ervoor zorgen dat u succesvol verbinding kunt maken met en zich kunt aanmelden bij de doel-Azure Stack Hub.
- Open uw favoriete teksteditor en kopieer en plak het voorgaande script in de editor.
- Werk de variabelen van het script bij zodat deze overeenkomen met uw configuratie-instellingen.
- Nadat u de benodigde variabelen hebt bijgewerkt, slaat u het script op en sluit u de editor af. In de volgende stappen wordt ervan uitgegaan dat u uw script hebt genoemd my_storage_sample.sh.
- Markeer het script indien nodig als uitvoerbaar:
chmod +x my_storage_sample.sh
- 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 subscriptionvoor meer informatie over het configureren van Azure Storage Explorer voor gebruik met Azure Stack Hub.
- Zie Aan de slag met Storage Explorervoor meer informatie over 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 objectopslagservice en heeft daarom geen hiërarchische naamruimte. Blobfuse biedt deze naamruimte met behulp van het virtuele mapschema met het gebruik van slash-/
als scheidingsteken. Blobfuse werkt op zowel Azure als Azure Stack Hub.
Voor meer informatie over het koppelen van Blob Storage als bestandssysteem met Blobfuse op Linux, zie Hoe Blob Storage als bestandssysteem koppelen met Blobfuse.
Voor Azure Stack Hub moet blobEndpoint- worden opgegeven tijdens het configureren van uw opslagaccountreferenties, samen met accountName, accountKey/sasToken en containerName.
In de Azure Stack Development Kit (ASDK) moet de blobEndpoint worden myaccount.blob.local.azurestack.external
. Neem in geïntegreerd Azure Stack Hub-systeem contact op met uw cloudbeheerder als u niet zeker weet wat uw eindpunt is.
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 inloggegevens het volgende formaat:
accountName myaccount
sasToken ?mysastoken
containerName mycontainer
blobEndpoint myaccount.blob.local.azurestack.external