Python Pusher AWS Lambda

Uso de AWS Lambda para enviar notificaciones push a la aplicación Pusher en Python. Cuando instalo Pusher y todas sus dependencias en un directorio y comprimo a Lambda, ejecuto una prueba simple y obtengo este error.

No module named ndg.httpsclient.ssl_peer_verification 

Aquí está el código que estoy tratando de ejecutar.

 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'}) 

He visto varias publicaciones sobre esto, pero la instalación de las dependencias de forma individual no parece estar ayudando.

¡Gracias!

Editar

Aquí está la traza de la stack

 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  import urllib3.contrib.pyopenssl File "/var/task/urllib3/contrib/pyopenssl.py", line 49, in  from ndg.httpsclient.ssl_peer_verification import SUBJ_ALT_NAME_SUPPORT ImportError: No module named ndg.httpsclient.ssl_peer_verification 

Le sugiero que use virtualenv para hacer un seguimiento de las dependencias.

Aquí hay unos pasos de psedo que puede necesitar hacer:

  1. virtualenv env 2. env/bin/pip install  3. cd env/lib/python2.7/site-packages; zip -r mylambda.zip * 4. also zip your lambda handler 

Si instaló todo correctamente, el archivo zip mylambda.zip contendrá todo lo que necesita.

Esto puede sonar tonto, pero no le asignes un nombre al pulsador de variables locales. El enlace de las variables en la función lambda ocurre tarde, durante su ejecución, y en un ámbito que puede no estar esperando.

No estoy sugiriendo que esta sea la respuesta completa, pero haga un import pusher y cambie a myPusher = pusher.Pusher... para ver si cambia el mensaje de error. Si no es así, entonces el problema está en otra parte.

Agregar un archivo vacío __init__.py al directorio ndg solucionó este problema.