2016-03-22 2 views
0

Использование AWS Lambda для отправки push-уведомлений в приложение Pusher на Python. Когда я устанавливаю Pusher и все его зависимости в каталог, а zip до Lambda, я запускаю простой тест и получаю эту ошибку.Python Pusher AWS 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 

ответ

0

Добавление пустого файла __init__.py в каталог ndg устраняет эту проблему.

0

Я хотел бы предложить вам использовать 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 

Если вы установили все правильно, то почтовый файл mylambda.zip будет содержать все, что вам нужно.

+0

Yah Я видел его как другой вариант в AWS docs vs 'pip install -t directory pusher' Я отдам его и вернусь к вам. Спасибо за совет. – jamesmpw

+0

Только что прошел через ваш процесс (что намного проще, чем установить btw), и я все равно получаю ту же ошибку. Я добавил, что трассировка отправилась на мой оригинальный пост для получения дополнительных разъяснений. Что-то происходит с пакетом Requests. – jamesmpw

0

Это может показаться глупым, но не назовите ваш локальный переменный толкатель. Связывание переменных в лямбда-функции происходит поздно, во время ее выполнения и в области, которую вы, возможно, не ожидаете.

Я не предлагаю, чтобы это был полный ответ, но сделайте import pusher и измените на myPusher = pusher.Pusher..., чтобы узнать, не меняется ли сообщение об ошибке. Если это не так, то проблема лежит в другом месте.

+0

Это очень хороший комментарий. –

+0

Интересно. Лемм придает ему вихрь. – jamesmpw

+0

Дал ему шанс. Тот же ImportError. Однако это оставит. Хорошая точка зрения. – jamesmpw

Смежные вопросы