2017-02-27 26 views
2

foo.pyという名前のPythonスクリプトがあります。AWS Lambda(Python)のモジュールをインポートできません

def handler(event, context): 
    for record in event['Records']: 
     bucket = record['s3']['bucket']['name'] 
     key = record['s3']['object']['key'] 
     download_path = '/tmp/{}.gz'.format(key) 
     csv_path = '/tmp/{}.csv'.format(key) 
     ... proceed to proprietary stuff 

これがそうのようなzipファイルにあります:私はAWSラムダに、このzipファイルをアップロードして実行するためにAWSラムダ関数を設定している

-foo.zip 
    -foo.py 
    -dependencies 

それはこのように定義されたラムダハンドラ関数を持っていますfoo.handler。しかし、私はそれをテストするたびに、私は"errorMessage": "Unable to import module 'foo'"を取得します。

ここで何が起こっているのでしょうか?

stat --format '%a' foo.pyは、私はPostgresのと一緒にインストールlibpq.soを必要とする私のラムダ関数、でpsycopg2をインポートして、だから、664

+0

はありがたいことに、誰かは、AWSのラムダと連携psycopg2のバージョンを構築していますか?なぜ私はあなたの "メイン"ラムダモジュールをインポートしたいのか分かりません。 – stdunbar

答えて

1

を示しています。 Postgresはラムダ環境にインストールされていないので、psycopg2のインポートに失敗しました。つまり、Amazonのラムダ関数のインポートも失敗しました。しかし、非常に有用なエラーメッセージではありません。あなたがfoo.pyインポートするhttps://github.com/jkehler/awslambda-psycopg2

関連する問題