Usar ferramentas de transferência de dados no Armazenamento do Azure Stack Hub
O Azure Stack Hub fornece um conjunto de serviços de armazenamento para discos, blobs, tabelas, filas e funções de gerenciamento de conta. Algumas ferramentas de Armazenamento do Azure estarão disponíveis se você quiser gerenciar ou mover dados de ou para o Armazenamento do 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ê:
-
Um utilitário de linha de comando específico do armazenamento que você pode baixar para copiar dados de um objeto para outro objeto dentro ou entre suas contas de armazenamento.
-
Uma linguagem de script e shell de linha de comando baseada em tarefas projetada especialmente para administração do sistema.
-
Uma ferramenta multiplataforma de software livre que fornece um conjunto de comandos para trabalhar com as plataformas do Azure e do Azure Stack Hub.
Gerenciador do Armazenamento do Microsoft Azure
Um aplicativo autônomo fácil de usar com uma interface do usuário.
-
Um driver do sistema de arquivos virtual para Armazenamento de Blobs do Azure, que permite acessar os dados de blob de blocos existentes em sua conta de armazenamento por meio do sistema de arquivos do 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 seções a seguir. Para obter uma comparação entre o Armazenamento do Azure Stack Hub e o Armazenamento do Azure, confira Armazenamento do Azure Stack Hub: diferenças e considerações.
AzCopy
O AzCopy é um utilitário de linha de comando projetado para copiar dados de e para o armazenamento de blobs e tabelas do Microsoft Azure 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
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 o Azure Stack Hub.
Para configurar a versão da API para o AzCopy para dar suporte ao Azure Stack Hub, 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 Azure Stack Hub:
Recurso | Ações com suporte |
---|---|
Gerenciar contêiner | Criar um contêiner Listar o conteúdo dos contêineres |
Gerenciar trabalho | Exibir trabalhos Retomar um trabalho |
Remover blob | Remover um único blob Remover 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 Azure Stack Hub não dá suporte ao fornecimento de credenciais de autorização para o AzCopy usando Microsoft Entra ID. Você deve acessar objetos de armazenamento no Azure Stack Hub usando um token SAS (Assinatura de Acesso Compartilhado).
- O Azure Stack Hub não dá suporte à transferência de dados síncrona entre dois locais de blob do Azure Stack Hub e entre o Armazenamento do Azure e o Azure Stack Hub. Você não pode usar "azcopy cp" para mover dados do Azure Stack Hub para o Armazenamento do Azure (ou o contrário) diretamente com o AzCopy 10.1.
Exemplos de comando do AzCopy para transferência de dados
Os exemplos a seguir seguem cenários típicos para copiar dados de e para blobs do Azure Stack 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 do AzCopy em um armazenamento de arquivos não está disponível porque o armazenamento de arquivos ainda não está disponível no Azure Stack Hub.
- Se você quiser transferir dados entre dois locais de blob do Azure Stack Hub ou entre o Azure Stack Hub e o Armazenamento do Azure 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 Azure Stack Hub ou no Armazenamento do Azure. Ou você pode usar o AzCopy 7.1 e especificar a transferência com a opção /SyncCopy para copiar os dados.
- A versão do 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 Azure Stack Hub. É uma linguagem de script e shell de linha de comando baseada em tarefas projetada especialmente para administração do sistema.
Instalar e configurar o PowerShell para o Azure Stack Hub
Os módulos de Azure PowerShell compatíveis com o Azure Stack Hub são necessários para trabalhar com o Azure Stack Hub. Para obter mais informações, confira Instalar o PowerShell para o Azure Stack Hub e Configurar o ambiente do PowerShell do usuário do Azure Stack Hub.
Script de exemplo do PowerShell para o Azure Stack Hub
Este exemplo pressupõe que você instalou com êxito o PowerShell para o Azure Stack Hub. Esse script ajudará você a concluir a configuração e solicitará que suas credenciais de locatário do Azure Stack Hub adicionem sua conta ao ambiente local do PowerShell. Em seguida, o script 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 (blob) existente nesse contêiner. Depois que o script listar todos os blobs nesse contêiner, ele criará um diretório de destino no computador local e baixará o arquivo de imagem.
- Instale módulos de Azure PowerShell compatíveis com o Azure Stack Hub.
- Baixe as ferramentas necessárias para trabalhar com o Azure Stack Hub.
- Abra Windows PowerShell ISE e Executar como Administrador e clique em Arquivo>Novo para criar um novo arquivo de script.
- Copie o script abaixo e cole-o no novo arquivo de script.
- Atualize as variáveis de script com base nas 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
Get-AzStorageAccountKey diferença
A versão atual compatível Azure PowerShell módulo do Azure Stack Hub é 1.2.11 para as operações do usuário. É 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 retornado da Get-AzStorageAccountKey
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 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 obter mais informações, consulte Get-AzureRMStorageAccountKey.
Copiar blob entre clusters do Azure Stack Hub
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 do Azure Stack Hub, esse cmdlet pode ser usado para copiar o blob entre dois clusters do Azure Stack Hub. Verifique se os clusters do Azure Stack Hub de origem e de destino estão na mesma versão de atualização. Atualmente, o Azure Stack Hub não dá suporte ao uso Start-AzStorageBlobCopy
para copiar blob entre dois clusters do Azure Stack Hub que implantaram diferentes versões de atualização.
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.
A CLI do Azure é otimizada para gerenciar e administrar recursos do Azure da linha de comando e para criar scripts de automação que funcionam no Resource Manager do Azure. Ele fornece muitas das mesmas funções encontradas no portal do Azure Stack Hub, incluindo acesso a dados avançados.
O Azure Stack Hub requer a CLI do Azure versão 2.0 ou posterior. Para obter mais informações sobre como instalar e configurar a CLI do Azure com o Azure Stack Hub, consulte Instalar e configurar a CLI do Azure Stack Hub. Para obter mais informações sobre como usar a CLI do Azure para executar várias tarefas trabalhando com recursos em sua conta de armazenamento do Azure Stack Hub, consulte Usando a CLI do Azure com o armazenamento do Azure.
Script de exemplo da CLI do Azure para o Azure Stack Hub
Depois de concluir a instalação e a configuração da CLI, você poderá tentar as etapas a seguir para trabalhar com um script de exemplo de shell pequeno para interagir com os recursos de armazenamento do Azure Stack 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) no contêiner.
- Lista todos os blobs no contêiner.
- Baixa o arquivo para um destino no computador local que você especificar.
Antes de executar esse script, verifique se você pode se conectar e entrar com êxito no Azure Stack Hub de destino.
- Abra o editor de texto de sua preferência, e copie e cole o script anterior no editor.
- Atualize as variáveis do script para refletir as configurações.
- 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.
- Marque o script como executável, se necessário:
chmod +x my_storage_sample.sh
- 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 Armazenamento do Azure e do Armazenamento do Azure Stack Hub em computadores Windows, macOS e Linux. Se você quiser uma maneira fácil de gerenciar seus dados de Armazenamento do Azure Stack Hub, considere usar Gerenciador de Armazenamento do Microsoft Azure.
- Para saber mais sobre como configurar Gerenciador de Armazenamento do Azure para trabalhar com o Azure Stack Hub, confira Conectar Gerenciador de Armazenamento a uma assinatura do Azure Stack Hub.
- Para saber mais sobre Gerenciador de Armazenamento do Microsoft Azure, confira Introdução ao gerenciador de armazenamento
Blobfuse
O Blobfuse é um driver de sistema de arquivos virtual para Armazenamento de Blobs do Azure, que permite acessar os dados de blob de blocos existentes em sua conta de armazenamento por meio do sistema de arquivos Linux. Armazenamento de Blobs do Azure é um serviço de armazenamento de objetos e, portanto, não tem um namespace hierárquico. O Blobfuse fornece esse namespace usando o esquema de diretório virtual com o uso de forward-slash /
como delimitador. O Blobfuse funciona no Azure e no Azure Stack Hub.
Para saber mais sobre como montar o armazenamento de blobs como um sistema de arquivos com Blobfuse no Linux, confira Como montar o Armazenamento de Blobs como um sistema de arquivos com Blobfuse.
Para o Azure Stack Hub, blobEndpoint precisa ser especificado ao configurar suas credenciais de conta de armazenamento junto com accountName, accountKey/sasToken e containerName.
No ASDK (Azure Stack Development Kit), o blobEndpoint deve ser myaccount.blob.local.azurestack.external
. No sistema integrado do Azure Stack Hub, entre em contato com o 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