python - 使用 AWS SAM CLI 安装 PyODBC 以进行本地调试时出现问题
问题描述
我正在用 Python 开发一个 lambda 函数。该函数使用 pyodbc 库访问 RDS 数据库。要使用我正在使用图层的库。我的 SAM 模板看起来像这样,并且在部署到 AWS 时一切正常。
Resources:
# ODBC Lambda Layer
PyODBCLayer:
Type: AWS::Serverless::LayerVersion
Properties:
ContentUri: pyodbc_layer.zip
# Lambda function
TaskIDFunction:
Type: AWS::Serverless::Function
Properties:
CodeUri: taskid/
Handler: app.lambda_handler
Layers:
- !Ref PyODBCLayer
Role: !GetAtt TaskIDFunctionIamRole.Arn
Runtime: python3.6
Environment:
Variables:
ODBCINI: /opt/bin/odbcinst.ini
ODBCSYSINI: /opt/bin
Events:
SendTaskID:
Type: Api
Properties:
Path: /task/{id}
Method: get
当我尝试在本地运行它时,问题就开始了sam build && sam local invoke -d 5890 TaskIDFunction --event myEvent.json
我收到了Unable to import module 'app': No module named 'pyodbc'
我理解的错误消息,通常解决方案是添加pyodbc
到 requiremens.txt 文件以进行本地调试。
但是,在我完成之后,sam build
命令失败并显示以下消息
Build Failed
Error: PythonPipBuilder:ResolveDependencies - {pyodbc==4.0.26(wheel)}
我可以pip install pyodbc
没有问题,但由于某种原因,sam build
失败了。
我尝试了各种组合,从模板中删除图层并手动安装 PyODBC 以使其在本地运行,但没有成功。
解决方案
推荐阅读
- android - 以编程方式测试设备指纹是否正常工作
- angular - 离子菜单链接只能使用一次
- laravel - 未定义的变量项目
- c++ - Conda Build 打包 C++ 项目失败
- django - Django - 使用 forms.CheckboxSelectMultiple
- android-studio - 如何从项目中创建 .Jar 文件?Gradle 和 Android Studio
- angular - 变量值未在服务中更新
- android - Android Studio:Webview 上的横幅广告
- javascript - 将函数的结果压入一个空数组
- c - 此代码中 pen 和 *pen 之间的区别