Estoy intentando crear una función AWS Lambda basada en Python y necesito importar un módulo. Seguí las instrucciones enCrear un paquete de implementación (Python)en Amazon.
Cuando creo y subo el archivo ZIP, el ZIP incluye:
En la carpeta usaddress, puse las dependencias de usaddress, aunque sólo supongo que ahí es donde pertenecen.
En cualquier caso, cuando subo el archivo a Lambda, devuelve un error:
{
"errorMessage": "Unable to import module 'Tester2'"
}
START RequestId: e9c2cafe-3705-11e6-a289-5366a5578765 Version: $LATEST
Unable to import module 'Tester2': No module named future.builtins
END RequestId: e9c2cafe-3705-11e6-a289-5366a5578765
El usaddress/pycrfsuite __init_
archivo está importando el archivo usaddress/pycrfsuite/_pycrfsuite.pyd. _pycrfsuite está en el directorio correcto, pero no sé por qué se ignora.
¿Cómo hago para que esto funcione?
Respuesta1
Después de mucha investigación, me di cuenta de que los archivos .pyd (que es el tipo de archivo que se estaba ignorando) son archivos cython compilados y que se compilan de manera diferente en sistemas DOS y UNIX. Entonces abrí una instancia EC2, instalé usaddress, la biblioteca de dependencia y copié el archivo .so que compiló la instancia ec2.
Eso terminó funcionando, por lo que en realidad se trataba de un problema de archivos de sistema incompatibles.