PythonとAWS Lambdaを用いて、SFTPサーバーとの連携を行う方法について説明します。この記事では、AWS Lambdaを用いて、SnowflakeとSFTPサーバーの日次連携処理を実装する例をご紹介します。
AWS LambdaとSFTPサーバーの連携
AWS Lambdaはデフォルトだと動的なパブリックIPが付与されます。これだと、IPホワイトリスト制限に対処不可能です。IPアドレスを固定して、Lambdaから外部サービスにアクセスしたい場合は、以下の構成で解決します。
- NATGatewayにElastic IPを付与
- LambdaからはNATGatewayを経由してアクセス
PythonでのSFTP接続
PythonでSFTPへの接続、ファイルのリストアップ、アップロード、ダウンロードの方法について説明します。以下にPythonを用いたSFTPへの接続とファイルアップロードのサンプルコードを示します。
import pysftp
srv = pysftp.Connection(host="www.destination.com", username="root", password="password",log="./temp/pysftp.log")
srv.cd('public') #chdir to public
srv.put('C:UsersXXXDropboxtest.txt') #upload file to nodejs/
# Closes the connection
以上の情報を参考に、PythonとAWS Lambdaを用いてSFTPサーバーとの連携を行うことが可能です。この情報が皆さんの開発に役立つことを願っています。