Como fazer upload de arquivos de dependência para AWS Lambda

Como fazer upload de arquivos de dependência para AWS Lambda

Estou tentando criar uma função AWS Lambda baseada em python e preciso importar um módulo. Eu segui as instruções emCriando um pacote de implantação (Python)na Amazon.

Quando eu crio e carrego o arquivo ZIP, o ZIP inclui:

O conteúdo principal do ZIP, sendo o testador2 meu principal programa python

Na pasta usaddress, coloquei as dependências usaddress, embora eu esteja apenas supondo que é a esse lugar que elas pertencem.

De qualquer forma, quando faço o upload do arquivo para o Lambda, retorna um erro:

{ 
"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

O arquivo usaddress/pycrfsuite/_pycrfsuite.pyd está sendo importado pelo usaddress/pycrfsuite __init_arquivo. O _pycrfsuite está no diretório correto, mas não sei por que está sendo ignorado.

Como faço para que isso funcione?

Responder1

Depois de muita pesquisa, percebi que os arquivos .pyd (que é o tipo de arquivo que estava sendo ignorado) são arquivos cython compilados e que compilam de maneira diferente em sistemas DOS e UNIX. Então abri uma instância do EC2, instalei o usaddress, a biblioteca de dependências, e copiei no arquivo .so a instância do ec2 compilada.

Isso acabou funcionando, então era realmente um problema de arquivos de sistema incompatíveis.

informação relacionada