24/01/2020 | Autor: Claudio Romão | Categoria: Técnico | Comentários

Transferindo arquivos locais para uma storage account com o azcopy

As vezes precisamos mandar arquivos para uma storage account no Azure. Podemos fazer isso de várias maneiras, mas uma que geralmente uso é o AzCopy.

O AzCopy é um utilitário de linha de comando que nos ajuda a copiar arquivos locais ou de outras storage accounts para um nova storage account. Além disso, por ser uma linha de comando podemos usar ele em scripts.

Então vamos lá, primeira coisa que devemos fazer é baixar o AzCopy. Ele pode ser encontrado aqui: “AzCopy”

Feito isso, basta descompactar em alguma pasta no seu computador. No meu caso eu escolhi no d:\temp\azcopy, conforme imagem:

explorer com o azcopy
explorer com o azcopy

Agora, para facilitar nossa vida, vamos adicionar esse diretório nas variáveis de ambiente para poder chamar ele de qualquer local do seu computador. Para isso, abra uma janela de cmd e digite (Lembre de alterar para o diretório que você utilizou):

set PATH=%PATH%;D:\temp\azcopy

Feito isso, você já pode chamar o azcopy. Para testarmos, na própria command line digite:

azcopy --help

Você deverá ver a seguinte tela:

command line com resultado do comando azcopy help
command line com resultado do comando azcopy help

Pronto, agora precisamos criar uma storage account. Para criar uma storage account, acesse o portal do azure (http://portal.azure.com) e faça o login com o seu usuário. Depois disso na tela principal, na área de pesquisa, digite storage account, conforme imagem abaixo:

imagem do azure portal
imagem do azure portal

Com isso, nós iremos ver a tela para adicionar a storage account. Clique no botão Add

adicionando uma storage account
adicionando uma storage account

Preencha o formulário com a sua subscription e o resource group que você deseja colocar sua nova storage account.

resource group e subscription
resource group e subscription

Depois complemente com o nome da storage account e a região que você deseja criar

complemento criação storage account
complemento criação storage account

Agora clique no botão Review + create e depois da validação se tudo tiver certo, clique no botão Create. Aguarde o Azure criar a sua storage account. Assim que terminar, navegue até a página da sua nova storage account. pagina da storage account criada

Agora precisamos criar um container BLOB para subir nossos arquivos, para isso, na tela principal, clique em Containers conforme destacado na imagem anterior. Com isso você verá a seguinte tela:

pagina para criação de containers
pagina para criação de containers

Agora, clique no botão + e preencha com o nome do seu container

formulário de criação do container
formulário de criação do container

Pronto, seu container estará pronto.

Agora precisamos gerar uma SAS Key para utilizar no comando do Azcopy. Essa chave que vai permitir que consigamos subir arquivos para a nossa storage account.

Obs: existem outras maneiras de autenticação, mas nesse artigo estou usando o modelo de SAS Key.

Para gerarmos uma SAS Key, vamos no menu à esquerda e procurar pela opção: Shared Access signature, conforme imagem:

menu sas key
menu sas key

Nessa tela vamos definir as permissões que essa chave conterá e a data de validade. Aqui vou utilizar a padrão, mas você defina as permissões específicas.

formulário criação SAS Key
formulário criação SAS Key

formulário criação SAS Key
formulário criação SAS Key

Depois clique no botão Generate SAS and connection string e você verá a seguinte tela:

sas key gerada
sas key gerada

Copie o valor do campo SAS Token pois vamos precisar dele.

Com o token gerado, agora precisamos montar a url de acesso. Essa url é composta da seguinte forma:

[nm_storage_account].blob.core.window.net/[nm_container]?[SAS Token]

Com posse dessas informações, vamos agora executar o comando. Na command line digite:

azcopy copy "arquivo_diretorio_que_voce_deseja" "url_montada_no_passo_anterior."

command line az copy
command line az copy

Agora podemos navegar no portal do Azure e ver novamente nosso container e nosso arquivo estará lá.

arquivo dentro do container
arquivo dentro do container

Espero que tenha gostado e se tiver alguma dúvida específica me manda um e-mail ou deixe nos comentários.

Até a próxima, Claudio Romão