AWS Lambda Function无法找到我的python代码

时间:2018-07-31 21:23:20

标签: python amazon-web-services aws-lambda

我正在尝试为AWS Lambda创建一个部署程序包,但是无论如何我都无法运行它。这是我的过程:

1)从AMI linked here

启动AWS EC2实例

2)使用Pip3将我所有的依赖项安装到通过Yum安装的Python 3.6的本地文件夹中。

3)将依赖项通过FTP传输到本地计算机,并使用python文件将其压缩。

我的文件夹结构通常为:Folder Structure Pre-Zip

我的文件夹结构INSIDE邮政编码:Folder Structure Post-zip

我要调用的确切代码是login.py内部的“ handler”方法。这是我的Lambda函数的设置方式:Lambda Set-up

最后,这是我收到的实际错误消息,我已经完成了我认为无法解决的所有事情:Lambda Error

任何帮助都非常感谢!

编辑:这是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"

1 个答案:

答案 0 :(得分:0)

所以我是个白痴,但是把这个留给其他遇到问题的人。我需要从我的EC2实例中将一个名为.libs_cffi_backend的目录添加到.zip,然后将其上传到Lambda,以允许我的所有Pip库正常工作。