2017-06-18 47 views
0

我在AWS中有一個Python 3.6 lambda函數。我打包了我的requirements.txt文件中的所有庫並進行了部署。當我的函數觸發,我得到這個錯誤:無法在AWS中加載Pyrebase模塊Lambda

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

我能找到的唯一的參考就是這個closed ticket在包庫。但是,這是什麼原因造成的?我如何解決它?

回答

0

此問題可能與您的構建環境有關。 Python中的許多數學重型庫都依賴本地編譯的C模塊來提高性能。你可以閱讀更多關於here如果你的構建環境與lambda的執行環境不匹配,python將無法加載爲你的構建環境編譯的本地模塊。 AWS Lambda的執行環境基於amzn-ami-hvm-2016.03.3.x86_64-gp2,如文檔here所述。

使用AWS CodeBuild使用aws/codebuild/python創建python部署包時遇到了同樣的問題:3.5.2 build image。在使用this作爲我的構建映像之後,lambda能夠加載本地模塊。如果你在本地構建你的部署包,我會建議你啓動一個Docker容器,使用與你的lambda運行時兼容的映像並在該容器上構建。