Ran*_*cer 2 ftp ssh sftp airflow apache-airflow
我是 Apache Airflow 的新手,到目前为止,我已经能够解决我遇到的问题。
我现在撞墙了。我需要通过 sftp 将文件传输到远程服务器。我没有运气这样做。到目前为止,我已经通过各自的钩子获得了 S3 和 Postgres/Redshift 连接,以在各种 DAG 中工作。我已经能够在本地 FTP 服务器上使用 FTPHook 进行成功测试,但无法弄清楚如何使用 SFTP 连接到远程主机。
我可以使用 FileZilla 通过 SFTP 连接到远程主机,所以我知道我的凭据是正确的。
通过谷歌搜索,我找到了SFTPOperator,但不知道如何使用它。我也找到了FTPSHook,但我仍然无法让它工作。
我的 Airflow 日志中不断出现错误nodename nor servname provided, or not known或一般信息Operation timed out。
有人可以指出我正确的方向吗?我应该将 FTPSHook 与 SSH 还是 FTP Airflow Conn 类型一起使用?还是我需要使用 SFTPOperator?我也很困惑我应该如何在我的 Airflow 连接中设置凭据。我使用 SSH 配置文件还是 FTP?
如果我可以提供更多可能有帮助的其他信息,请告诉我。
干杯!
SFTPOperator正在使用ssh_hookunderhood打开作为文件传输基础的sftp传输通道。您可以ssh_hook自己配置或通过ssh_conn_id.
op = SFTPOperator(
task_id="test_sftp",
ssh_conn_id="my_ssh_connection",
local_filepath="",
remote_filepath="",
operation=SFTPOperation.PUT,
dag=dag
)
Run Code Online (Sandbox Code Playgroud)