Utilize ferramentas de transferência de dados no armazenamento do hub da Azure Stack

O Azure Stack Hub fornece um conjunto de serviços de armazenamento para discos, bolhas, mesas, filas e funções de gestão de conta. Algumas ferramentas de Armazenamento Azure estão disponíveis se quiser gerir ou mover dados para ou a partir do Azure Stack Hub Storage. Este artigo fornece uma visão geral das ferramentas disponíveis.

Os seus requisitos determinam qual das seguintes ferramentas funciona melhor para si:

  • AzCopy

    Um utilitário de linha de comando específico de armazenamento que pode transferir para copiar dados de um objeto para outro objeto dentro ou entre as suas contas de armazenamento.

  • Azure PowerShell

    Uma concha baseada em tarefas, linha de comando e linguagem de script projetada especialmente para a administração do sistema.

  • CLI do Azure

    Uma ferramenta de código aberto, de plataforma cruzada que fornece um conjunto de comandos para trabalhar com as plataformas Azure Stack Hub.

  • Explorador de Armazenamento do Microsoft Azure

    Uma aplicação autónoma de fácil utilização com interface de utilizador.

  • Rio Blobfuse

    Um controlador de sistema de ficheiros virtual para o Azure Blob Storage, que permite aceder aos dados de blob existentes na sua conta de armazenamento através do sistema de ficheiros Linux.

Devido às diferenças de serviços de armazenamento entre o Azure e o Azure Stack Hub, pode haver alguns requisitos específicos para cada ferramenta descrita nas seguintes secções. Para uma comparação entre o Azure Stack Hub Storage e o Azure Storage, consulte o Azure Stack Hub Storage: Diferenças e considerações.

AzCopy

AzCopy é um utilitário de linha de comando projetado para copiar dados de e para o Microsoft Azure blob e armazenamento de mesa usando comandos simples com o melhor desempenho. Pode copiar dados de um objeto para outro dentro ou entre as suas contas de armazenamento.

Descarregue e instale o AzCopy

Configuração e limites AzCopy 10.1

O AzCopy 10.1 é agora capaz de ser configurado para usar versões API mais antigas. Isto permite suporte (limitado) para Azure Stack Hub. Para configurar a versão API para a AzCopy para suportar o Azure Stack Hub, deite a AZCOPY_DEFAULT_SERVICE_API_VERSION variável ambiental para 2017-11-09 .

Sistema operativo Comando
Windows Numa utilização rápida de comando: set AZCOPY_DEFAULT_SERVICE_API_VERSION=2017-11-09
Na utilização do 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

No AzCopy 10.1, as seguintes funcionalidades são suportadas para Azure Stack Hub:

Funcionalidade Ações suportadas
Gerir o recipiente Criar um contentor
Listar conteúdo de contentores
Gerir o trabalho Exibir trabalhos
Retomar um trabalho
Remover bolha Remover uma única bolha
Remover diretório virtual completo ou parcial
Carregar o ficheiro Carregar um ficheiro
Faça upload de um diretório
Faça upload do conteúdo de um diretório
Transferir ficheiro Transferir um ficheiro
Faça o download de um diretório
Descarregue o conteúdo de um diretório
Synchronize ficheiro Sincronizar um contentor para um sistema de ficheiros local
Sincronizar um sistema de ficheiros local para um contentor

Nota

  • O Azure Stack Hub não suporta fornecer credenciais de autorização à AzCopy utilizando o Azure Ative Directory (AD). Tem de aceder a objetos de armazenamento no Azure Stack Hub utilizando um token de Assinatura de Acesso Partilhado (SAS).
  • O Azure Stack Hub não suporta a transferência de dados sincronizada entre duas localizações blob do Azure Stack Hub e entre o Azure Storage e o Azure Stack Hub. Não é possível usar o "azcopy cp" para mover dados do Azure Stack Hub para o Azure Storage (ou o contrário) diretamente com o AzCopy 10.1.

Exemplos de comandos AzCopy para transferência de dados

Os exemplos a seguir seguem cenários típicos para copiar dados de e para as bolhas do Azure Stack Hub. Para saber mais, consulte Começar com a AzCopy.

Descarregue todas as bolhas para um disco local

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

Faça o upload de um único ficheiro para o diretório virtual

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

AzCopy questões conhecidas

  • Qualquer operação AzCopy num armazenamento de ficheiros não está disponível porque o armazenamento de ficheiros ainda não está disponível no Azure Stack Hub.
  • Se pretender transferir dados entre duas localizações blob do Azure Stack Hub -- ou entre o Azure Stack Hub e o Azure Storage utilizando o AzCopy 10.1 -- você precisa baixar os dados para uma localização local primeiro, e depois recarregar para o diretório-alvo no Azure Stack Hub ou Azure Storage. Ou pode usar a AzCopy 7.1 e especificar a transferência com a opção /SyncCopy para copiar os dados.
  • A versão Linux do AzCopy suporta apenas a atualização de 1802 ou versões posteriores e não suporta o serviço Table.
  • Se pretender copiar dados de e para o seu serviço de armazenamento de Mesa Azure, instale a versão AzCopy 7.3.0

Azure PowerShell

Azure PowerShell é um módulo que fornece cmdlets para gerir serviços tanto no Azure como no Azure Stack Hub. É uma linguagem baseada em tarefas, linha de comando e scripting projetada especialmente para a administração do sistema.

Instalar e Configurar PowerShell para Azure Stack Hub

Os módulos Azure Stack Hub compatíveis com Azure PowerShell são necessários para trabalhar com o Azure Stack Hub. Para obter mais informações, consulte instalar o PowerShell para O Azure Stack Hub e configurar o ambiente powerShell do utilizador do Azure Stack Hub.

Script de amostra powerShell para Azure Stack Hub

Esta amostra pressupõe que instalou com sucesso o PowerShell para o Azure Stack Hub. Este script irá ajudá-lo a completar a configuração e pedir às credenciais de inquilino do Azure Stack Hub para adicionar a sua conta ao ambiente local powerShell. O script irá então definir a subscrição padrão do Azure, criar uma nova conta de armazenamento em Azure, criar um novo recipiente nesta nova conta de armazenamento e carregar um ficheiro de imagem existente (blob) para aquele recipiente. Depois do script listar todas as bolhas nesse recipiente, criará um novo diretório de destino no seu computador local e descarregará o ficheiro de imagem.

  1. Instale os módulos Azure Stack Hub compatíveis com o Azure PowerShell.
  2. Descarregue as ferramentas necessárias para trabalhar com o Azure Stack Hub.
  3. Abra o Windows PowerShell ISE e corra como administrador e, em seguida, clique em File > New para criar um novo ficheiro de script.
  4. Copie o script abaixo e cole-o para o novo ficheiro de script.
  5. Atualize as variáveis de script com base nas definições de configuração.

    Nota

    Este guião tem de ser executado no diretório de raiz para 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

Questões conhecidas powerShell

Get-AzStorageAccountKey diferença

A versão atual do módulo Azure PowerShell para Azure Stack Hub é 1.2.11 para as operações do utilizador. É diferente da versão mais recente do Azure PowerShell. Esta diferença afeta a operação dos serviços de armazenamento da seguinte forma:

O formato de valor de retorno da Get-AzStorageAccountKey versão 1.2.11 tem duas propriedades: Key1 Key2 e, enquanto a versão atual do Azure devolve uma matriz contendo todas as teclas da conta.

# 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

Para mais informações, consulte o Get-AzureRMStorageAccountKey.

Bolha de cópia entre clusters Azure Stack Hub

Start-AzStorageBlobCopy pode ser usado para iniciar um trabalho de cópia para mover uma bolha. Ao definir a gravata adequada AbsoluteUri como o uri blob em outro cluster Azure Stack Hub, este cmdlet pode ser usado para copiar bolha entre dois clusters Azure Stack Hub. Certifique-se de que os clusters Azure Stack Hub de origem e destino estão na mesma versão de atualização. Atualmente, o Azure Stack Hub não suporta a Start-AzStorageBlobCopy utilização para copiar blob entre dois clusters Azure Stack Hub que implementaram diferentes versões de atualização.

CLI do Azure

A CLI do Azure é a experiência da linha de comandos do Azure para a gestão de recursos do Azure. Pode instalá-lo no macOS, Linux e Windows e executá-lo a partir da linha de comando.

O Azure CLI está otimizado para gerir e administrar recursos Azure a partir da linha de comando, e para a construção de scripts de automação que funcionam contra o Gestor de Recursos Azure. Fornece muitas das mesmas funções encontradas no portal Azure Stack Hub, incluindo acesso a dados ricos.

O Azure Stack Hub requer a versão 2.0 do Azure CLI ou mais tarde. Para obter mais informações sobre a instalação e configuração do Azure CLI com o Azure Stack Hub, consulte instalar e configurar o Azure Stack Hub CLI. Para obter mais informações sobre como utilizar o CLI Azure para executar várias tarefas que funcionam com recursos na sua conta de armazenamento Azure Stack Hub, consulte utilizar o CLI Azure com armazenamento Azure.

Guião de amostra de Azure CLI para Azure Stack Hub

Assim que concluir a instalação e configuração do CLI, pode experimentar os seguintes passos para trabalhar com um pequeno script de amostra de concha para interagir com os recursos de armazenamento do Azure Stack Hub. O script completa as seguintes ações:

  • Cria um novo recipiente na sua conta de armazenamento.
  • Envia um ficheiro existente (como uma bolha) para o recipiente.
  • Lista todas as bolhas no recipiente.
  • Descarrega o ficheiro para um destino no seu computador local que especifica.

Antes de executar este script, certifique-se de que pode ligar e iniciar seduca com sucesso no hub de Azure Stack.

  1. Abra o seu editor de texto favorito, em seguida, copie e cole o script anterior no editor.
  2. Atualize as variáveis do script para refletir as definições da configuração.
  3. Depois de atualizar as variáveis necessárias, guarde o script e saia do seu editor. Os próximos passos pressupõem que nomeou o seu guião my_storage_sample.sh.
  4. Marque o guião como executável, se necessário: chmod +x my_storage_sample.sh
  5. Execute o script. Por exemplo, em 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"

Explorador de Armazenamento do Microsoft Azure

Azure Storage Explorer é uma aplicação autónoma da Microsoft. Permite-lhe trabalhar facilmente com os dados de armazenamento Azure Storage e Azure Stack Hub em computadores Windows, macOS e Linux. Se quiser uma forma fácil de gerir os seus dados de Armazenamento Azure Stack Hub, considere utilizar o Microsoft Azure Storage Explorer.

Rio Blobfuse

O Blobfuse é um controlador de sistema de ficheiros virtual para o Azure Blob Storage, que permite aceder aos dados de blob existentes na sua conta de armazenamento através do sistema de ficheiros Linux. O Azure Blob Storage é um serviço de armazenamento de objetos e, portanto, não tem um espaço hierárquico de nomes. Blobfuse fornece este espaço de nome usando o esquema de diretório virtual com o uso de forward-slash / como um delimitador. Blobfuse trabalha no Azure e no Azure Stack Hub.

Para saber mais sobre a montagem do armazenamento de blob como um sistema de ficheiros com Blobfuse no Linux, consulte Como montar o armazenamento blob como um sistema de ficheiros com Blobfuse.

Para o Azure Stack Hub, o blobEndpoint precisa de ser especificado enquanto configura as credenciais da sua conta de armazenamento juntamente com o Nome de Conta, a contaKey/sasToken e o nome do contentor.

No Kit de Desenvolvimento de Pilhas Azure (ASDK), o blobEndpoint deve ser myaccount.blob.local.azurestack.external . No sistema integrado Azure Stack Hub, contacte o administrador da nuvem se não tiver a certeza sobre o seu ponto final.

accountKey e sasToken só podem ser configurados um de cada vez. Quando uma chave de conta de armazenamento é dada, o ficheiro de configuração de credenciais está no seguinte formato:

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

Quando um token de acesso partilhado é dado, o ficheiro de configuração de credenciais está no seguinte formato:

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

Passos seguintes