2016-08-06 36 views
0

AWS Lambdaにアップロードしたいpythonパッケージがあります。 パッケージは依存関係のない2つの異なるマシンで動作します。 AWS Lambdaに同じフォルダをアップロードする際AWS Lambda Pythonパッケージ - redisというモジュールはありません

はしかし、私は次のエラーを取得する:ここで

Unable to import module 'tweet_analyzer_python/lambda_handler': No module named redis

は、パッケージ内のファイルのリストである:二重チェックするための

. 
|-- event.json 
|-- lambda_handler.py 
|-- redis 
| |-- client.py 
| |-- client.pyc 
| |-- _compat.py 
| |-- _compat.pyc 
| |-- connection.py 
| |-- connection.pyc 
| |-- exceptions.py 
| |-- exceptions.pyc 
| |-- __init__.py 
| |-- __init__.pyc 
| |-- lock.py 
| |-- lock.pyc 
| |-- sentinel.py 
| |-- utils.py 
| `-- utils.pyc 
|-- redis-2.10.5-py2.7.egg-info 
| |-- dependency_links.txt 
| |-- installed-files.txt 
| |-- PKG-INFO 
| |-- SOURCES.txt 
| `-- top_level.txt 
|-- retrying-1.3.3-py2.7.egg-info 
| |-- dependency_links.txt 
| |-- installed-files.txt 
| |-- PKG-INFO 
| |-- requires.txt 
| |-- SOURCES.txt 
| `-- top_level.txt 
|-- retrying.py 
|-- retrying.pyc 
|-- six-1.10.0-py2.7.egg-info 
| |-- dependency_links.txt 
| |-- installed-files.txt 
| |-- PKG-INFO 
| |-- SOURCES.txt 
| `-- top_level.txt 
|-- six.py 
`-- six.pyc 

、私はAWS Lambdaにアップロードされた同じzipファイルをダウンロードして、クリーンなLinuxマシンに入れました。 実行時:

python tweet_analyzer_python/lambda_handler

私は全く問題がありませんでした。

誰かが私に間違っていることを説明できますか?

ありがとうございます!

答えて

1

'lambda_handler.py'をローカルで実行すると、pythonファイル内のメインメソッドが実行されます。ラムダ関数は、lambda_handler.py内のlambda_handlerメソッドを直接呼び出します。

あなたのラムダ・ハンドラは、 'lambda_handler.lambda_handler' を実行するように設定されていないと 'tweet_analyzer_python/lambda_handler'

のどちらかに障害が発生している:

  • 1)tweet_analyzer_pythonするlambda_handler.pyの名前を変更したり
  • 2)ラムダハンドラを 'lambda_handler.lambda_handler'に変更してください。

ハンドラを変更するには、 AWSでラムダに行き、設定を選択し、ハンドラを更新して関数を保存します。

また、あなたのzipラムダ機能にredis depがパッケージされていることを確認してください。

関連する問題