Python 蟒蛇推手AWS Lambda

Python 蟒蛇推手AWS Lambda,python,amazon-web-services,lambda,pusher,Python,Amazon Web Services,Lambda,Pusher,使用AWS Lambda向Python中的Pusher应用程序发送推送通知。当我将Pusher及其所有依赖项安装到一个目录并压缩到Lambda时,我运行了一个简单的测试并得到了这个错误 No module named ndg.httpsclient.ssl_peer_verification 这是我试图运行的代码 from pusher import Pusher pusher = Pusher(app_id=u'id', key=u'key', secret=u'secret') def

使用AWS Lambda向Python中的Pusher应用程序发送推送通知。当我将Pusher及其所有依赖项安装到一个目录并压缩到Lambda时,我运行了一个简单的测试并得到了这个错误

No module named ndg.httpsclient.ssl_peer_verification
这是我试图运行的代码

from pusher import Pusher

pusher = Pusher(app_id=u'id', key=u'key', secret=u'secret')
def createPitchZip(context, event):
    pusher.trigger('testchannel', 'testevent', {u'some': u'data'})
我看过几篇关于这方面的文章,但是单独安装依赖项似乎没有什么帮助

谢谢

编辑

这是堆栈跟踪

No module named ndg.httpsclient.ssl_peer_verification: ImportError
Traceback (most recent call last):
  File "/var/task/lambda.py", line 5, in createPitchZip
    pusher = Pusher(app_id='***', key='***', secret='***')
  File "/var/task/pusher/pusher.py", line 42, in __init__
    from pusher.requests import RequestsBackend
  File "/var/task/pusher/requests.py", line 12, in <module>
    import urllib3.contrib.pyopenssl
  File "/var/task/urllib3/contrib/pyopenssl.py", line 49, in <module>
    from ndg.httpsclient.ssl_peer_verification import SUBJ_ALT_NAME_SUPPORT
ImportError: No module named ndg.httpsclient.ssl_peer_verification
没有名为ndg.httpsclient.ssl\u peer\u的模块验证:ImportError
回溯(最近一次呼叫最后一次):
createPitchZip中的文件“/var/task/lambda.py”,第5行
pusher=pusher(应用程序id='***',键='***',密码='***'))
文件“/var/task/pusher/pusher.py”,第42行,在__
从pusher.requests导入RequestsBackend
文件“/var/task/pusher/requests.py”,第12行,在
导入urllib3.contrib.pyopenssl
文件“/var/task/urllib3/contrib/pyopenssl.py”,第49行,在
从ndg.httpsclient.ssl\u对等验证导入Subc\u ALT\u NAME\u支持
ImportError:没有名为ndg.httpsclient.ssl\u对等验证的模块

我建议您使用
virtualenv
来跟踪依赖关系

以下是您可能需要执行的psedo步骤:

 1. virtualenv env
 2. env/bin/pip install <your packages>
 3. cd env/lib/python2.7/site-packages; zip -r mylambda.zip *
 4. also zip your lambda handler 
1。虚拟环境
2.环境/垃圾箱/管道安装
3.cd env/lib/python2.7/site-packages;zip-r mylambda.zip*
4.同时也拉上你的lambda处理器

如果您正确安装了所有内容,那么zip文件
mylambda.zip
将包含您需要的所有内容。

这听起来可能很愚蠢,但不要命名您的局部变量pusher。lambda函数中变量的绑定发生得较晚,在其执行期间,并且在您可能不期望的范围内


我并不是说这是完整的答案,而是做一个
import pusher
并更改为
myPusher=pusher.pusher…
,查看错误消息是否更改。如果没有,那么问题就出在别处。

ndg
目录中添加一个空的
\uuu init\uuuuuy.py
文件修复了这个问题。

是的,我在AWS文档与
pip install-t目录推送器中看到了他的另一个选项。
我会尝试一下,然后再给你回复。谢谢你的建议。刚刚通过了你的过程,(这比pip安装更容易),我仍然得到同样的错误。我已经添加了回溯到我原来的帖子,以获得更多的澄清。请求包发生了一些问题。很有趣。让我试一试。同样的恐怖。不过我会离开的。说得好。