无法在aws lambda上导入pubsub

时间:2017-11-19 02:04:26

标签: aws-lambda google-cloud-pubsub

我有一个使用Google Cloud Pubsub的Python应用程序,如下所示:

from google.cloud import pubsub

它在本地工作正常,但在调用AWS Lambda函数时,我得到:

Unable to import module 'handler': cannot import name 'pubsub'

并且没有其他错误或细节。

我的requirements.txt文件:

requests
google-cloud-datastore==1.4.0
google-cloud-pubsub==0.29.0
sqlalchemy

我觉得它可能对pubsub的psutil要求有所影响,因为当我尝试在pubsub之前导入psutil时,我收到此错误:

Unable to import module 'handler': cannot import name '_psutil_linux'

2 个答案:

答案 0 :(得分:1)

如果您使用的是serverless库,解决方法是执行以下操作:

删除项目目录中的.requirements文件夹

将此添加到您的serverless.yml文件(docs here):

data = pd.read_fwf('structure-safety.inp')
data = data.drop(df.columns[0:2], axis=1)

答案 1 :(得分:0)

您需要在包含外部模块的zip文件中预先打包lambda函数。

pip install module-name -t /path/to/project-dir

然后使用随附的模块压缩代码并上传zip文件。

供参考:http://docs.aws.amazon.com/lambda/latest/dg/lambda-python-how-to-create-deployment-package.html