2022/09/21

[aws] 在 Lambda 中使用 psycopg2

在 Lambda 中欲連線到 PostgreSQL,使用 Python 與資料庫建立連線,需要匯入 psycopg2。
Import module 的流程是鮮少變動的,且未來其他的 Lambda 也會有同樣需求,於是將 psycopg2 打包成 zip,上傳製作成 Lambda 的 Layer
在打包 zip 時,須注意 Lambda 的運行環境為 Amazon Linux,如果開發者是在 Windows 下進行打包,需注意 .so 檔的正確性。在 github 上已有適合用在 Lambda 的 psycopg2 版本。基本上,將 github 上的檔案下載後再壓縮成 zip,最後上傳至 AWS 就大功告成。

在 zip 檔下的資料夾必須是 python/psycopg2,我在打包時沒有完全依照下面網址的指令,忽略 python 資料夾,變成 zip 檔下就是 psycopg2 資料夾,Lambda 執行後結果當然就是 import 失敗。
測試方面使用 import psycopg2,若輸出為 Unable to import module,就表示 Layer 有問題,Lambda 無法正確載入 psycopg2。

Github 網址
https://github.com/jkehler/awslambda-psycopg2
詳細步驟
https://www.timescale.com/blog/aws-lambda-for-beginners-overcoming-the-most-common-challenges/

沒有留言:

張貼留言