Solucionar problemas com o AzCopy v10

Este artigo descreve problemas comuns que você pode encontrar ao usar o AzCopy, ajuda você a identificar as causas desses problemas e, em seguida, sugere maneiras de resolve-los.

Identificando problemas

Você pode determinar se um trabalho é bem-sucedido olhando para o código de saída.

Se o código de saída for 0-success, o trabalho será concluído com êxito.

Se o código de saída for 1-error, examine o arquivo de log. Depois de entender a mensagem de erro exata, torna-se muito mais fácil pesquisar as palavras-chave certas e descobrir a solução. Para saber mais, confira Localizar erros e retomar trabalhos usando arquivos de log e plano no AzCopy.

Se o código de saída for 2-panic, marcar que o arquivo de log existirá. Se o arquivo não existir, arquive um bug ou entre em contato para dar suporte.

Se o código de saída for qualquer outro código de saída não zero, ele poderá ser um código de saída do sistema. Por exemplo, OOMKilled. Verifique a documentação do sistema operacional para obter códigos de saída especiais.

403 erros

É comum encontrar 403 erros. Às vezes são benignos e não resultam em uma transferência com falha. Por exemplo, nos logs do AzCopy, você pode ver que uma solicitação HEAD recebeu 403 erros. Esses erros aparecem quando o AzCopy verifica se um recurso é público. Na maioria dos casos, você pode ignorar essas instâncias.

Em alguns casos, 403 erros podem resultar em uma transferência com falha. Se isso acontecer, outras tentativas de transferência de arquivos provavelmente falharão até que você resolve o problema. 403 erros podem ocorrer como resultado de problemas de autenticação e autorização. Elas também podem ocorrer quando as solicitações são bloqueadas devido à configuração do firewall da conta de armazenamento.

Problemas de autenticação/autorização

403 erros que impedem a transferência de dados ocorrem devido a problemas com tokens SAS, funções de RBAC (controle de acesso baseado em função) e configurações de ACL (lista de controle de acesso).

Tokens SAS

Se você estiver usando um token SAS (assinatura de acesso compartilhado), verifique o seguinte:

  • Os tempos de expiração e início do token SAS são apropriados.

  • Você selecionou todas as permissões necessárias para o token.

  • Você gerou o token usando um SDK ou uma ferramenta oficial. Tente Gerenciador de Armazenamento se ainda não tiver.

Azure RBAC

Se você estiver usando funções RBAC do Azure por meio do azcopy login comando, verifique se você tem as funções apropriadas do Azure atribuídas à sua identidade (por exemplo, a função Colaborador de Dados de Blobs de Armazenamento).

Para saber mais sobre as funções do Azure, confira Atribuir uma função do Azure para acesso aos dados de blob.

Acls

Se você estiver usando ACLs (listas de controle de acesso), verifique se sua identidade aparece em uma entrada ACL para cada arquivo ou diretório que você pretende acessar. Além disso, verifique se cada entrada ACL reflete o nível de permissão apropriado.

Para saber mais sobre acLs e entradas ACL, consulte AcLs (listas de controle de acesso) em Azure Data Lake Storage Gen2.

Para saber mais sobre como incorporar funções do Azure junto com ACLs e como o sistema as avalia para tomar decisões de autorização, consulte Modelo de controle do Access em Azure Data Lake Storage Gen2.

Problemas de firewall e ponto de extremidade privado

Se a configuração do firewall de armazenamento não estiver configurada para permitir o acesso do computador em que o AzCopy está em execução, as operações do AzCopy retornarão um erro HTTP 403.

Transferir dados de ou para um computador local

Se você estiver carregando ou baixando dados entre uma conta de armazenamento e um computador local, verifique se o computador que executa o AzCopy poderá acessar a conta de armazenamento de origem ou de destino. Talvez seja necessário usar regras de rede IP nas configurações de firewall das contas de origem ou de destino para permitir o acesso do endereço IP público do computador.

Transferir dados entre contas de armazenamento

403 erros de autorização podem impedir a transferência de dados entre contas usando o computador cliente em que o AzCopy está em execução.

Se você estiver copiando dados entre contas de armazenamento, verifique se o computador que executa o AzCopy poderá acessar a origem e a conta de destino. Talvez seja necessário usar regras de rede IP nas configurações de firewall das contas de origem e de destino para permitir o acesso do endereço IP público do computador. O serviço usará o endereço IP do computador cliente do AzCopy para autorizar a origem ao tráfego de destino. Para saber como adicionar um endereço IP público às configurações de firewall de uma conta de armazenamento, confira Conceder acesso de um intervalo de IP da Internet.

Caso sua VM não tenha ou não possa ter um endereço IP público, considere usar um ponto de extremidade privado. Consulte Usar pontos de extremidade privados para Armazenamento do Azure.

Link Privado está no nível de rede virtual (VNet)/sub-rede. Se você quiser que as solicitações do AzCopy passem por Link Privado, o AzCopy deverá fazer essas solicitações de uma VM em execução nessa VNet/sub-rede. Por exemplo, se você configurar Link Privado na VNet1/Subnet1, mas a VM na qual o AzCopy é executado está na VNet1/Subnet2, as solicitações do AzCopy não usarão Link Privado e espera-se que elas falhem.

Se você encontrar erros TCP como "dial tcp: lookup proxy.x.x: no such host", isso significa que seu ambiente não está configurado para usar o proxy correto ou você está usando um proxy avançado que o AzCopy não reconhece.

Você precisa atualizar as configurações de proxy para refletir as configurações corretas. Consulte Configurar configurações de proxy.

Você também pode ignorar o proxy definindo a variável NO_PROXY="*"de ambiente .

Aqui estão os pontos de extremidade que o AzCopy precisa usar:

Fazer logon em pontos de extremidade Pontos de extremidade do Armazenamento do Azure
login.microsoftonline.com (Azure global) (blob | file | dfs).core.windows.net (Azure global)
login.chinacloudapi.cn (Azure China) (blob | file | dfs).core.chinacloudapi.cn (Azure China)
login.microsoftonline.de (Azure Alemanha) (blob | file | dfs).core.cloudapi.de (Azure Alemanha)
login.microsoftonline.us (Governo dos EUA do Azure) (blob | file | dfs).core.usgovcloudapi.net (Governo dos EUA do Azure)

x509: certificado assinado por autoridade desconhecida

Esse erro geralmente está relacionado ao uso de um proxy, que está usando um certificado SSL (Secure Sockets Layer) que não é confiável pelo sistema operacional. Verifique suas configurações e verifique se o certificado é confiável no nível do sistema operacional.

Recomendamos adicionar o certificado ao repositório de certificados raiz do computador, pois é onde as autoridades confiáveis são mantidas.

Parâmetros não reconhecidos

Se você receber uma mensagem de erro informando que seus parâmetros não são reconhecidos, verifique se você está usando a versão correta do AzCopy. O AzCopy V8 e versões anteriores são preteridos. O AzCopy V10 é a versão atual e é uma reescrita completa que não compartilha nenhuma sintaxe com as versões anteriores. Consulte Guia de Migração do AzCopy para v8 a v10.

Além disso, utilize mensagens de ajuda internas usando a opção -h com qualquer comando (por exemplo: azcopy copy -h). Consulte Obter ajuda de comando. Para exibir as mesmas informações online, consulte azcopy copy.

Para ajudar você a entender os comandos, fornecemos uma ferramenta de educação localizada no GUIA DE COMANDO do AZCOPY. Esta ferramenta demonstra os comandos AzCopy mais populares junto com os sinalizadores de comando mais populares. Nossos exemplos estão aqui. Se você tiver uma pergunta, tente pesquisar primeiro os problemas existentes do GitHub para ver se ele já foi respondido.

Erro de política de acesso condicional

Você pode receber o seguinte erro ao invocar o azcopy login comando:

Falha ao executar o comando de logon: falha ao fazer logon com tenantID "common", ponto de extremidade do diretório do Azure "https://login.microsoftonline.com", autorest/adal/devicetoken: -REDACTED- AADSTS50005: o usuário tentou fazer logon em um dispositivo de uma plataforma (Desconhecida) que atualmente não tem suporte por meio da política de Acesso Condicional. As plataformas de dispositivo com suporte são: sabores iOS, Android, Mac e Windows. ID de rastreamento: -REDACTED- ID de correlação: -REDACTED- Carimbo de data/hora: 2021-01-05 01:58:28Z

Esse erro significa que o administrador configurou uma política de acesso condicional que especifica de que tipo de dispositivo você pode fazer logon. O AzCopy usa o fluxo de código do dispositivo, o que não pode garantir que o computador em que você está usando a ferramenta AzCopy também seja onde você está fazendo logon.

Se seu dispositivo estiver entre a lista de plataformas com suporte, você poderá usar Gerenciador de Armazenamento, que integra o AzCopy para todas as transferências de dados (ele passa tokens para o AzCopy por meio do repositório secreto), mas fornece um fluxo de trabalho de logon que dá suporte à passagem de informações do dispositivo. O próprio AzCopy também dá suporte a identidades gerenciadas e entidades de serviço, que poderiam ser usadas como alternativa.

Se o dispositivo não estiver na lista de plataformas com suporte, entre em contato com o administrador para obter ajuda.

Servidor ocupado, erros de rede ou tempo limite

Se você vir um grande número de solicitações com falha com o status "503 Servidor Ocupado", suas solicitações estão sendo limitadas pelo serviço de armazenamento. Se você vir erros de rede ou tempo limite, talvez esteja tentando enviar muitos dados em sua infraestrutura e essa infraestrutura está tendo dificuldades para lidar com isso. Em todos os casos, a solução alternativa é semelhante.

Se você vir um arquivo grande falhando repetidamente devido a determinadas partes falhando todas as vezes, tente limitar as conexões de rede simultâneas ou o limite de taxa de transferência, dependendo do caso específico. Sugerimos que você reduza drasticamente o desempenho no início, observe se ele resolveu o problema inicial e, em seguida, aumente o desempenho novamente até que um equilíbrio geral seja alcançado.

Para obter mais informações, consulte Otimizar o desempenho do AzCopy com o Armazenamento do Azure.

Se você estiver copiando dados entre contas usando o AzCopy, a qualidade e a confiabilidade da rede de onde você executa o AzCopy, poderá afetar o desempenho geral. Embora os dados sejam transferidos de servidor para servidor, o AzCopy inicia chamadas para cada arquivo copiar entre pontos de extremidade de serviço.

Restrições conhecidas com a AzCopy

  • Não há suporte para copiar dados de nuvens governamentais para nuvens comerciais. No entanto, há suporte para copiar dados de nuvens comerciais para nuvens governamentais.

  • Não há suporte para cópias assíncronas do lado do serviço. O AzCopy executa somente cópia síncrona. Em outras palavras, quando o trabalho terminar, os dados serão movidos.

  • Ao copiar para um compartilhamento de arquivos do Azure, se você esqueceu de especificar o sinalizador --preserve-smb-permissions e não quiser transferir os dados novamente, considere usar o Robocopy para trazer as permissões.

  • Azure Functions tem um ponto de extremidade diferente para autenticação MSI, que o AzCopy ainda não dá suporte.

Confira também

Entre em contato conosco para obter ajuda

Se você tiver dúvidas ou precisar de ajuda, crie uma solicitação de suporte ou peça ajuda à comunidade de suporte do Azure. Você também pode enviar comentários sobre o produto para a comunidade de comentários do Azure.