在AWS Lambda中,为什么无法导入函数模块?

时间:2017-02-26 07:07:54

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

在测试部署包时,我在AWS控制台上收到错误:

enter image description here

{
 "errorMessage": "Unable to import module 'lambda_function'"
}

deployment-package.zip包含:

  • python2.7 function.py
  • VIRTUAL_ENV / lib / python2.7 / site-packages的内容(不是目录本身)

我相信我们已正确遵循包装说明:

AWS's Developer Guide

在MacOS上,我使用Python2.7代码创建了.zip文件:

$ zip ../path/to/my/deployment-package.zip ./my_function.py      

然后将virtualenv的模块添加到其中:

$ cd ../path/to/my/py2.7_virtualenv
$ zip -ru ../path/to/deployment-package.zip *

结果是.zip文件:

$ ls -l
$ -rw-r--r--   1 user  staff  9036477 Feb 26 00:15 deployment-package.zip

包含代码和模块:

$ unzip deployment-package.zip
...
$ ls 
deployment-package.zip      XlsxWriter-0.9.6.dist-info
_markerlib                  pip
boto3                       pip-7.1.0.dist-info
boto3-1.4.4.dist-info       pkg_resources
botocore                    python_dateutil-2.6.0.dist-info
botocore-1.5.18.dist-info   s3transfer
concurrent                  s3transfer-0.1.10.dist-info
dateutil                    setuptools
...

2 个答案:

答案 0 :(得分:1)

我的ls输出中没有看到.py文件。应该有一个py文件来匹配“Lambda函数处理程序和角色”下指定的处理程序。

答案 1 :(得分:0)

解决。步骤是正确的。

问题出在正在使用的软件包中,它是存储在S3中的旧版本。 测试运行时,新版本正在上传。