Использование инструментов передачи данных в хранилище Azure Stack HubUse data transfer tools in Azure Stack Hub Storage

Azure Stack Hub предоставляет набор служб хранилища для дисков, больших двоичных объектов, таблиц, очередей и функций управления учетными записями.Azure Stack Hub provides a set of storage services for disks, blobs, tables, queues, and account management functions. Если вам нужно управлять данными в хранилище Azure Stack Hub, а также переносить данные в это хранилище или из него, вы можете использовать инструменты службы хранилища Azure.Some Azure Storage tools are available if you want to manage or move data to or from Azure Stack Hub Storage. В этой статье содержится обзор доступных инструментов.This article provides an overview of the available tools.

Выбор оптимальных средств из приведенного ниже списка зависит от ваших требований.Your requirements determine which of the following tools works best for you:

  • AzCopyAzCopy

    Программа командной строки хранилища, которую вы можете загрузить для копирования данных из одного объекта в другой в пределах одной учетной записи хранения или между учетными записями хранения.A storage-specific, command-line utility that you can download to copy data from one object to another object within or between your storage accounts.

  • Azure PowerShellAzure PowerShell

    Оболочка командной строки для выполнения задач и язык сценариев, разработанный специально для администрирования системы.A task-based, command-line shell and scripting language designed especially for system administration.

  • Azure CLIAzure CLI

    Кроссплатформенное средство с открытым кодом, которое предоставляет набор команд для работы с платформами Azure и Azure Stack Hub.An open-source, cross-platform tool that provides a set of commands for working with the Azure and Azure Stack Hub platforms.

  • Обозреватель службы хранилища Microsoft AzureMicrosoft storage explorer

    Простое в использовании автономное приложение с пользовательским интерфейсом.An easy-to-use stand-alone app with a user interface.

  • BlobfuseBlobfuse

    Виртуальный драйвер файловой системы для хранилища BLOB-объектов Azure, позволяющий получать доступ к имеющимся данным блочного BLOB-объекта в учетной записи хранения в файловой системе Linux.A virtual file system driver for Azure Blob Storage, which allows you to access your existing block blob data in your storage account through the Linux file system.

Из-за различий между службами хранения в Azure и Azure Stack Hub к каждому инструменту могут применяться определенные требования, как описано в следующих разделах.Because of storage services differences between Azure and Azure Stack Hub, there might be some specific requirements for each tool described in the following sections. См. сравнение службы хранилища Azure и хранилища Azure Stack Hub. Отличия и рекомендации.For a comparison between Azure Stack Hub Storage and Azure Storage, see Azure Stack Hub Storage: Differences and considerations.

AzCopyAzCopy

AzCopy — это служебная программа командной строки. Она предназначена для копирования данных из хранилища BLOB-объектов и хранилища таблиц Microsoft Azure и обратно с помощью простых команд, обеспечивающих оптимальную производительность.AzCopy is a command-line utility designed to copy data to and from Microsoft Azure blob and table storage using simple commands with optimal performance. Кроме того, она позволяет копировать данные из одного объекта в другой в пределах одной учетной записи хранения или между учетными записями хранения.You can copy data from one object to another within or between your storage accounts.

Скачивание и установка AzCopyDownload and install AzCopy

Настройки и ограничения AzCopy 10.1AzCopy 10.1 configuration and limits

Теперь AzCopy 10.1 можно использовать для настройки более ранних версий API.AzCopy 10.1 is now able to be configured to use older API versions. Это предполагает (ограниченную) поддержку Azure Stack Hub.This enables (limited) support for Azure Stack Hub. Чтобы для AzCopy настроить версию API, которая поддерживает Azure Stack Hub, установите для переменной среды AZCOPY_DEFAULT_SERVICE_API_VERSION значение 2017-11-09.To configure the API version for AzCopy to support Azure Stack Hub, set the AZCOPY_DEFAULT_SERVICE_API_VERSION environment variable to 2017-11-09.

Операционная системаOperating system Get-HelpCommand
WindowsWindows В командной строке используйте set AZCOPY_DEFAULT_SERVICE_API_VERSION=2017-11-09.In a command prompt use: set AZCOPY_DEFAULT_SERVICE_API_VERSION=2017-11-09
В PowerShell используйте $env:AZCOPY_DEFAULT_SERVICE_API_VERSION="2017-11-09".In PowerShell use: $env:AZCOPY_DEFAULT_SERVICE_API_VERSION="2017-11-09"
LinuxLinux export AZCOPY_DEFAULT_SERVICE_API_VERSION=2017-11-09
MacOSMacOS export AZCOPY_DEFAULT_SERVICE_API_VERSION=2017-11-09

AzCopy 10.1 поддерживает для Azure Stack Hub следующие функции:In AzCopy 10.1, the following features are supported for Azure Stack Hub:

КомпонентFeature Поддерживаемые действияSupported actions
Управление контейнеромManage container Создание контейнераCreate a container
Список содержимого контейнеровList contents of containers
Управление заданиемManage job Отображение заданийDisplay jobs
Возобновление заданияResume a job
Удаление больших двоичных объектовRemove blob Удаление одного большого двоичного объектаRemove a single blob
Полное или частичное удаление виртуального каталогаRemove entire or partial virtual directory
Отправка файлаUpload file Отправка файлаUpload a file
Отправка каталогаUpload a directory
Отправка содержимого каталогаUpload the contents of a directory
Загрузка файлаDownload file скачать файл;Download a file
Загрузка каталогаDownload a directory
Загрузка содержимого каталогаDownload the contents of a directory
Синхронизация файлаSynchronize file Синхронизация контейнера с локальной файловой системойSynchronize a container to a local file system
Синхронизация локальной файловой системы с контейнеромSynchronize a local file system to a container

Примечание

  • Azure Stack Hub не поддерживает передачу учетных данных авторизации в AzCopy с помощью Azure Active Directory (AD).Azure Stack Hub doesn't support providing authorization credentials to AzCopy by using Azure Active Directory (AD). Доступ к объектам хранилища Azure Stack Hub необходимо осуществлять с помощью маркера подписанного URL-адреса (SAS).You must access storage objects on Azure Stack Hub using a Shared Access Signature (SAS) token.
  • Azure Stack Hub не поддерживает синхронную передачу данных между двумя расположениями больших двоичных объектов Azure Stack, а также между службой хранилища Azure и Azure Stack Hub.Azure Stack Hub doesn't support synchronous data transfer between two Azure Stack Hub blob locations, and between Azure Storage and Azure Stack Hub. Команду azcopy cp нельзя напрямую использовать для двунаправленного перемещения данных между Azure Stack Hub и службой хранилища Azure напрямую с помощью AzCopy 10.1.You can't use "azcopy cp" to move data from Azure Stack Hub to Azure Storage (or the other way around) directly with AzCopy 10.1.

Примеры команд AzCopy для передачи данныхAzCopy command examples for data transfer

В следующих примерах описаны стандартные сценарии копирования данных в большие двоичные объекты Azure Stack Hub и оттуда.The following examples follow typical scenarios for copying data to and from Azure Stack Hub blobs. Дополнительные сведения см. в статье Начало работы с AzCopy.To learn more, see Get started with AzCopy.

Скачивание всех больших двоичных объектов на локальный дискDownload all blobs to a local disk

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

Отправка одного файла в виртуальный каталогUpload single file to virtual directory

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

Известные проблемы при использовании AzCopyAzCopy known issues

  • Операцию AzCopy для хранилища файлов выполнить невозможно, так как хранилище файлов еще не доступно в Azure Stack Hub.Any AzCopy operation on a file storage isn't available because file storage isn't yet available in Azure Stack Hub.
  • Если вам нужно перенести данные между двумя расположениями больших двоичных объектов Azure Stack Hub или между Azure Stack Hub и службой хранилища Azure с помощью AzCopy 10.1, необходимо сначала скачать эти данные в локальное расположение, а затем передать их в целевой каталог в Azure Stack Hub или службу хранилища Azure.If you want to transfer data between two Azure Stack Hub blob locations—or between Azure Stack Hub and Azure Storage by using AzCopy 10.1—you need to download the data to a local location first, and then reupload to the target directory on Azure Stack Hub or Azure Storage. Или можно использовать AzCopy 7.1 и указать передачу с помощью параметра /SyncCopy, чтобы копировать данные.Or you can use AzCopy 7.1, and specify the transfer with the /SyncCopy option to copy the data.
  • Версия AzCopy для Linux поддерживает только обновление 1802 или более поздние версии и не поддерживает службу таблиц.The Linux version of AzCopy only supports the 1802 update or later versions and it doesn't support Table service.
  • Чтобы копировать данные в службу хранилища таблиц Azure и из нее, установите AzCopy версии 7.3.0If you want to copy data to and from your Azure Table storage service, then install AzCopy version 7.3.0

Azure PowerShellAzure PowerShell

Azure PowerShell — это модуль, предоставляющий командлеты для управления службами Azure и Azure Stack Hub.Azure PowerShell is a module that provides cmdlets for managing services on both Azure and Azure Stack Hub. Это оболочка командной строки для выполнения задач и язык сценариев, разработанный специально для администрирования системы.It's a task-based, command-line shell and scripting language designed especially for system administration.

Установка и настройка PowerShell для использования с Azure Stack HubInstall and Configure PowerShell for Azure Stack Hub

Для работы с Azure Stack Hub необходимы модули Azure PowerShell, совместимые с Azure Stack Hub.Azure Stack Hub compatible Azure PowerShell modules are required to work with Azure Stack Hub. См. сведения о том, как выполнять установку PowerShell для Azure Stack Hub и настраивать пользовательскую среду PowerShell в Azure Stack Hub.For more information, see Install PowerShell for Azure Stack Hub and Configure the Azure Stack Hub user's PowerShell environment.

Пример скрипта PowerShell для Azure Stack HubPowerShell Sample script for Azure Stack Hub

В этом примере предполагается, что вы успешно установили PowerShell для Azure Stack Hub.This sample assumes you have successfully Installed PowerShell for Azure Stack Hub. Этот скрипт поможет вам выполнить настройку и запросить учетные данные клиента Azure Stack Hub, чтобы добавить учетную запись в локальную среду PowerShell.This script will help you complete the configuration and ask your Azure Stack Hub tenant credentials to add your account to the local PowerShell environment. Затем сценарий настроит подписку Azure по умолчанию, создаст учетную запись хранения в Azure, создаст контейнер в этой новой учетной записи хранения и передаст существующий файл образа (большой двоичный объект) в этот контейнер.The script will then set the default Azure subscription, create a new storage account in Azure, create a new container in this new storage account, and upload an existing image file (blob) to that container. После этого сценарий выводит список всех BLOB-объектов в этом контейнере, создает каталог назначения на локальном компьютере и загружает файл образа.After the script lists all blobs in that container, it will create a new destination directory on your local computer and download the image file.

  1. Установите совместимые с Azure Stack Hub модули Azure PowerShell.Install Azure Stack Hub-compatible Azure PowerShell modules.
  2. Скачайте средства, необходимые для работы с Azure Stack Hub.Download the tools required to work with Azure Stack Hub.
  3. Откройте интегрированную среду сценариев Windows PowerShell, войдите в нее как администратор и щелкните Файл > Создать, чтобы создать файл сценария.Open Windows PowerShell ISE and Run as Administrator, then click File > New to create a new script file.
  4. Скопируйте приведенный ниже сценарий и вставьте его в новый файл сценария.Copy the script below and paste it to the new script file.
  5. Обновите переменные сценария на основе заданных параметров конфигурации.Update the script variables based on your configuration settings.

    Примечание

    Этот скрипт должен быть запущен в корневом каталоге AzureStack_Tools.This script has to be run at the root directory for 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 AzureRM environment that targets your Azure Stack Hub instance
Add-AzureRmEnvironment -Name $ARMEvnName -ARMEndpoint $ARMEndPoint 

# Login
$TenantID = Get-AzsDirectoryTenantId -AADTenantName $AADTenantName -EnvironmentName $ARMEvnName
Add-AzureRmAccount -EnvironmentName $ARMEvnName -TenantId $TenantID 

# Set a default Azure subscription.
Select-AzureRmSubscription -SubscriptionName $SubscriptionName

# Create a new Resource Group 
New-AzureRmResourceGroup -Name $ResourceGroupName -Location $Location

# Create a new storage account.
New-AzureRmStorageAccount -ResourceGroupName $ResourceGroupName -Name $StorageAccountName -Location $Location -Type Standard_LRS

# Set a default storage account.
Set-AzureRmCurrentStorageAccount -StorageAccountName $StorageAccountName -ResourceGroupName $ResourceGroupName 

# Create a new container.
New-AzureStorageContainer -Name $ContainerName -Permission Off

# Upload a blob into a container.
Set-AzureStorageBlobContent -Container $ContainerName -File $ImageToUpload

# List all blobs in a container.
Get-AzureStorageBlob -Container $ContainerName

# Download blobs from the container:
# Get a reference to a list of all blobs in a container.
$blobs = Get-AzureStorageBlob -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

Известные проблемы при работе с PowerShellPowerShell known issues

Для пользовательских операций совместимым с Azure Stack Hub считается модуль Azure PowerShell 1.2.11.The current compatible Azure PowerShell module version for Azure Stack Hub is 1.2.11 for the user operations. Она отличается от последней версии Azure PowerShell.It's different from the latest version of Azure PowerShell. Это различие влияет на операции служб хранилища следующим образом.This difference impacts storage services operation in the following way:

Формат возвращаемого значения Get-AzureRmStorageAccountKey в версии 1.2.11 имеет два свойства: Key1 и Key2. Текущая версия Azure возвращает массив, содержащий все ключи учетной записи.The return value format of Get-AzureRmStorageAccountKey in version 1.2.11 has two properties: Key1 and Key2, while the current Azure version returns an array containing all the account keys.

# This command gets a specific key for a storage account, 
# and works for Azure PowerShell version 1.4, and later versions.
(Get-AzureRmStorageAccountKey -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-AzureRmStorageAccountKey -ResourceGroupName "RG01" `
-AccountName "MyStorageAccount").Key1

Дополнительные сведения см. в статье Get-AzureRmStorageAccountKey.For more information, see Get-AzureRmStorageAccountKey.

Azure CLIAzure CLI

Azure CLI — это интерфейс командной строки Azure для управления ресурсами Azure.The Azure CLI is Azure's command-line experience for managing Azure resources. Его можно установить на macOS, Linux и Windows и запускать из командной строки.You can install it on macOS, Linux, and Windows and run it from the command line.

Интерфейс Azure CLI предназначен для администрирования ресурсов Azure из командной строки, а также для создания скриптов автоматизации, которые работают с Azure Resource Manager.Azure CLI is optimized for managing and administering Azure resources from the command line, and for building automation scripts that work against the Azure Resource Manager. Он предоставляет практически те же функции, что и портал Azure Stack Hub, а также широкие возможности доступа к данным.It provides many of the same functions found in the Azure Stack Hub portal, including rich data access.

Для работы с Azure Stack Hub требуется Azure CLI 2.0 и выше.Azure Stack Hub requires Azure CLI version 2.0 or later. См. сведения о том, как выполнять развертывание и администрирование ресурсов в Azure Stack Hub с помощью Azure CLI.For more information about installing and configuring Azure CLI with Azure Stack Hub, see Install and configure Azure Stack Hub CLI. См. сведения о том, как использовать Azure CLI для выполнения некоторых задач с ресурсами в учетной записи хранения Azure Stack Hub.For more information about how to use the Azure CLI to perform several tasks working with resources in your Azure Stack Hub storage account, see Using the Azure CLI with Azure storage.

Пример скрипта Azure CLI для Azure Stack HubAzure CLI sample script for Azure Stack Hub

После установки и настройки CLI вы можете выполнить следующие шаги, чтобы проверить взаимодействие с ресурсами хранилища Azure Stack Hub, используя небольшой скрипт оболочки.Once you complete the CLI installation and configuration, you can try the following steps to work with a small shell sample script to interact with Azure Stack Hub storage resources. Этот скрипт выполняет следующие действия:The script completes the following actions:

  • Создает контейнер в учетной записи хранения.Creates a new container in your storage account.
  • Загружает в контейнер существующий файл (в виде большого двоичного объекта).Uploads an existing file (as a blob) to the container.
  • Создает список всех больших двоичных объектов в контейнере.Lists all blobs in the container.
  • Загружает файл в место назначения на указанном локальном компьютере.Downloads the file to a destination on your local computer that you specify.

Прежде чем выполнить этот скрипт, убедитесь, что подключение к целевой среде Azure Stack Hub установлено и вы можете выполнить вход.Before you run this script, make sure that you can successfully connect and sign in to the target Azure Stack Hub.

  1. Откройте текстовый редактор по выбору, а затем скопируйте и вставьте в него предыдущий скрипт.Open your favorite text editor, then copy and paste the preceding script into the editor.
  2. Обновите переменные скрипта в соответствии с параметрами конфигурации.Update the script's variables to reflect your configuration settings.
  3. После обновления необходимых переменных сохраните скрипт и выйдите из редактора.After you've updated the necessary variables, save the script, and exit your editor. В описанных ниже действиях предполагается, что скрипту присвоено имя my_storage_sample.sh.The next steps assume you've named your script my_storage_sample.sh.
  4. При необходимости пометьте скрипт как исполняемый файл: chmod +x my_storage_sample.shMark the script as executable, if necessary: chmod +x my_storage_sample.sh
  5. Выполните скрипт.Execute the script. например в Bash: ./my_storage_sample.shFor example, 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 AzureMicrosoft Azure Storage Explorer

Обозреватель службы хранилища Microsoft Azure — это изолированное приложение от корпорации Майкрософт.Azure Storage Explorer is a standalone app from Microsoft. Оно позволяет работать с данными из службы хранилища Azure и хранилища Azure Stack Hub на компьютерах Windows, macOS и Linux.It allows you to easily work with both Azure Storage and Azure Stack Hub Storage data on Windows, macOS, and Linux computers. Если вам нужен простой способ управлять данными в хранилище Azure Stack Hub, попробуйте Обозреватель службы хранилища Microsoft Azure.If you want an easy way to manage your Azure Stack Hub Storage data, then consider using Microsoft Azure Storage Explorer.

BlobfuseBlobfuse

Blobfuse — это виртуальный драйвер файловой системы для хранилища BLOB-объектов Azure, позволяющий получать доступ к имеющимся данным блочного BLOB-объекта в учетной записи хранения в файловой системе Linux.Blobfuse is a virtual file system driver for Azure Blob Storage, which allows you to access your existing block blob data in your storage account through the Linux file system. Хранилище BLOB-объектов Azure — это служба хранения объектов, не имеющая иерархического пространства имен.Azure Blob Storage is an object storage service and therefore doesn't have a hierarchical namespace. Драйвер blobfuse предоставляет это пространство имен, используя схему виртуального каталога с прямой косой чертой (/) в качестве разделителя.Blobfuse provides this namespace using the virtual directory scheme with the use of forward-slash / as a delimiter. Blobfuse работает в Azure и Azure Stack Hub.Blobfuse works on both Azure and Azure Stack Hub.

Дополнительные сведения о подключении хранилища BLOB-объектов в качестве файловой системы с использованием blobfuse в Linux см. в разделе Как подключить хранилище BLOB-объектов в качестве файловой системы с использованием blobfuse.To learn more about mounting blob storage as a file system with Blobfuse on Linux, see How to mount Blob storage as a file system with Blobfuse.

При настройке учетных данных учетной записи хранения на этапе подготовки к подключению для Azure Stack Hub необходимо указать параметры blobEndpoint, accountName, accountKey/sasToken и containerName.For Azure Stack Hub, blobEndpoint needs to be specified while configuring your storage account credentials along with accountName, accountKey/sasToken, and containerName.

В Пакете средств разработки Azure Stack для blobEndpoint должно быть задано значение myaccount.blob.local.azurestack.external.In the Azure Stack Development Kit (ASDK), the blobEndpoint should be myaccount.blob.local.azurestack.external. Если вы не знаете конечную точку для интегрированной системы Azure Stack Hub, обратитесь к администратору облака.In Azure Stack Hub integrated system, contact your cloud admin if you're not sure about your endpoint.

Значения accountKey и sasToken можно настраивать только поочередно.accountKey and sasToken can only be configured one at a time. Если указан ключ учетной записи хранения, файл конфигурации учетных данных имеет следующий формат.When a storage account key is given, the credentials configuration file is in the following format:

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

Если указан общий маркер доступа, файл конфигурации учетных данных имеет следующий формат.When a shared access token is given, the credentials configuration file is in the following format:

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

Дальнейшие действияNext steps