2016-03-17 17 views
12

AWSラムダと互換性のある完全にコンパイルされたパンダを持っている人はいますか?パンダス&AWSラムダ

検索を数時間行った後、私が探しているものを見つけることができず、この件に関するドキュメントが存在しません。

ラムダ関数でパッケージにアクセスする必要がありますが、ラムダ関数で使用するためにパッケージを正しくコンパイルするのに失敗しました。

コンパイルの代わりに誰でも再現可能な手順でバイナリを作成できますか?

残念ながら、私は、主にパンダと私が必要としないscipyを組み合わせ、余分な負担をかけるため、ガイドのどの部分も正常に再現できませんでした。

+0

コードをコンパイルしているパンダのようなPythonパッケージ、などのアドバイスのためのhttp://stackoverflow.com/a/43766512/345606で答えを確認してください。 – Kevin

答えて

7

一部の周りいじりとたくさんの私はすべての作業とセットアップだけで、将来的にクローニングすることができるレポを作ることができたグーグルの後。

重要ポイント:

  1. すべての静的パッケージには、Pythonのコードを実行する前のlib /フォルダ内のライブラリをロードする必要が
  2. EC2のアマゾンLinuxインスタンス上でコンパイルする必要があります。

のGithubレポ: https://github.com/moesy/AWS-Lambda-ML-Microservice-Skeleton

+0

@Moe [回答のうち1つを受け入れてください](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) – peralmq

+0

@dsvenssonもう一度リポジトリはソースからバイナリをビルドします。 – Moe

13

最近のパンダのバージョン(またはおそらくマシンのもの)を使用できるはずです。あなたは、このように自分でパンダとラムダパッケージを作成することができます

  1. まずパンダパッケージはつまりPythonのターミナルを開き、入力し、あなたのマシンにインストールされている場所を見つけるようなものを印刷する必要があります

    import pandas 
    pandas.__file__ 
    

    '/usr/local/lib/python3.4/site-packages/pandas/__init__.py'

  2. この場所(この場合は'/usr/local/lib/python3.4/site-packages/pandas)のpandasフォルダをコピーして、リポジトリに配置します。
  3. パッケージこのようなパンダを使用してラムダコードは:

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

また、S3にあなたのコードを配置し、あなたのラムダは、S3からコードを使用することができます。

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

Here's the repo that will get you started