2017-06-29 60 views
0

我已經使用Zappa將我的應用程序部署到AWS Lambda。部署進展順利,沒有任何問題。但是,當我嘗試通過AWS API Gateway訪問應用程序時,我收到了500條回覆。帶有Zappa的AWS Lambda在「無法導入模塊'處理程序」上失敗:沒有名爲builtins的模塊「

日誌說

無法導入模塊 '處理':無模塊名爲內建

環境上的Python 2.7上運行。我已經將future添加到Pipfile中,但它仍然無效。

當我在LAMBDA檢查代碼,我可以看到下面的代碼

from __future__ import unicode_literals 

import base64 
import boto3 
import collections 
import datetime 
import importlib 
import inspect 
import json 
import logging 
import os 
import sys 
import traceback 
import zipfile 

from builtins import str 

我找不到什麼可以是錯誤的。有人有線索嗎?

+0

您可能在AWS控制檯上錯誤地設置了Lambda處理程序的名稱。 – joarleymoraes

+0

它是handler.lambda_handler,它是Zappa的默認值。爲什麼認爲這是問題? – kontrollanten

回答

0

我解決了這個問題。我使用pipenv來安裝我的軟件包,但由於某些原因,軟件包未安裝在虛擬環境中,這使得Zappa不能將它們包含到AWS Lambda中。我必須通過Settings > Project > Project Interpreter手動在PyCharm中安裝它們並在那裏添加軟件包。謝謝你的幫助。

+1

我更新了python2.7到python3.6並面臨同樣的問題,請不要讓我這將是修復,因爲我不使用PyCharm。僅使用終端。 – CrazyGeek

+0

你是否重新安裝了'pipenv'中的所有軟件包? – kontrollanten

+0

我刪除了以前由'vitualenv env -p python2.7'創建的環境,並且在我剛完成'pip install -r requirements.txt'後創建了一個新的'virtualenv env -p python3.6' – CrazyGeek

0

你可以發佈你的解決方案的圖片(即文件夾結構)?你不能用你的lambda函數打包builtins庫。

相關問題