我正在尝试为AWS Lambda创建一个部署程序包,但是无论如何我都无法运行它。这是我的过程:
启动AWS EC2实例2)使用Pip3将我所有的依赖项安装到通过Yum安装的Python 3.6的本地文件夹中。
3)将依赖项通过FTP传输到本地计算机,并使用python文件将其压缩。
我要调用的确切代码是login.py内部的“ handler”方法。这是我的Lambda函数的设置方式:
最后,这是我收到的实际错误消息,我已经完成了我认为无法解决的所有事情:
任何帮助都非常感谢!
编辑:这是python代码:
import sys
import logging
import rds_config
import bcrypt
import pymysql
#rds settings
rds_host = "xxx"
name = rds_config.db_username
password = rds_config.db_password
db_name = rds_config.db_name
logger = logging.getLogger()
logger.setLevel(logging.INFO)
try:
conn = pymysql.connect(rds_host, user=name, passwd=password, db=db_name, connect_timeout=5)
except:
logger.error("ERROR: Unexpected error: Could not connect to MySql instance.")
sys.exit()
logger.info("SUCCESS: Connection to RDS mysql instance succeeded")
def handler(event, context):
accountData = None
accountEmail = event['userEmail']
accountPassword = event['userPassword']
with conn.cursor() as cur:
sql = "SELECT `id`, `email`, `password` FROM `accounts` WHERE `email`=%s"
cur.execute(sql, ('myEmail@testEmail.comn'))
accountData = cur.fetchone()
if accountData['email'] == accountEmail:
if bcrypt.hashpw(password, accountData['password']) == accountData['password']:
print('Returning Account Id: ' + str(accountData['id']))
return accountData['id']
else:
print("Invalid Credentials")
return "Invalid Credentials"
答案 0 :(得分:0)
所以我是个白痴,但是把这个留给其他遇到问题的人。我需要从我的EC2实例中将一个名为.libs_cffi_backend的目录添加到.zip,然后将其上传到Lambda,以允许我的所有Pip库正常工作。