usar ferramentas de transferência de dados no Azure Stack Hub Armazenamento

Azure Stack Hub fornece um conjunto de serviços de armazenamento para discos, BLOBs, tabelas, filas e funções de gerenciamento de contas. algumas ferramentas de Armazenamento do Azure estarão disponíveis se você quiser gerenciar ou mover dados de ou para o Armazenamento Azure Stack Hub. Este artigo fornece uma visão geral das ferramentas disponíveis.

Seus requisitos determinam quais das seguintes ferramentas funcionam melhor para você:

  • AzCopy

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

  • Azure PowerShell

    Um shell de linha de comando baseado em tarefa e uma linguagem de script desenvolvida especialmente para a administração do sistema.

  • CLI do Azure

    Uma ferramenta de plataforma cruzada de software livre que fornece um conjunto de comandos para trabalhar com as plataformas do Hub do Azure e do Azure Stack.

  • Gerenciador do Armazenamento do Microsoft Azure

    Um aplicativo autônomo fácil de usar com uma interface do usuário.

  • Blobfuse

    um driver de sistema de arquivos virtual para Armazenamento de blob do Azure, que permite acessar seus dados de blob de blocos existentes em sua conta de armazenamento por meio do sistema de arquivos do Linux.

Devido a diferenças de serviços de armazenamento entre o Azure e o Hub de Azure Stack, pode haver alguns requisitos específicos para cada ferramenta descritas nas seções a seguir. para obter uma comparação entre Azure Stack Armazenamento de hub e Armazenamento do Azure, confira Armazenamento de hub Azure Stack: diferenças e considerações.

AzCopy

AzCopy é um utilitário de linha de comando projetado para copiar dados de e para Microsoft Azure armazenamento de blobs e tabelas usando comandos simples com desempenho ideal. Você pode copiar dados de um objeto para outro dentro ou entre suas contas de armazenamento.

Baixar e instalar o AzCopy

Baixe o AzCopy V10 +.

Configuração e limites do AzCopy 10,1

O AzCopy 10,1 agora pode ser configurado para usar versões mais antigas da API. Isso habilita o suporte (limitado) para Azure Stack Hub. Para configurar a versão da API para AzCopy para dar suporte ao Hub Azure Stack, defina a AZCOPY_DEFAULT_SERVICE_API_VERSION variável de ambiente como 2017-11-09 .

Sistema operacional Comando
Windows No prompt de comando, use: set AZCOPY_DEFAULT_SERVICE_API_VERSION=2017-11-09
No PowerShell, use: $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, há suporte para os seguintes recursos no Hub Azure Stack:

Recurso Ações com suporte
Gerenciar contêiner Criar um contêiner
Listar o conteúdo de contêineres
Gerenciar trabalho Exibir trabalhos
Retomar um trabalho
Remover blob Remover um único blob
Remover o diretório virtual inteiro ou parcial
Carregar arquivo Fazer upload de um arquivo
Carregar um diretório
Carregar o conteúdo de um diretório
Fazer download do arquivo Baixar um arquivo
Baixar um diretório
Baixar o conteúdo de um diretório
Sincronizar arquivo Sincronizar um contêiner com um sistema de arquivos local
Sincronizar um sistema de arquivos local com um contêiner

Observação

  • O Hub de Azure Stack não dá suporte para fornecer credenciais de autorização para AzCopy usando Azure Active Directory (AD). Você deve acessar os objetos de armazenamento no Hub Azure Stack usando um token SAS (assinatura de acesso compartilhado).
  • o hub de Azure Stack não dá suporte à transferência de dados síncrona entre dois locais de blob de Hub Azure Stack e entre o Azure Armazenamento e o Hub Azure Stack. você não pode usar "azcopy cp" para mover dados do Hub Azure Stack para o Armazenamento do Azure (ou o contrário) diretamente com o azcopy 10,1.

Exemplos de comando AzCopy para transferência de dados

Os exemplos a seguir seguem cenários típicos para copiar dados de e para Azure Stack blobs de Hub. Para saber mais, confira introdução ao AzCopy.

Baixar todos os BLOBs em um disco local

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

Carregar arquivo único no diretório virtual

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

Problemas conhecidos do AzCopy

  • Qualquer operação AzCopy em um armazenamento de arquivos não está disponível porque o armazenamento de arquivos ainda não está disponível no Hub Azure Stack.
  • se você quiser transferir dados entre dois locais de blob de Hub de Azure Stack, ou entre Azure Stack Hub e o Azure Armazenamento usando o AzCopy 10,1, será necessário baixar os dados para um local local primeiro e, em seguida, recarregar para o diretório de destino no Hub Azure Stack ou Armazenamento do Azure. Ou você pode usar AzCopy 7,1 e especificar a transferência com a opção /SyncCopy para copiar os dados.
  • A versão Linux do AzCopy dá suporte apenas à atualização 1802 ou versões posteriores e não dá suporte ao serviço tabela.
  • Se você quiser copiar dados de e para o serviço de armazenamento de tabelas do Azure, Instale o AzCopy versão 7.3.0

Azure PowerShell

Azure PowerShell é um módulo que fornece cmdlets para gerenciar serviços no Azure e no Hub de Azure Stack. É um shell de linha de comando baseado em tarefa e uma linguagem de script desenvolvida especialmente para a administração do sistema.

Instalar e configurar o PowerShell para Azure Stack Hub

os módulos de Azure PowerShell compatíveis com o hub Azure Stack são necessários para trabalhar com o hub do Azure Stack. Para obter mais informações, consulte instalar o PowerShell para Azure Stack Hub e Configurar o ambiente do PowerShell do usuário do Hub Azure Stack.

Script de exemplo do PowerShell para Azure Stack Hub

Este exemplo pressupõe que você instalou com êxito o PowerShell para Azure Stack Hub. Esse script o ajudará a concluir a configuração e solicitar suas credenciais de locatário do hub de Azure Stack para adicionar sua conta ao ambiente local do PowerShell. O script, em seguida, definirá a assinatura padrão do Azure, criará uma nova conta de armazenamento no Azure, criará um novo contêiner nessa nova conta de armazenamento e carregará um arquivo de imagem existente (BLOB) para esse contêiner. Depois que o script listar todos os BLOBs nesse contêiner, ele criará um novo diretório de destino no computador local e baixará o arquivo de imagem.

  1. instale Azure Stack módulos Azure PowerShell compatíveiscom o Hub.
  2. Baixe as ferramentas necessárias para trabalhar com o Hub de Azure Stack.
  3. abra Windows PowerShell ISE e execute como administradore, em seguida, clique em arquivonovo para criar um novo arquivo de script.
  4. Copie o script abaixo e cole-o no novo arquivo de script.
  5. Atualize as variáveis de script com base em suas definições de configuração.

    Observação

    Esse script deve ser executado no diretório 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

Problemas conhecidos do PowerShell

Diferença de Get-AzStorageAccountKey

a versão atual do módulo Azure PowerShell compatível para Azure Stack Hub é 1.2.11 para as operações do usuário. Ele é diferente da versão mais recente do Azure PowerShell. Essa diferença afeta a operação dos serviços de armazenamento da seguinte maneira:

O formato de valor de retorno de Get-AzStorageAccountKey na versão 1.2.11 tem duas propriedades: Key1 e Key2 , enquanto a versão atual do Azure retorna uma matriz que contém todas as chaves de 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 obter mais informações, consulte Get-AzureRMStorageAccountKey.

Copiar blob entre clusters de Hub de Azure Stack

Start-AzStorageBlobCopy pode ser usado para iniciar um trabalho de cópia para mover um blob. Ao definir a propriedade AbsoluteUri como o URI de BLOB em outro cluster de Hub de Azure Stack, esse cmdlet pode ser usado para copiar o blob entre dois clusters de Hub de Azure Stack. Verifique se os clusters de Hub Azure Stack de origem e destino estão na mesma versão de atualização. Atualmente, o Hub de Azure Stack não dá suporte ao uso do Start-AzStorageBlobCopy para copiar o blob entre dois clusters de Hub de Azure Stack que implantaram versões de atualização diferentes.

CLI do Azure

A CLI do Azure é a experiência de linha de comando do Azure para gerenciar recursos do Azure. você pode instalá-lo no macOS, Linux e Windows e executá-lo na linha de comando.

CLI do Azure é otimizado para gerenciar e administrar os recursos do Azure na linha de comando e para criar scripts de automação que funcionam no Azure Resource Manager. Ele fornece muitas das mesmas funções encontradas no portal do hub de Azure Stack, incluindo acesso a dados avançados.

Azure Stack Hub requer CLI do Azure versão 2,0 ou posterior. Para obter mais informações sobre como instalar e configurar CLI do Azure com Azure Stack Hub, consulte instalar e configurar a CLI do Hub Azure Stack. Para obter mais informações sobre como usar o CLI do Azure para executar várias tarefas trabalhando com recursos em sua conta de armazenamento de Hub de Azure Stack, consulte usando o CLI do Azure com o armazenamento do Azure.

CLI do Azure script de exemplo para o Hub de Azure Stack

Depois de concluir a instalação e a configuração da CLI, você pode tentar as etapas a seguir para trabalhar com um pequeno script de exemplo de Shell para interagir com Azure Stack recursos de armazenamento de Hub. O script conclui as seguintes ações:

  • Cria um novo contêiner na sua conta de armazenamento.
  • Carrega um arquivo existente (como um blob) para o contêiner.
  • Lista todos os BLOBs no contêiner.
  • Baixa o arquivo em um destino no computador local que você especificar.

Antes de executar esse script, certifique-se de que você pode se conectar com êxito e entrar no Hub de Azure Stack de destino.

  1. Abra o editor de texto de sua preferência, e copie e cole o script anterior no editor.
  2. Atualize as variáveis do script para refletir suas definições de configuração.
  3. Depois de atualizar as variáveis necessárias, salve o script e saia do editor. As próximas etapas pressupõem que você nomeou seu script como my_storage_sample.sh.
  4. Marque o script como executável, se necessário: chmod +x my_storage_sample.sh
  5. Execute o script. Por exemplo, no 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"

Gerenciador do Armazenamento do Microsoft Azure

Gerenciador de Armazenamento do Azure é um aplicativo autônomo da Microsoft. ele permite que você trabalhe facilmente com os dados do Azure Armazenamento e do Azure Stack Hub Armazenamento nos computadores Windows, macOS e Linux. se você quiser uma maneira fácil de gerenciar seu Azure Stack Hub Armazenamento dados, considere o uso de Gerenciador de Armazenamento do Microsoft Azure.

Blobfuse

Blobfuse é um driver de sistema de arquivos virtual para Armazenamento de blob do Azure, que permite que você acesse seus dados de blob de blocos existentes em sua conta de armazenamento por meio do sistema de arquivos do Linux. o Blob do Azure Armazenamento é um serviço de armazenamento de objeto e, portanto, não tem um namespace hierárquico. Blobfuse fornece esse namespace usando o esquema de diretório virtual com o uso de barra invertida / como um delimitador. O Blobfuse funciona no Hub do Azure e do Azure Stack.

Para saber mais sobre como montar o armazenamento de BLOBs como um sistema de arquivos com o Blobfuse no Linux, confira como montar o armazenamento de BLOBs como um sistema de arquivos com o Blobfuse.

Para Azure Stack Hub, blobEndpoint precisa ser especificado ao configurar suas credenciais de conta de armazenamento junto com AccountName, AccountKey/sasToken e ContainerName.

No Kit de Desenvolvimento do Azure Stack (ASDK), o blobEndpoint deve ser . No sistema integrado do Hub Azure Stack, entre em contato com seu administrador de nuvem se você não tiver certeza sobre seu ponto de extremidade.

accountKey e sasToken só podem ser configurados um de cada vez. Quando uma chave de conta de armazenamento é fornecida, o arquivo 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 compartilhado é fornecido, o arquivo de configuração de credenciais está no seguinte formato:

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

Próximas etapas