2017-09-19 10 views
0

Apache Airflowを初めて使用していて、これまでに遭遇した問題を解決することができました。Apache AirflowがFTP/SFTP経由でリモートホストへの接続を確立できない

私は今、壁に当たっています。私はsftp経由でリモートサーバにファイルを転送する必要があります。私はこれを行う運がなかった。これまでのところ、S3とPostgres/Redshiftの接続をそれぞれのフックで取得して、さまざまなDAGで作業しています。 SFTPを使用してリモートホストに接続する方法を知ることができませんでした。

FileZillaを使用してSFTP経由でリモートホストに接続できるため、自分の資格情報が正しいことがわかります。

Google検索では、SFTPOperatorが見つかりましたが、使用方法がわかりません。私もFTPSHookを見つけましたが、それでも私はそれを働かせることができませんでした。

エアフローログにエラーnodename nor servname provided, or not knownまたは一般Operation timed outが表示され続けます。

誰かが私を正しい方向に向けることができますか? SSHまたはFTP Airflow Conn TypeでFTPSHookを使用する必要がありますか? SFTPOperatorを利用する必要がありますか?私はまた、私の気流接続の資格情報をどのように設定するのか混乱しています。 SSHプロファイルまたはFTPを使用しますか?

さらに詳しい情報があれば教えてください。

乾杯!

+0

SFTPとFTPは全く異なる2つのプロトコルです。 SFTPサーバーにFTP(またはFTPS)で接続することはできません。 –

+0

@ MartinPrikryl私はそれを感謝します。私は彼らが二つの異なるプロトコルであることを知っています。私は二つのことを混乱させているという印象を与えないように、私の質問にちょっとした言葉を言いました。私は以下のs7anleyの答えが私が探していたものだと思います。乾杯! –

+0

まだ質問を編集するのは遅れていません。 –

答えて

1

SFTPOperatorは、ファイル転送の基礎となるsftpトランスポートチャネルを開くためにssh_hook underhoodを使用しています。自分でssh_hookを設定するか、ssh_conn_idで接続IDを指定することができます。

op = SFTPOperator(
    task_id="test_sftp", 
    ssh_conn_id="my_ssh_connection", 
    local_filepath="", 
    remote_filepath="", 
    operation=SFTPOperation.PUT, 
    dag=dag 
) 
+0

私はカスタムオペレーターの中でpysftpライブラリーを使用することになりましたが、コードベースの一貫性を維持する必要があります。ありがとうございました!!!! –

関連する問題