Comparteix a través de


Solución de problemas en AzCopy v10

En este artículo se describen los problemas comunes que puede encontrar al usar AzCopy. Este artículo también le ayuda a identificar las causas de los problemas y sugiere cómo resolverlos.

Identificación de problemas

Puede determinar si un trabajo se realiza correctamente examinando el código de salida.

Si el código de salida es 0-success, el trabajo finalizó correctamente.

Si el código de salida es 1-error, examine el archivo de registro. Después de comprender el mensaje de error exacto, puede buscar más fácilmente las palabras clave adecuadas y determinar la solución. Para obtener más información, consulte Búsqueda de errores y reanudación de trabajos mediante archivos de registro y plan en AzCopy.

Si el código de salida es 2-panic, compruebe si el archivo de registro existe. Si el archivo no existe, escriba un error o póngase en contacto con el soporte técnico.

El sistema podría generar cualquier otro código de salida distinto de cero (como OOMKilled) . Consulte la documentación del sistema operativo para obtener códigos de salida especiales.

Errores "403"

Los errores "403" son comunes. A veces son benignos y no provocan una transferencia errónea. Por ejemplo, en los registros de AzCopy, es posible que vea que una HEAD solicitud recibió errores "403". Estos errores aparecen cuando AzCopy comprueba si un recurso es público. En la mayoría de los casos, puede omitir esas instancias.

En algunos casos, los errores "403" pueden provocar una transferencia con errores. Si se produce este problema, es probable que se produzcan errores en otros intentos de transferencia de archivos hasta que resuelva el problema. Los errores "403" pueden deberse a problemas de autenticación y autorización. También pueden producirse si la configuración del firewall de la cuenta de almacenamiento bloquea las solicitudes.

Problemas de autenticación y autorización

Los errores "403" que impiden la transferencia de datos se producen debido a problemas que implican tokens de SAS, roles de control de acceso basado en rol (RBAC de Azure) y configuraciones de lista de control de acceso (ACL).

Tokens de SAS

Si usa un token de firma de acceso compartido (SAS), asegúrese de que se cumplen las siguientes instrucciones:

  • Las horas de expiración e inicio del token de SAS son adecuadas.

  • Ha seleccionado todos los permisos necesarios para el token.

  • Ha generado el token mediante un SDK o una herramienta oficiales. Pruebe Explorador de Storage si aún no lo ha hecho.

Azure RBAC

Si usa roles de RBAC de Azure mediante el azcopy login comando , compruebe que tiene los roles de Azure adecuados asignados a su identidad (por ejemplo, el rol Colaborador de datos de Storage Blob).

Para más información sobre los roles de Azure, consulte Asignación de un rol de Azure para obtener acceso a los datos de blobs.

Acl

Si usa listas de control de acceso (ACL), compruebe que su identidad aparece en una entrada de ACL para cada archivo o directorio al que quiera acceder. Además, asegúrese de que cada entrada de ACL refleja el nivel de permiso adecuado.

Para obtener más información sobre las ACL y las entradas de ACL, consulte Listas de control de acceso (ACL) en Azure Data Lake Storage Gen2.

Para más información sobre cómo incorporar roles de Azure junto con ACL y cómo el sistema los evalúa para tomar decisiones de autorización, consulte Modelo de control de acceso en Azure Data Lake Storage Gen2.

Problemas de firewall y punto de conexión privado

Si la configuración del firewall de almacenamiento no permite el acceso desde el componente de hospedaje en el que se ejecuta AzCopy, las operaciones de AzCopy devuelven un código de error HTTP "403".

Nota:

En este artículo, el término componente de hospedaje hace referencia a un equipo físico, una máquina virtual (VM) o un contenedor.

Ámbito permitido para las operaciones de copia

La AllowedCopyScope propiedad de una cuenta de almacenamiento se usa para especificar los entornos desde los que puede copiar datos en la cuenta de destino. Esta propiedad se muestra en el Azure Portal como el valor de configuración Ámbito permitido para operaciones de copia (versión preliminar). De forma predeterminada, a la propiedad no se le asigna un valor. La propiedad no devuelve un valor hasta que se establece explícitamente. La AllowedCopyScope propiedad tiene tres valores posibles, como se muestra en la tabla siguiente.

Valor Descripción
(null) (Valor predeterminado) Permite copiar desde cualquier cuenta de almacenamiento a la cuenta de destino.
Microsoft Entra ID Permite copiar solo desde cuentas que están dentro del mismo inquilino Microsoft Entra que la cuenta de destino.
PrivateLink Permite copiar solo desde cuentas de almacenamiento que tienen vínculos privados a la misma red virtual que la cuenta de destino.

Para obtener más información sobre esta propiedad y su configuración asociada, vea Restringir el origen de las operaciones de copia a una cuenta de almacenamiento.

Transferencia de datos desde o a un componente de hospedaje local

Si va a cargar o descargar datos entre una cuenta de almacenamiento y un componente de hospedaje local, asegúrese de que el componente de hospedaje que ejecuta AzCopy pueda acceder a la cuenta de almacenamiento de origen o de destino. Es posible que tenga que usar reglas de red IP en la configuración de firewall de las cuentas de origen o de destino para permitir el acceso desde la dirección IP pública del componente de hospedaje.

Transferencia de datos entre cuentas de almacenamiento

Los errores de autorización "403" pueden impedir la transferencia de datos entre cuentas mediante el componente de hospedaje de cliente en el que se ejecuta AzCopy.

Si va a copiar datos entre cuentas de almacenamiento, asegúrese de que el componente de hospedaje que ejecuta AzCopy puede acceder tanto a la cuenta de origen como a la de destino. Es posible que tenga que usar reglas de red IP en la configuración de firewall de las cuentas de origen y de destino para permitir el acceso desde la dirección IP pública del componente de hospedaje. El servicio usa la dirección IP del componente de hospedaje de cliente de AzCopy para autorizar el tráfico de origen a destino. Para obtener información sobre cómo agregar una dirección IP pública a la configuración de firewall de una cuenta de almacenamiento, consulte Concesión de acceso desde un intervalo ip de Internet.

En caso de que la máquina virtual no tenga o no pueda tener una dirección IP pública, considere la posibilidad de usar un punto de conexión privado. Consulte Uso de puntos de conexión privados para Azure Storage.

Private Link está en el nivel de red virtual o subred. Si desea que las solicitudes de AzCopy pasen por Private Link, AzCopy debe realizar esas solicitudes desde una máquina virtual que se ejecuta en esa red virtual o subred. Por ejemplo, supongamos que configura Private Link en VNet1/Subnet1, pero la máquina virtual en la que se ejecuta AzCopy está en VNet1/Subnet2. En este escenario, las solicitudes de AzCopy no usan Private Link y se espera que se produzca un error en las solicitudes.

Si encuentra errores TCP como "dial tcp: lookup proxy.x.x: no hay tal host", esto significa que el entorno no está configurado para usar el proxy correcto o que usa un proxy avanzado que AzCopy no reconoce.

Tiene que actualizar la configuración del proxy para reflejar las configuraciones correctas. Consulte Configuración de proxy.

También puede omitir el proxy estableciendo la variable NO_PROXY="*"de entorno .

Estos son los puntos de conexión que AzCopy requiere:

Puntos de conexión de inicio de sesión Puntos de conexión de Azure Storage
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 Alemania) (blob | file | dfs).core.cloudapi.de (Azure Alemania)
login.microsoftonline.us (Azure US Government) (blob | file | dfs).core.usgovcloudapi.net (Azure US Government)

x509: certificado firmado por una entidad de certificación desconocida

Este error suele estar relacionado con el uso de un proxy que usa un certificado de capa de sockets seguros (SSL) que no es de confianza para el sistema operativo. Compruebe la configuración y asegúrese de que el certificado es de confianza en el nivel de sistema operativo.

Se recomienda agregar el certificado al almacén de certificados raíz del componente de hospedaje, ya que es donde se mantienen las autoridades de confianza.

Parámetros no reconocidos

Si recibe un mensaje de error que indica que los parámetros no se reconocen, asegúrese de que usa la versión correcta de AzCopy. AzCopy v8 y versiones anteriores están en desuso. AzCopy v10 es la versión actual y es una reescritura completa que no comparte ninguna sintaxis con las versiones anteriores. Consulte la Guía de migración de AzCopy para v8 a v10.

Además, asegúrese de usar mensajes de ayuda integrados mediante el -h modificador junto con cualquier comando (por ejemplo, azcopy copy -h). Consulte Obtener ayuda de comandos. Para ver la misma información en línea, consulte azcopy copy.

Para ayudarle a comprender los comandos, proporcionamos una herramienta de educación que se encuentra en la guía de comandos de AzCopy. Esta herramienta muestra los comandos de AzCopy más populares junto con las marcas de comandos más populares. Para buscar comandos de ejemplo, consulte Transferencia de datos. Si tiene una pregunta, intente buscar primero los problemas existentes de GitHub para ver si ya se ha respondido.

Error de directiva de acceso condicional

Es posible que reciba el siguiente error al invocar el azcopy login comando:

Error al realizar el comando de inicio de sesión: no se pudo iniciar sesión con tenantID "common", punto de conexión de directorio de Azure "https://login.microsoftonline.com", autorest/adal/devicetoken: -REDACTED- AADSTS50005: el usuario intentó iniciar sesión en un dispositivo desde una plataforma (desconocida) que actualmente no se admite a través de la directiva de acceso condicional. Las plataformas de dispositivos compatibles son: iOS, Android, Mac y Windows. Id. de seguimiento: -REDACTED- Identificador de correlación: -REDACTED- Timestamp: 2021-01-05 01:58:28Z

Este error significa que el administrador ha configurado una directiva de acceso condicional que especifica el tipo de dispositivo desde el que puede iniciar sesión. AzCopy usa el flujo de código del dispositivo. El flujo de código del dispositivo no puede garantizar que el componente de hospedaje en el que se usa la herramienta AzCopy también sea desde donde se inicia sesión.

Si el dispositivo está entre la lista de plataformas admitidas, es posible que pueda usar Explorador de Storage. Explorador de Storage integra AzCopy para todas las transferencias de datos (pasa tokens a AzCopy a través del almacén de secretos), pero proporciona un flujo de trabajo de inicio de sesión que admite el paso de información del dispositivo. AzCopy también admite identidades administradas y entidades de servicio como alternativa de inicio de sesión.

Si el dispositivo no está en la lista de plataformas admitidas, póngase en contacto con el administrador para obtener ayuda.

Servidor ocupado, errores de red o tiempos de espera

Si ve un gran número de solicitudes con errores que tienen el estado "503 Server Busy", el servicio de almacenamiento está limitando las solicitudes. Si ve errores de red o tiempos de espera, es posible que esté intentando insertar demasiados datos para que la infraestructura lo controle. En todos los casos, la solución alternativa es similar.

Si ve que un archivo grande no se puede copiar repetidamente porque se produce un error en determinados fragmentos cada vez, intente limitar las conexiones de red simultáneas o el límite de rendimiento en función de su caso específico. Se recomienda reducir drásticamente el rendimiento al principio, observar si esta acción resolvió el problema inicial y, a continuación, aumentar el rendimiento de nuevo hasta lograr un equilibrio general.

Para obtener más información, consulte Optimización del rendimiento de AzCopy con Azure Storage.

Si va a copiar datos entre cuentas mediante AzCopy, la calidad y confiabilidad de la red desde la que se ejecuta AzCopy podría afectar al rendimiento general. Aunque los datos se transfieren de servidor a servidor, AzCopy inicia llamadas para que cada archivo se copie entre los puntos de conexión de servicio.

Restricciones conocidas en AzCopy

  • No se admite la copia de datos de nubes gubernamentales en nubes comerciales. Sin embargo, se admite la copia de datos de nubes comerciales a nubes gubernamentales.

  • No se admite la copia asincrónica del lado del servicio. AzCopy solo realiza la copia sincrónica. En otras palabras, cuando finaliza el trabajo, se han movido los datos.

  • Al copiar en un recurso compartido de archivos de Azure, si olvidó especificar la --preserve-smb-permissions marca y no desea volver a transferir los datos, considere la posibilidad de usar Robocopy para traer los permisos.

  • Azure Functions tiene un punto de conexión diferente para la autenticación MSI. AzCopy aún no admite la autenticación MSI.

Consulte también

Ponte en contacto con nosotros para obtener ayuda

Si tiene preguntas o necesita ayuda, cree una solicitud de soporte o busque consejo en la comunidad de Azure. También puede enviar comentarios sobre el producto con los comentarios de la comunidad de Azure.