Python 蟒蛇推手AWS Lambda
使用AWS Lambda向Python中的Pusher应用程序发送推送通知。当我将Pusher及其所有依赖项安装到一个目录并压缩到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
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安装更容易),我仍然得到同样的错误。我已经添加了回溯到我原来的帖子,以获得更多的澄清。请求包发生了一些问题。很有趣。让我试一试。同样的恐怖。不过我会离开的。说得好。