Condividi tramite


Risolvere i problemi relativi ai connettori FTP, SFTP e HTTP in Azure Data Factory e Azure Synapse

SI APPLICA A: Azure Data Factory Azure Synapse Analytics

Suggerimento

Provare Data Factory in Microsoft Fabric, una soluzione di analisi all-in-one per le aziende. Microsoft Fabric copre tutto, dallo spostamento dati al data science, all'analisi in tempo reale, alla business intelligence e alla creazione di report. Vedere le informazioni su come iniziare una nuova prova gratuita!

Questo articolo fornisce suggerimenti su come risolvere i problemi comuni relativi al connettore FTP, SFTP e HTTP in Azure Data Factory e Azure Synapse.

FTP

Codice errore: FtpFailedToConnectToFtpServer

  • Messaggio: Failed to connect to FTP server. Please make sure the provided server information is correct, and try again.

  • Causa: è possibile usare un tipo di servizio collegato non corretto per il server FTP, ad esempio l'uso del servizio collegato FTP sicuro (SFTP) per connettersi a un server FTP.

  • Raccomandazione: controllare la porta del server di destinazione. FTP usa la porta 21.

Codice errore: FtpFailedToReadFtpData

  • Messaggio: Failed to read data from ftp: The remote server returned an error: 227 Entering Passive Mode (*,*,*,*,*,*).

  • Causa: l'intervallo di porte compreso tra 1024 e 65535 non è aperto per il trasferimento dei dati in modalità passiva supportata dalla pipeline di Data Factory o Synapse.

  • Raccomandazione: controllare le impostazioni del firewall del server di destinazione. Aprire la porta 1024-65535 o l'intervallo di porte specificato nel server FTP all'indirizzo IP del runtime di integrazione di Azure/SHIR.

SFTP

Codice errore: SftpOperationFail

  • Messaggio: Failed to '%operation;'. Check detailed error from SFTP.

  • Causa: problema con l'operazione SFTP.

  • Raccomandazione: controllare i dettagli dell'errore da SFTP.

Codice errore: SftpRenameOperationFail

  • Messaggio: Failed to rename the temp file. Your SFTP server doesn't support renaming temp file, set "useTempFileRename" as false in copy sink to disable uploading to temp file.

  • Causa: il server SFTP non supporta la ridenominazione del file temporaneo.

  • Raccomandazione: impostare "useTempFileRename" come false nel sink di copia per disabilitare il caricamento nel file temporaneo.

Codice errore: SftpInvalidSftpCredential

  • Messaggio: Invalid SFTP credential provided for '%type;' authentication type.

  • Causa: il contenuto della chiave privata viene recuperato dall'insieme di credenziali delle chiavi di Azure o dall'SDK, ma non è codificato correttamente.

  • Raccomandazione:

    Se il contenuto della chiave privata proviene dall'insieme di credenziali delle chiavi, il file di chiave originale può funzionare se lo si carica direttamente nel servizio collegato SFTP.

    Per altre informazioni, vedere Copiare dati da e nel server SFTP usando le pipeline di Data Factory o Synapse. Il contenuto della chiave privata è contenuto della chiave privata SSH con codifica Base64.

    Codificare l'intero file della chiave privata originale con codifica Base64 e archiviare la stringa codificata nell'insieme di credenziali delle chiavi. Il file di chiave privata originale è quello che può funzionare sul servizio collegato SFTP se si seleziona Carica dal file.

    Ecco alcuni esempi che è possibile usare per generare la stringa:

    • Usare il codice C#:

      byte[] keyContentBytes = File.ReadAllBytes(Private Key Path);
      string keyContent = Convert.ToBase64String(keyContentBytes, Base64FormattingOptions.None);
      
    • Usare il codice Python:

      import base64
      rfd = open(r'{Private Key Path}', 'rb')
      keyContent = rfd.read()
      rfd.close()
      print base64.b64encode(Key Content)
      
    • Usare uno strumento di conversione base64 di terze parti. È consigliabile usare lo strumento di codifica in formato Base64.

  • Causa: è stato scelto il formato di contenuto della chiave errato.

  • Raccomandazione:

    La chiave privata SSH in formato PKCS#8 (iniziare con "-----BEGIN ENCRYPTED PRIVATE KEY-----") non è attualmente supportata per accedere al server SFTP.

    Per convertire la chiave in formato di chiave SSH tradizionale, a partire da "-----BEGIN RSA PRIVATE KEY-----", eseguire i comandi seguenti:

    openssl pkcs8 -in pkcs8_format_key_file -out traditional_format_key_file
    chmod 600 traditional_format_key_file
    ssh-keygen -f traditional_format_key_file -p
    
  • Causa: credenziali non valide o contenuto della chiave privata.

  • Raccomandazione: per verificare se il file di chiave o la password sono corretti, verificare con strumenti come WinSCP.

Attività Copy SFTP non riuscita

  • Sintomi:

    • Codice errore: UserErrorInvalidColumnMappingColumnNotFound
    • Messaggio di errore: Column 'AccMngr' specified in column mapping cannot be found in source data.
  • Causa: l'origine non include una colonna denominata "AccMngr".

  • Soluzione: per determinare se la colonna "AccMngr" esiste, controllare attentamente la configurazione del set di dati eseguendo il mapping della colonna del set di dati di destinazione.

Codice errore: SftpFailedToConnectToSftpServer

  • Messaggio: Failed to connect to SFTP server '%server;'.

  • Causa: se il messaggio di errore contiene la stringa "L'operazione di lettura socket è scaduta dopo 30.000 millisecondi", una possibile causa è che per il server SFTP viene usato un tipo di servizio collegato non corretto. Ad esempio, è possibile usare il servizio collegato FTP per connettersi al server SFTP.

  • Raccomandazione: controllare la porta del server di destinazione. Per impostazione predefinita, SFTP usa la porta 22.

  • Causa: se il messaggio di errore contiene la stringa "Risposta server non contiene l'identificazione del protocollo SSH", una possibile causa è che il server SFTP ha limitato la connessione. Vengono create più connessioni per il download dal server SFTP in parallelo e talvolta si verifica una limitazione del server SFTP. In genere, diversi server restituiscono errori diversi quando si verificano limitazioni.

  • Raccomandazione:

    Specificare il numero massimo di connessioni simultanee del set di dati SFTP come 1 ed eseguire di nuovo l'attività Copy. Se l'attività ha esito positivo, è sicuro che la limitazione è la causa.

    Se si vuole alzare di livello la velocità effettiva ridotta, contattare l'amministratore SFTP per aumentare il limite di conteggio delle connessioni simultanee oppure eseguire una delle operazioni seguenti:

    • Se si usa il runtime di integrazione self-hosted, aggiungere l'indirizzo IP del computer del runtime di integrazione self-hosted all'elenco elementi consentiti.
    • Se si usa Azure IR, aggiungere indirizzi IP del runtime di integrazione di Azure. Se non si vuole aggiungere un intervallo di indirizzi IP all'elenco di indirizzi IP consentiti del server SFTP, usare invece runtime di integrazione self-hosted.

Codice errore: SftpPermissionDenied

  • Messaggio: Permission denied to access '%path;'

  • Causa: l'utente specificato non dispone dell'autorizzazione di lettura o scrittura per la cartella o il file durante il funzionamento.

  • Raccomandazione: concedere all'utente l'autorizzazione per leggere o scrivere nella cartella o nei file nel server SFTP.

Codice errore: SftpAuthenticationFailure

  • Messaggio: Meet authentication failure when connect to Sftp server '%server;' using '%type;' authentication type. Please make sure you are using the correct authentication type and the credential is valid. For more details, see our troubleshooting docs.

  • Causa: la credenziale specificata (la password o la chiave privata) non è valida.

  • Raccomandazione: controllare le credenziali.

  • Causa: il tipo di autenticazione specificato non è consentito o non è sufficiente per completare l'autenticazione nel server SFTP.

  • Raccomandazione: applicare le opzioni seguenti per usare il tipo di autenticazione corretto:

    • Se il server richiede una password, usare "Basic".
    • Se il server richiede una chiave privata, usare "Autenticazione con chiave pubblica SSH".
    • Se il server richiede sia "password" che "chiave privata", usare "Autenticazione a più fattori".
  • Causa: il server SFTP richiede "keyboard-interactive" per l'autenticazione, ma è stata fornita la "password".

  • Raccomandazione:

    "keyboard-interactive" è un metodo di autenticazione speciale, diverso da "password". Ciò significa che quando si accede a un server, è necessario immettere la password manualmente e non è possibile usare la password salvata in precedenza. Azure Data Factory (ADF), tuttavia, è un servizio di trasferimento dati pianificato e non è disponibile alcuna casella di input popup che consente di fornire la password in fase di esecuzione.

    Come compromesso, viene fornita un'opzione per simulare l'input in background anziché l'input manuale reale, che equivale a modificare "keyboard-interactive" in "password". Se è possibile accettare questo problema di sicurezza, attenersi alla procedura seguente per abilitarla:

    1. Nel portale di Azure Data Factory, passare il puntatore del mouse sul servizio collegato SFTP e aprirlo selezionando il pulsante del codice.
    2. Aggiungere "allowKeyboardInteractiveAuth": true nella sezione “typeProperties”:

Impossibile connettersi a SFTP a causa di algoritmi di scambio delle chiavi forniti da SFTP non supportati in Azure Data Factory

  • Sintomi: non è possibile connettersi a SFTP tramite ADF e soddisfare il messaggio di errore seguente: Failed to negotiate key exchange algorithm.

  • Causa: gli algoritmi di scambio delle chiavi forniti dal server SFTP non sono supportati in Azure Data Factory. Gli algoritmi di scambio delle chiavi supportati da ADF sono:

    • curve25519-sha256
    • curve25519-sha256@libssh.org
    • ecdh-sha2-nistp256
    • ecdh-sha2-nistp384
    • ecdh-sha2-nistp521
    • diffie-hellman-group-exchange-sha256
    • diffie-hellman-group-exchange-sha1
    • diffie-hellman-group16-sha512
    • diffie-hellman-group14-sha256
    • diffie-hellman-group14-sha1
    • diffie-hellman-group1-sha1

    La versione più recente per supportare gli algoritmi di scambio delle chiavi precedenti in SHIR è la versione 5.19.

Codice errore: SftpInvalidHostKeyFingerprint

  • Messaggio: Host key finger-print validation failed. Expected fingerprint is '<value in linked service>', real finger-print is '<server real value>'

  • Causa: Azure Data Factory supporta ora algoritmi di chiave host più sicuri nel connettore SFTP. Per gli algoritmi appena aggiunti, è necessario ottenere l'impronta digitale corrispondente nel server SFTP.

    Gli algoritmi supportati da poco sono:

    • ssh-ed25519
    • ecdsa-sha2-nistp256
    • ecdsa-sha2-nistp384
    • ecdsa-sha2-nistp521
  • Raccomandazione: ottenere un'impronta digitale valida usando il nome della chiave host in real finger-print dal messaggio di errore nel server SFTP. È possibile eseguire il comando per ottenere l'impronta digitale nel server SFTP. Ad esempio: eseguire ssh-keygen -E md5 -lf <keyFilePath> nel server Linux per ottenere l'impronta digitale. Il comando può variare tra diversi tipi di server.

Codice errore: UnsupportedCompressionTypeWhenDisableChunking

  • Messaggio: "Disable chunking" is not compatible with "ZipDeflate" decompression.

  • Causa: disabilitare la suddivisione in blocchi non è compatibile con la decompressione ZipDeflate.

  • Raccomandazione: caricare i dati binari in un'area di gestione temporanea( ad esempio Archiviazione BLOB di Azure) e decomprimerli in un'altra attività Copy.

HTTP

Codice errore: HttpFileFailedToRead

  • Messaggio: Failed to read data from http server. Check the error from http server:%message;

  • Causa: questo errore si verifica quando una data factory o una pipeline Synapse comunica con il server HTTP, ma l'operazione di richiesta HTTP non riesce.

  • Raccomandazione: controllare il codice di stato HTTP nel messaggio di errore e correggere il problema del server remoto.

Codice errore: HttpSourceUnsupportedStatusCode

  • Messaggio: Http source doesn't support HTTP Status Code '%code;'.

  • Causa: questo errore si verifica quando Azure Data Factory richiede l'origine HTTP ma ottiene codice di stato imprevisto.

  • Raccomandazione: per altre informazioni sul codice di stato HTTP, vedere questo documento.

Per altre informazioni sulla risoluzione dei problemi, usare le risorse seguenti: