Mover blobs de Armazenamento do Azure usando AzCopy
O comando AzCopy é um utilitário de linha de comando especialmente criado e otimizado para mover dados para dentro e para fora do Armazenamento do Azure. Executando o AzCopy, você pode transferir em massa do sistema de arquivos local de um computador local para a nuvem.
Nesta unidade, você aprenderá a executar o utilitário AzCopy para carregar, baixar e transferir dados de blob entre contas de armazenamento.
O que é o AzCopy?
O utilitário AzCopy foi projetado e otimizado para executar transferências em massa em grande escala de dados de e para o Armazenamento do Azure. Execute o AzCopy para transferir estruturas de diretório inteiras do seu computador local para o Armazenamento de Blobs e vice-versa.
O AzCopy executa as operações de modo assíncrono e pode utilizar vários threads simultâneos para ler e escrever dados. Além disso, é tolerante a falhas. Se uma transferência for interrompida por algum motivo e falhar, o AzCopy pode retomar a operação de onde parou depois que a situação for resolvida.
A versão mais recente do AzCopy permite fazer backups incrementais de blobs e pode manter o conteúdo das contas de Armazenamento de Blobs sincronizado para que contenham a mesma versão de dados.
Carregar dados
Na linha de comando, você pode chamar AzCopy usando o nome azcopy
de todas as letras minúsculas , com mais parâmetros dependendo da operação que você deseja executar. Execute o azcopy copy
comando para carregar dados no Armazenamento do Azure. A forma mais simples deste comando copia um ficheiro para um blob. O exemplo a seguir carrega o conteúdo de um arquivo chamado myfile.txt para um blob, também chamado myfile.txt, para o contêiner mycontainer na conta myaccount Blob Storage. A conta de armazenamento e o contentor têm de já existir.
azcopy copy "myfile.txt" "https://myaccount.blob.core.windows.net/mycontainer/"
O comando AzCopy requer que você esteja autenticado e autorizado a acessar a conta de armazenamento. Se sua organização usa o Serviço de Federação do Ative Directory (ADFS), você pode autenticar executando o azcopy login
comando e entrando. Como alternativa, o proprietário de uma conta de armazenamento pode criar um token de assinatura de acesso compartilhado (SAS) que fornece acesso à conta de armazenamento. O token SAS é limitado no tempo e pode ser restrito para permitir apenas determinadas operações. Você fornece o token SAS como uma cadeia de caracteres de consulta para a URL de Armazenamento do Azure quando carrega ou baixa dados.
azcopy copy "myfile.txt" "https://myaccount.blob.core.windows.net/mycontainer/?<sas token>"
Pode carregar vários ficheiros e concluir as estruturas de pastas com o AzCopy. A --recursive=true
opção percorre a estrutura de pastas começando no ponto especificado e cria uma estrutura correspondente de blobs em seu contêiner no Armazenamento do Azure. Você também pode especificar que somente os arquivos cujos nomes correspondam a um padrão específico sejam carregados usando a correspondência de padrão curinga. O exemplo a seguir carrega todos os arquivos na pasta e subpastas myfolder .
azcopy copy "myfolder" "https://myaccount.blob.core.windows.net/mycontainer/?<sas token>" --recursive=true
Monitorizar e gerir tarefas
Lembre-se de que o AzCopy é executado de modo assíncrono. Se você estiver transferindo um grande número de arquivos, ou até mesmo alguns arquivos grandes, o AzCopy inicia seu upload e relata um resumo inicial. Em seguida, o comando continua sendo executado em segundo plano. Execute o AzCopy jobs list
comando para exibir o status dos comandos em execução e concluídos recentemente. Cada tarefa tem um ID, e pode ver os detalhes de uma tarefa com o comando AzCopy jobs show <id>
.
Se uma transferência AzCopy for interrompida, ela aparecerá na lista de trabalhos. Reinicie o trabalho executando o azcopy jobs resume <id>
comando.
Transferir dados
Execute o AzCopy copy
comando para baixar dados do Armazenamento de Blobs. O exemplo a seguir transfere os dados no blob myblob para uma pasta local chamada myblobdata.
azcopy copy "https://myaccount.blob.core.windows.net/mycontainer/myblob?<sas token>" "myblobdata"
Tal como nos carregamentos, pode utilizar carateres universais para transferir vários blobs com correspondência de nomes e iterar através da hierarquia do contentor de blobs com o sinalizador --recursive=true
.
Copie dados entre contas de armazenamento e sincronize o armazenamento
A utilização final do comando AzCopy copy
é transferir blobs entre contas de armazenamento. O exemplo a seguir copia os blobs de sourcecontainer na conta de armazenamento sourceaccount para destcontainer em destaccount. Este exemplo usa dois tokens SAS: um para a conta de origem e outro para a conta de destino.
azcopy copy "https://sourceaccount.blob.core.windows.net/sourcecontainer/*?<source sas token>" "https://destaccount.blob.core.windows.net/destcontainer/*?<dest sas token>"
O sinalizador --recursive=true
está disponível se o seu contentor tiver um conjunto hierárquico de blobs.
Quando a origem e o destino do comando AzCopy são ambas contas de Armazenamento do Azure, o comando executa a transferência usando o serviço de Armazenamento do Azure. Não transfere nem carrega blobs através do seu computador.
Outra maneira de copiar blobs entre contas de armazenamento é executar o AzCopy sync
comando. Este comando sincroniza o conteúdo de um contêiner de destino com um contêiner de origem. O comando copia blobs se eles não forem encontrados no destino ou se a hora da última modificação de um blob no destino for anterior ao blob correspondente na origem. Este comando também fornece o sinalizador --delete-destination
. Se você definir esse sinalizador como true, o AzCopy excluirá blobs no destino que não existem na origem. Use esta opção com cuidado.
Gerir blobs
Pode ver os blobs disponíveis num contentor com o comando AzCopy list
. O exemplo a seguir exibe os blobs no contêiner sourcecontainer .
azcopy list "https://sourceaccount.blob.core.windows.net/sourcecontainer?<sas token>"
Você pode criar um novo contêiner em uma conta de Armazenamento de Blob executando o AzCopy make
comando, desta forma.
azcopy make "https://myaccount.blob.core.windows.net/newcontainer?<sas token>"
Para remover um blob, execute o comando AzCopy remove
. Pode remover todos os blobs com nomes que correspondam a um padrão específico com o sinalizador --include-pattern
e pode percorrer um contentor hierárquico com o sinalizador --recursive
. O exemplo a seguir remove todos os blobs com o sufixo txt de mycontainer.
azcopy remove "https://myaccount.blob.core.windows.net/mycontainer?<sas token>" --include-pattern "*.txt" --recursive=true
Configurar a simultaneidade
Pode controlar o desempenho e a utilização de recursos do comando AzCopy, ao definir a variável de ambiente AZCOPY_CONCURRENCY_VALUE. AzCopy usa o valor dessa variável para especificar o número de threads simultâneos que ela usa para transferir dados. Por padrão, o valor é definido como 300. Pode reduzir este valor se precisar de controlar a largura de banda e a utilização da CPU das suas operações de cópia.