我正在使用AWS控制台并尝试使用Lambda函数将数据添加到MySQL表。每当我尝试测试该函数时,我都会收到以下错误:
无法导入模块'app':没有名为pymysql的模块
它的行为就像pymysql一样不在路径中。我进入microEC2实例并pip'ed pymysql。但它仍然无效。我已经尝试将代码压缩到文件中并上传,并将代码复制并粘贴到控制台中并运行它。两者都不起作用。任何帮助将不胜感激。
以下是代码段:
import sys
import logging
import pymysql
def main(event, context):
答案 0 :(得分:1)
您必须在部署中打包所有项目依赖项。
创建一个zip,并将其上传到lambda函数
请参阅docs
答案 1 :(得分:0)
mkdir pymysql-layer/
cd pymysql-layer/
输入以下文件:
导出PKG_DIR =“ python”
rm -rf $ {PKG_DIR} && mkdir -p $ {PKG_DIR}
docker run --rm -v $ {pwd):/ foo -w / foo lambci / lambda:build-python3.6 \ pip install -r requirements.txt --no-deps -t $ {PKG_DIR}
pymysql
sqlalchemy
然后运行:chmod +x get_layer_packages.sh
./get_layer_packages.sh
'zip -r mysql.zip .
优选上传到S3,然后在创建s3:// path
到lambda层中