簡體   English   中英

lambda python function 帶有外部庫 psycopg2 - 沒有名為 psycopg2 的模塊

[英]lambda python function with external library psycopg2 - No module named psycopg2

錯誤消息 - 沒有名為 psycopg2 的模塊
zip中使用的文件 - https://github.com/jkehler/awslambda-psycopg2
代碼片段 -

    #!/usr/bin/python
import psycopg2
import sys
import pprint
import datetime

def lambda_handler(event, context):

#Connect to RedShift
conn_string = "dbname='XXXX' port='5439' user='XXX' password='XXXX' host='XXXXXXXXXXXX'";

conn = psycopg2.connect(conn_string);
cursor = conn.cursor();

cursor.execute("begin transaction");
cursor.execute("truncate table XXXX");
cursor.execute("truncate table XXXX");
cursor.execute("truncate table XXXX");
cursor.execute("delete from XXXX");
cursor.execute("insert into XXXX");
cursor.execute("truncate table XXXX");
cursor.execute("truncate table XXXX");
cursor.execute("truncate table XXXX");
cursor.execute("end transaction");

conn.commit();
conn.close();


將 windows 中的 psycopg2 與我的 python 文件和站點包一起提取並復制到我的 AWS Lambda zip package 中。
我錯過了什么嗎?

編輯
通過在 Amazon Linux 上壓縮文件重新創建 package。仍然是同樣的錯誤。

psycopg2 是一個編譯模塊。 無法復制 Windows 版本,因為 Lambda 在 Amazon Linux 上運行。 根據文檔,可以在 lambda 上運行本機可執行文件和庫,但您需要找到一種方法來為該平台構建 psycopg2 並靜態鏈接其所有庫或捆綁動態庫。 除非您熟悉 C 和 Python 工具鏈,或者其他人已經為您完成,否則這可能具有挑戰性。

AWS lambda 沒有 PIP 中的所有 Python 庫,它是極簡主義的亞馬遜 python 以提高執行時間。 所以如果你想使用其他庫你需要下載它們的源版本。

你可以在pypi.org找到它們心理戰警2

這是可能對您有幫助的參考文檔。 如何創建 aws lambda 層

頁面顯示了有關如何創建圖層的詳細步驟。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM