Partager via


Utiliser les outils de transfert de données dans stockage Azure Stack Hub

Azure Stack Hub fournit un ensemble de services de stockage pour les disques, les objets blob, les tables, les files d’attente et les fonctions de gestion des comptes. Certains outils stockage Azure sont disponibles si vous souhaitez gérer ou déplacer des données vers ou depuis stockage Azure Stack Hub. Cet article fournit une vue d’ensemble des outils disponibles.

Vos exigences déterminent les outils suivants qui conviennent le mieux à vos besoins :

  • AzCopy: utilitaire de ligne de commande spécifique au stockage que vous pouvez télécharger pour copier des données d’un objet vers un autre objet ou entre vos comptes de stockage.
  • Azure PowerShell: un shell en ligne de commande et un langage de script basés sur des tâches, conçus spécialement pour l'administration système.
  • Azure CLI: outil open source multiplateforme qui fournit un ensemble de commandes permettant d’utiliser les plateformes Azure et Azure Stack Hub.
  • Explorateur Stockage Microsoft Azure: application autonome facile à utiliser avec une interface utilisateur.
  • Blobfuse : un pilote de système de fichiers virtuel pour le Stockage Blob Azure, qui vous permet d’accéder à vos données d’objet blob de blocs dans votre compte de stockage via le système de fichiers Linux.

En raison des différences de services de stockage entre Azure et Azure Stack Hub, il peut y avoir des exigences spécifiques pour chaque outil décrit dans les sections suivantes. Pour obtenir une comparaison entre stockage Azure Stack Hub et Stockage Azure, consultez Stockage Azure Stack Hub : Différences et considérations.

AzCopy

AzCopy est un utilitaire de ligne de commande conçu pour copier des données vers et depuis le stockage d’objets blob et de tables Microsoft Azure à l’aide de commandes simples avec des performances optimales. Vous pouvez copier des données d’un objet vers un autre dans ou entre vos comptes de stockage.

Télécharger et installer AzCopy

Télécharger AzCopy V10+.

Configuration et limites d’AzCopy 10.1

AzCopy 10.1 est désormais en mesure d’être configuré pour utiliser des versions d’API plus anciennes. Cela permet la prise en charge (limitée) d’Azure Stack Hub. Pour configurer la version de l’API pour AzCopy afin de prendre en charge Azure Stack Hub, définissez la variable d’environnement AZCOPY_DEFAULT_SERVICE_API_VERSION sur 2017-11-09.

Système d’exploitation Commande
Windows Dans une invite de commandes, utilisez : set AZCOPY_DEFAULT_SERVICE_API_VERSION=2017-11-09
Dans PowerShell, utilisez : $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

Dans AzCopy 10.1, les fonctionnalités suivantes sont prises en charge pour Azure Stack Hub :

Caractéristique Actions prises en charge
Gérer le conteneur Créer un conteneur
Répertorier le contenu des conteneurs
Gérer le travail Afficher les travaux
Reprendre un travail
Supprimer blob Supprimer un blob unique
Supprimer un répertoire virtuel entier ou partiel
Charger le fichier Charger un fichier
Charger un répertoire
Charger le contenu d’un répertoire
Télécharger le fichier Télécharger un fichier
Télécharger un répertoire
Télécharger le contenu d’un répertoire
Synchroniser le fichier Synchroniser un conteneur avec un système de fichiers local
Synchroniser un système de fichiers local sur un conteneur

Remarque

Azure Stack Hub ne prend pas en charge la fourniture d’informations d’identification d’autorisation à AzCopy à l’aide de l’ID Microsoft Entra. Vous devez accéder aux objets de stockage sur Azure Stack Hub à l’aide d’un jeton SAP (Shared Access Signature). Azure Stack Hub ne prend pas en charge le transfert de données synchrone entre deux emplacements d’objets blob Azure Stack Hub et entre Stockage Azure et Azure Stack Hub. Vous ne pouvez pas utiliser azcopy cp pour déplacer des données d’Azure Stack Hub vers stockage Azure (ou d’une autre façon) directement avec AzCopy 10.1.

Exemples de commandes AzCopy pour le transfert de données

Les exemples suivants suivent des scénarios classiques pour copier des données vers et depuis des objets blob Azure Stack Hub. Pour en savoir plus, voir Bien démarrer avec AzCopy.

Télécharger tous les objets blob sur un disque local

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

Charger un fichier unique dans un répertoire virtuel

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

Problèmes connus d’AzCopy

  • Toute opération AzCopy sur un stockage de fichiers n’est pas disponible, car le stockage de fichiers n’est pas encore disponible dans Azure Stack Hub.
  • Si vous souhaitez transférer des données entre deux emplacements d’objets blob Azure Stack Hub ou entre Azure Stack Hub et Stockage Azure à l’aide d’AzCopy 10.1, téléchargez d’abord les données dans un emplacement local, puis chargez à nouveau dans le répertoire cible sur Azure Stack Hub ou Stockage Azure.
  • La version Linux d’AzCopy prend uniquement en charge la mise à jour 1802 ou les versions ultérieures ; il ne prend pas en charge le service Table.
  • Si vous souhaitez copier des données vers et depuis votre service Stockage Table Azure, vous pouvez utiliser PowerShell, CLI ou les bibliothèques clientes Azure.

Azure PowerShell

Azure PowerShell est un module qui fournit des applets de commande pour la gestion des services sur Azure et Azure Stack Hub. Il s’agit d’un interpréteur de commandes basé sur des tâches et d’un langage de script conçu spécialement pour l’administration du système.

Installer et configurer PowerShell pour Azure Stack Hub

Les modules Azure PowerShell compatibles avec Azure Stack Hub sont nécessaires pour fonctionner avec Azure Stack Hub. Pour plus d’informations, consultez Installer PowerShell pour Azure Stack Hub et Configurer l’environnement PowerShell de l’utilisateur Azure Stack Hub.

Exemple de script PowerShell pour Azure Stack Hub

Cet exemple suppose que vous avez correctement installé PowerShell pour Azure Stack Hub. Ce script vous aidera à terminer la configuration et à demander à vos informations d’identification de locataire Azure Stack Hub d’ajouter votre compte à l’environnement PowerShell local. Le script définit ensuite l’abonnement Azure par défaut, crée un compte de stockage dans Azure, crée un conteneur dans ce nouveau compte de stockage et charge un fichier image (blob) existant dans ce conteneur. Une fois que le script répertorie tous les objets blob de ce conteneur, il crée un répertoire de destination sur votre ordinateur local et télécharge le fichier image.

  1. Installez les modules Azure PowerShell compatibles avec Azure Stack Hub.
  2. Téléchargez les outils requis pour utiliser Azure Stack Hub.
  3. Ouvrez Windows PowerShell ISE et sélectionnez Exécuter en tant qu’administrateur, puis cliquez sur Fichier>Nouveau pour créer un nouveau fichier de script.
  4. Copiez le script ci-dessous et collez-le dans le nouveau fichier de script.
  5. Mettez à jour les variables de script en fonction de vos paramètres de configuration.

    Remarque

    Ce script doit être exécuté dans le répertoire racine pour 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

Problèmes connus de PowerShell

Différence Get-AzStorageAccountKey

La version actuelle du module Azure PowerShell compatible pour Azure Stack Hub est 1.2.11 pour les opérations utilisateur. Il est différent de la dernière version d’Azure PowerShell. Cette différence a un impact sur l’opération des services de stockage de la façon suivante :

Le format de valeur de retour de Get-AzStorageAccountKey dans la version 1.2.11 a deux propriétés : Key1 et Key2, tandis que la version actuelle d’Azure retourne un tableau contenant toutes les clés de compte.

# 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

Pour plus d’informations, consultez Get-AzureRMStorageAccountKey.

Copier un objet blob entre des clusters Azure Stack Hub

Start-AzStorageBlobCopy peut être utilisé pour démarrer une tâche de copie pour déplacer un blob. Lorsque vous définissez la propriété AbsoluteUri en tant qu’URI d’objet blob sur un autre cluster Azure Stack Hub, cette applet de commande peut être utilisée pour copier des objets blob entre deux clusters Azure Stack Hub. Vérifiez que les clusters Azure Stack Hub source et de destination se trouvent sur la même version de mise à jour. Actuellement, Azure Stack Hub ne prend pas en charge l’utilisation de Start-AzStorageBlobCopy pour copier des objets blob entre deux clusters Azure Stack Hub qui ont déployé différentes versions de mise à jour.

Azure CLI

Azure CLI est l’expérience en ligne de commande d’Azure pour la gestion des ressources Azure. Vous pouvez l’installer sur macOS, Linux et Windows et l’exécuter à partir de la ligne de commande.

Azure CLI est optimisé pour la gestion et l’administration des ressources Azure à partir de la ligne de commande et pour la création de scripts d’automatisation qui fonctionnent sur Azure Resource Manager. Il fournit la plupart des mêmes fonctions trouvées dans le portail Azure Stack Hub, y compris l’accès aux données enrichies.

Azure Stack Hub nécessite Azure CLI version 2.0 ou ultérieure. Pour plus d’informations sur l’installation et la configuration d’Azure CLI avec Azure Stack Hub, consultez Installer et configurer Azure Stack Hub CLI. Pour plus d’informations sur l’utilisation d’Azure CLI pour effectuer plusieurs tâches qui fonctionnent avec des ressources dans votre compte de stockage Azure Stack Hub, consultez Utilisation d’Azure CLI avec le stockage Azure.

Exemple de script Azure CLI pour Azure Stack Hub

Une fois l’installation et la configuration de l’interface CLI terminées, vous pouvez essayer les étapes suivantes pour utiliser un petit exemple de script shell pour interagir avec les ressources de stockage Azure Stack Hub. Le script effectue les actions suivantes :

  • Crée un conteneur dans votre compte de stockage.
  • Télécharge un fichier existant (comme un objet blob) sur le conteneur.
  • Dresse la liste de tous les objets blob du conteneur.
  • Télécharge le fichier vers une destination sur votre ordinateur local que vous spécifiez.

Avant d’exécuter ce script, assurez-vous que vous pouvez vous connecter et ouvrir une session à l'Azure Stack Hub cible.

  1. Ouvrez votre éditeur de texte favori, puis copiez et collez le script précédent dans l’éditeur.
  2. Mettez à jour les variables du script pour refléter vos paramètres de configuration.
  3. Une fois que vous avez mis à jour les variables nécessaires, enregistrez le script et quittez votre éditeur. Les étapes suivantes supposent que vous avez nommé votre script my_storage_sample.sh.
  4. Marquez le script comme exécutable, si nécessaire : chmod +x my_storage_sample.sh
  5. Exécutez le script. Par exemple, dans 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"

Explorateur de stockage Microsoft Azure

L’Explorateur Stockage Azure est une application autonome de Microsoft. Il vous permet de travailler facilement avec les données stockage Azure et Stockage Azure Stack Hub sur les ordinateurs Windows, macOS et Linux. Si vous souhaitez gérer facilement vos données de stockage Azure Stack Hub, envisagez d’utiliser l’Explorateur Stockage Microsoft Azure.

Blobfuse

Blobfuse est un pilote de système de fichiers virtuel pour Azure Blob Storage, qui vous permet d’accéder à vos données de blob de blocs existantes dans votre compte de stockage via le système de fichiers Linux. Le Stockage Blob Azure est un service de stockage d’objets qui n’a pas d’espace de noms hiérarchique. Blobfuse fournit cet espace de noms à l’aide du schéma de répertoire virtuel avec l’utilisation d’une barre oblique / comme délimiteur. Blobfuse fonctionne à la fois sur Azure et Azure Stack Hub.

Pour en savoir plus sur le montage du stockage d’objets blob en tant que système de fichiers avec Blobfuse sur Linux, consultez Comment monter le stockage d’objets blob en tant que système de fichiers avec Blobfuse.

Pour Azure Stack Hub, blobEndpoint doit être spécifié lors de la configuration des informations d’identification de votre compte de stockage, ainsi que accountName, accountKey/sasToken et containerName.

Dans le Kit de développement Azure Stack (ASDK), le blobEndpoint doit être . Dans le système intégré Azure Stack Hub, contactez votre administrateur cloud si vous n’êtes pas sûr de votre point de terminaison.

accountKey et sasToken doivent être configurés un par un. Lorsqu’une clé de compte de stockage est donnée, le fichier de configuration des informations d’identification est au format suivant :

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

Lorsqu’un jeton d’accès partagé est donné, le fichier de configuration des informations d’identification est au format suivant :

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

Étapes suivantes