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
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.
- Installez les modules Azure PowerShell compatibles avec Azure Stack Hub.
- Téléchargez les outils requis pour utiliser Azure Stack Hub.
- 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.
- Copiez le script ci-dessous et collez-le dans le nouveau fichier de script.
- 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.
- Ouvrez votre éditeur de texte favori, puis copiez et collez le script précédent dans l’éditeur.
- Mettez à jour les variables du script pour refléter vos paramètres de configuration.
- 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.
- Marquez le script comme exécutable, si nécessaire :
chmod +x my_storage_sample.sh
- 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.
- Pour plus d’informations sur la configuration de l’Explorateur Stockage Azure pour qu’il fonctionne avec Azure Stack Hub, consultez Connecter l’Explorateur Stockage à un abonnement Azure Stack Hub.
- Pour plus d’informations sur l’Explorateur Stockage Microsoft Azure, consultez Prise en main de l’Explorateur stockage.
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
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