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

0

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

Quando eu crio e faço o upload do arquivo ZIP, o ZIP inclui:

Napastausaddress,eucolocoasdependênciasusaddress,emboraeuestejaapenassupondoqueéondeelaspertencem.

Emqualquercaso,quandoeufizerouploaddoarquivoparaoLambda,retornaráumerro:

{"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 arquivo usaddress/pycrfsuite __init_ . O _pycrfsuite está no diretório correto, mas não sei porque está sendo ignorado.

Como faço para que isso funcione?

    
por ybordag 20.06.2016 / 19:26

1 resposta

0

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

Isso acabou funcionando, então essa era realmente uma questão de arquivos de sistema incompatíveis.

    
por 21.06.2016 / 17:46