Solucionar problemas no AzCopy v10

Este artigo discute problemas comuns que você pode encontrar ao usar o AzCopy. Este artigo também ajuda você a identificar as causas dos problemas e sugere como 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, você pode pesquisar mais facilmente as palavras-chave certas e determinar 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 se o arquivo de log existe. Se o arquivo não existir, arquive um bug ou entre em contato para dar suporte.

Qualquer outro código de saída não zero (como OOMKilled) pode ser gerado pelo sistema. Verifique a documentação do sistema operacional para obter códigos de saída especiais.

Erros de "403"

Erros de "403" são comuns. Às vezes eles são benignos e não causam uma transferência com falha. Por exemplo, nos logs do AzCopy, você pode ver que uma solicitação HEAD recebeu erros de "403". 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, erros de "403" podem causar uma transferência com falha. Se esse problema ocorrer, outras tentativas de transferência de arquivos provavelmente falharão até que você resolve o problema. Erros de "403" podem ser causados por problemas de autenticação e autorização. Elas também podem ocorrer se as solicitações forem bloqueadas pela configuração de firewall da conta de armazenamento.

Problemas de autenticação e autorização

Erros "403" que impedem a transferência de dados ocorrem devido a problemas que envolvem 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ê usar um token SAS (assinatura de acesso compartilhado), verifique se as seguintes instruções são verdadeiras:

  • 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ê usar 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ê usar 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 permitir acesso do componente de hospedagem no qual o AzCopy está em execução, as operações do AzCopy retornarão um código de erro HTTP "403".

Observação

Neste artigo, o termo componente de hospedagem refere-se a um computador físico, máquina virtual (VM) ou contêiner.

Escopo permitido para operações de cópia

A AllowedCopyScope propriedade de uma conta de armazenamento é usada para especificar os ambientes dos quais você pode copiar dados para a conta de destino. Essa propriedade é exibida no portal do Azure como o escopo permitido para a configuração de operações de cópia (versão prévia). Por padrão, a propriedade não recebe um valor. A propriedade não retorna um valor até que você o defina explicitamente. A AllowedCopyScope propriedade tem três valores possíveis, conforme mostrado na tabela a seguir.

Valor Descrição
(null) (Valor padrão) Permite copiar de qualquer conta de armazenamento para a conta de destino.
Microsoft Entra ID Permite a cópia somente de contas que estão dentro do mesmo locatário Microsoft Entra que a conta de destino.
PrivateLink Permite copiar somente de contas de armazenamento que têm links privados para a mesma rede virtual que a conta de destino.

Para obter mais informações sobre essa propriedade e sua configuração associada, consulte Restringir a origem das operações de cópia a uma conta de armazenamento.

Transferir dados de ou para um componente de hospedagem local

Se você estiver carregando ou baixando dados entre uma conta de armazenamento e um componente de hospedagem local, verifique se o componente de hospedagem que executa o AzCopy pode 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 componente de hospedagem.

Transferir dados entre contas de armazenamento

Erros de autorização "403" podem impedir a transferência de dados entre contas usando o componente de hospedagem do cliente no qual o AzCopy está em execução.

Se você estiver copiando dados entre contas de armazenamento, verifique se o componente de hospedagem que executa o AzCopy pode 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 componente de hospedagem. O serviço usa o endereço IP do componente de hospedagem do cliente do AzCopy para autorizar o tráfego de origem ao 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/sub-rede. Se você quiser que as solicitações do AzCopy passem por Link Privado, o AzCopy deve fazer essas solicitações de uma VM que está em execução nessa rede virtual/sub-rede. Por exemplo, suponha que você configure Link Privado na VNet1/Subnet1, mas a VM na qual o AzCopy é executado está na VNet1/Subnet2. Nesse cenário, as solicitações do AzCopy não usam Link Privado e espera-se que as solicitações 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ê usa 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 requer:

Pontos de extremidade de entrada 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 que você adicione o certificado ao repositório de certificados raiz do componente de hospedagem porque é onde as autoridades confiáveis são mantidas.

Parâmetros não reconhecidos

Se você receber uma mensagem de erro que afirma que seus parâmetros não são reconhecidos, verifique se você está usando a versão correta do AzCopy. AzCopy v8 e versões anteriores são preteridas. 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, use mensagens de ajuda internas usando a opção -h em conjunto com qualquer comando (por exemplo, azcopy copy -h). Consulte Obter ajuda de comando. Para exibir as mesmas informações online, consulte azcopy copy.

Para ajudá-lo 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. Para encontrar comandos de exemplo, consulte Transferir dados. 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 o tipo de dispositivo do qual você pode entrar. O AzCopy usa o fluxo de código do dispositivo. O fluxo de código do dispositivo não pode garantir que o componente de hospedagem no qual você está usando a ferramenta AzCopy também seja de onde você está entrando.

Se o dispositivo estiver entre a lista de plataformas com suporte, você poderá usar Gerenciador de Armazenamento. Gerenciador de Armazenamento 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 entrada 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 como alternativa de entrada.

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 que têm o status "503 Servidor Ocupado", o serviço de armazenamento está limitando suas solicitações. Se você vir erros de rede ou tempo limite, talvez esteja tentando enviar muitos dados para sua infraestrutura lidar. Em todos os casos, a solução alternativa é semelhante.

Se você vir um arquivo grande repetidamente falhar para copiar porque determinadas partes falham 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 essa ação resolveu o problema inicial e, em seguida, aumente o desempenho novamente até obter um equilíbrio geral.

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 podem 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 no 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 --preserve-smb-permissions sinalizador 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. O AzCopy ainda não dá suporte à autenticação MSI.

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.