Compartilhar via


Solucionar problemas no AzCopy v10

Este artigo discute problemas comuns que você pode encontrar ao usar o AzCopy. Este artigo também ajuda a identificar as causas dos problemas e sugere como resolvê-los.

Identificando problemas

Você pode determinar se um trabalho teve êxito examinando o código de saída.

Se o código de saída for 0-success, o trabalho foi 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 corretas e determinar a solução. Para saber mais, confira Localizar erros e retomar trabalhos usando arquivos de log e de plano no AzCopy.

Se o código de saída for 2-panic, verifique se o arquivo de log existe. Se o arquivo não existir, registre um bug ou entre em contato com o suporte.

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

Erros "403"

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

Problemas de autenticação e autorização

Os erros "403" que impedem a transferência de dados ocorrem devido a problemas que envolvem tokens SAS, funções RBAC do Azure (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:

  • Se as horas de expiração e início do token SAS são apropriadas.

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

  • Se você gerou o token usando um SDK ou uma ferramenta oficial. Experimente usar o Gerenciador de Armazenamento caso ainda não tenha feito isso.

RBAC do Azure

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 do Blob de Armazenamento).

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

ACLs

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

Para saber mais sobre as ACLs e as entradas de ACL, confira Gerenciar ACLs (listas de controle de acesso) no Azure Data Lake Storage Gen2.

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

Problemas de firewall e de pontos de extremidade privados

Se a configuração do firewall de armazenamento não permitir o 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 a definição de configuração Escopo permitido para 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ê a 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 copiar apenas contas que estão dentro do mesmo locatário do Microsoft Entra que a conta de destino.
PrivateLink Permite copiar apenas contas de armazenamento que tenham links privados para a mesma rede virtual que a conta de destino.

Para obter mais informações sobre essa propriedade e sua definição de 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 que você transfira 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 conta de origem e 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 AzCopy para autorizar o tráfego de origem para destino. Para saber como adicionar um endereço IP público às configurações de firewall de uma conta de armazenamento, confira Permitir acesso de um intervalo de IP da Internet.

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

O Link Privado está no nível da rede virtual/sub-rede. Se você quiser que as solicitações do AzCopy passem pelo Link Privado, o AzCopy deverá fazer essas solicitações de uma VM em execução nessa rede virtual/sub-rede. Por exemplo, suponha que você configure o Link Privado em VNet1/Subnet1, mas a VM na qual o AzCopy é executado esteja em 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 de TCP, como "discar tcp: lookup proxy.x.x: no such host", isso significa que seu ambiente não está configurado para usar o proxy correto ou que 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. Confira Definir as 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 exige:

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 (Azure US Government) (blob | file | dfs).core.usgovcloudapi.net (Azure US Government)

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 para o sistema operacional. Verifique as configurações e veja 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, pois é lá que 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 foram preteridos. AzCopy v10 é a versão atual e é uma reescrita completa que não compartilha nenhuma sintaxe com as versões anteriores. Consulte o Guia de Migração do AzCopy para v8 para v10.

Além disso, certifique-se de usar mensagens de ajuda internas usando a -h opção junto com qualquer comando (por exemplo, azcopy copy -h). Confira Obter ajuda de comando. Para ver as mesmas informações online, confira cópia do azcopy.

Para ajudá-lo a entender os comandos, fornecemos uma ferramenta de educação localizada no guia de comandos do AzCopy. Essa ferramenta demonstra os comandos AzCopy mais populares junto com os sinalizadores de comando mais populares. Para localizar comandos de exemplo, consulte Transferir dados. Se você tiver uma pergunta, tente pesquisar os problemas existentes do GitHub primeiro para ver se ela já foi respondida.

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: iOS, Android, Mac e variantes do Windows. ID do rastreamento: -REDIGIDO- ID da correlação: -REDIGIDO- 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 seu dispositivo estiver entre a lista de plataformas suportadas, você poderá usar o Gerenciador de Armazenamento. O 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 uma alternativa de entrada.

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

Servidor ocupado, erros de rede ou tempos 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 tempos limite, pode estar tentando enviar muitos dados para sua infraestrutura lidar. Em todos esses casos, a solução alternativa é semelhante.

Se você vir um arquivo grande falhar repetidamente ao copiar porque determinadas partes falham a cada vez, tente limitar as conexões de rede simultâneas ou o limite de taxa de transferência, dependendo do seu caso específico. Sugerimos que você diminua drasticamente o desempenho no início, observe se essa ação resolveu o problema inicial e, em seguida, aumente o desempenho novamente até atingir um equilíbrio geral.

Para obter mais informações, confira 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ão afetar o desempenho geral. Embora os dados sejam transferidos de servidor para servidor, o AzCopy inicia chamadas para que cada arquivo seja copiado 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ópia assíncrona do lado do serviço. O AzCopy executa somente a cópia síncrona. Em outras palavras, quando o trabalho for concluído, os dados estarão transferidos.

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

  • O 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.