当测试我的aws lambda时出现错误:-“无法导入模块'app':没有名为'pyodbc'的模块”,

时间:2019-09-09 04:58:58

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

pyodbc包含在zip中,但在尝试测试lambda函数时仍会出错。

使用pip3安装了pyodbc,并在创建lambda zip时包含了lib文件。

auto addControl = [](SomeLabel*& label, SomeControl*& control) {
        label = new SomeLabel;
        control = new SomeControl;
        // few more operation further.
    };

addControl(m_label1,m_control1);
addControl(m_label2,m_control2);
addControl(m_label3,m_control3);

应该能够运行aws lambda函数的测试。

2 个答案:

答案 0 :(得分:0)

要将所有内容安装在同一目录中,请使用以下命令

pip install pyodbc -t .

或者,如果您在requirements.txt中提到了所有内容

pip install -r requirements.txt -t .

然后,压缩整个目录并上传到Lambda控制台。

答案 1 :(得分:0)

  • 确保您的代码具有处理程序lambda_handler,并且已在UI上配置了该处理程序以进行交叉检查。
import json

def lambda_handler(event, context):
    # TODO implement 
    # All your code
    # goes here
    return {
        'statusCode': 200,
        'body': json.dumps('Hello from Lambda!')
    }

enter image description here

  • 处理程序–处理程序是AWS Lambda调用以开始执行Lambda函数的函数。创建Lambda函数时,可以标识处理程序。调用Lambda函数时,AWS Lambda通过调用处理程序函数开始执行代码。 AWS Lambda将所有事件数据作为第一个参数传递到此处理程序。处理程序应处理传入的事件数据,并可以在代码中调用其他任何函数/方法。

  • lambda_function文件导出一个名为lambda_handler的函数,该函数接受一个事件对象和一个上下文对象。这是Lambda在调用函数时调用的处理函数。 Python函数运行时从Lambda获取调用事件,并将它们传递给处理程序。在函数配置中,处理程序值为lambda_function.lambda_handler aws docs

  • lambda_handler文件(.py)应该位于创建的zip的根目录。

  • ,值得使用pip install -r requirements.txt -t .pip install pyodbc -t .进行安装。

  • lambda还需要一个iam role

  • github example,这可能对iam角色和lambda有所帮助。您还可以检查其他存储库(s3-trigger-lambda,lambda-invoking-lambda)。