gpt4 book ai didi

postgresql - 构建 lambda 函数以连接到 Postgresql 获取 :Unable to import module 'lambda_function' : No module named 'psycopg2'

转载 作者:行者123 更新时间:2023-12-04 12:58:29 25 4
gpt4 key购买 nike

我正在测试我的 api 网关来调用 lambda 函数。
我在测试中成功了。
然后我试图通过同一个 lambda 连接到 postgresql

   import json
import psycopg2

db_host = "hostname"
db_port = 5432
db_name ="db name"
db_user ="user"
db_pass ="password"

def connect():
conn = None
try :
conn = psycopg2.connect("dbname={} user={} host={} password={}".format(db_name,db_user,db_host,db_pass))
except :
print("connetion error")
return conn


print("Loading function")
def lambda_handler(event, context):
# paring query from the string
name = event['queryStringParameters']['name']
action = event['queryStringParameters']['action']

print('name = '+name )
print('action = '+action)

# body of the response object

transactionResponse = {}
transactionResponse['name'] = name
transactionResponse['action'] = action
transactionResponse['message'] = 'Lambda called from api_gateway'

# construting Http response

responseObject = {}
responseObject['statusCode'] = 200
responseObject['headers'] {}
responseObject['headers']['Content-Type'] = 'application/json'
responseObject['body'] = json.dumps(transactionResponse)

# return the response object

return responseObject
当我尝试通过 API 端点触发它时,我得到了
 Unable to import module 'lambda_function': No module named 'psycopg2'
然后我继续通过下载所需的包来构建我的 lambda 函数,然后上传一个 zip 文件。
当我尝试调用尝试相同的方法来触发我得到的 lambda 时
 Runtime.ImportModuleError: Unable to import module 'lambda_function': No module named 'lambda_function'
不知道 lamda_function 是什么。
有人能建议我摆脱这种低迷吗?
或者
为我提供一种从 API 网关触发器通过 lambda 连接到 RDS 的方法
这是我的构建包
enter image description here

最佳答案

您应该从控制台检查 lambda 处理程序名称。这很可能是因为处理程序名称指的是 lambda_function.foobar但是 zip 中 Lambda 的文件名不会被命名为 lambda_function.py .
确保名称的格式为 filename.function_name .
在本例中,如果文件名为 lambda_function那么处理程序值应该是 lambda_function.lambda_handler .
目录结构当前不包括 psycopg2模块,因此仍然无法加载。
为了解决这个问题,以下解决方案是适用的:

  • 通过 pip install 添加依赖,然后再次压缩 deploy
  • 添加一个已安装此依赖项的 Lambda 层
  • 关于postgresql - 构建 lambda 函数以连接到 Postgresql 获取 :Unable to import module 'lambda_function' : No module named 'psycopg2' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62793604/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com