Mover blobs de Armazenamento do Azure usando AzCopy

Concluído

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 azcopyde 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.