2017-06-18 18 views
0

私はAWSにPython 3.6ラムダ関数を持っています。私はrequirements.txtファイルからすべてのライブラリをパッケージ化し、展開しました。私の機能をトリガすると、私はこのエラーを取得:AWSラムダでPyrebaseモジュールを読み込めません

module initialization error: Cannot load native module 'Crypto.Hash._SHA256' 

私は見つけることができる唯一の参照は、このclosed ticketはパッケージライブラリです。しかし、この問題の原因は何ですか?どうすれば修正できますか?

答えて

0

この問題は、ビルド環境に関連している可能性があります。 Pythonの多くの数学ライブラリは、パフォーマンスのためにネイティブにコンパイルされたCモジュールに依存しています。その詳細について読むことができますhereビルド環境がラムダの実行環境と一致しない場合、pythonはビルド環境用にコンパイルされたネイティブモジュールをロードすることができません。 AWS Lambdaの実行環境はamsn-ami-hvm-2016.03.3.x86_64-gp2に基づき、hereと記載されています。

aws/codebuild/python:3.5.2ビルドイメージを使用してAWS CodeBuildを使用してPythonデプロイメントパッケージを作成すると、同じ問題が発生しました。私のビルドイメージとしてthisを使用した後、ラムダはネイティブモジュールをロードすることができました。配備パッケージをローカルに構築する場合は、ラムダ・ランタイムと互換性のあるイメージを持つドッカー・コンテナをスピンアップし、そのコンテナ上に構築することをお勧めします。

関連する問題