2016-03-17 4 views
12

Qualcuno ha una versione completamente compilata di panda compatibile con AWS Lambda?Pandas & AWS Lambda

Dopo aver cercato in giro per alcune ore, non riesco a trovare quello che sto cercando e la documentazione su questo argomento è inesistente.

Ho bisogno di accedere al pacchetto in una funzione lambda, tuttavia non sono riuscito a compilare correttamente il pacchetto per l'utilizzo in una funzione Lambda.

Al posto della compilation qualcuno può fornire passaggi riproducibili per creare i binari?

Purtroppo non sono stato in grado di riprodurre correttamente nessuna delle guide sui soggetti in quanto combinano per lo più panda con scipy di cui non ho bisogno e aggiungo un ulteriore livello di difficoltà.

+0

Controllare la risposta a http://stackoverflow.com/a/43766512/345606 per consigli su inclusi i pacchetti Python, come Panda, che hanno compilato il codice. – Kevin

risposta

7

Dopo un po 'armeggiare intorno e il lotto di googling ho potuto far funzionare tutto e la configurazione di un repo che può solo essere clonato in futuro.

takeaway chiave:

  1. Tutti i pacchetti statici devono essere compilate su un Amazon EC2 esempio Linux
  2. Il codice python ha bisogno di caricare le librerie nella lib/cartella prima di eseguire.

Github repo: https://github.com/moesy/AWS-Lambda-ML-Microservice-Skeleton

+0

@Moe per favore [contrassegnare una delle risposte come accettate] (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) – peralmq

+0

@dsvensson si prega di dare una seconda occhiata al repo costruisce i binari dalla fonte. – Moe

13

Credo che dovresti essere in grado di utilizzare la versione recente dei panda (o probabilmente, quella sul tuo computer). È possibile creare un pacchetto di lambda con i panda da soli come questo,

  1. prima trovare dove il pacchetto panda è installato sulla vostra macchina cioè Aprire un terminale di pitone e digitare

    import pandas 
    pandas.__file__ 
    

    Questo dovrebbe stampare qualcosa di simile '/usr/local/lib/python3.4/site-packages/pandas/__init__.py'

  2. Ora copia la cartella panda da quella posizione (in questo caso '/usr/local/lib/python3.4/site-packages/pandas) e inseriscila nel tuo repository.
  3. pacchetto il codice Lambda con i panda come questo:

    zip -r9 my_lambda.zip pandas/ 
    zip -9 my_lambda.zip my_lambda_function.py 
    

Si può anche distribuire il codice per S3 e rendere il vostro Lambda utilizzare il codice da S3.

aws s3 cp my_lambda.zip s3://dev-code//projectx/lambda_packages/ 

Here's the repo that will get you started