我是 AWS 的新手,我正在嘗試部署一個簡單的 lambda 服務并從我的本地計算機調用它。拉姆達:import jsonimport pandasdef lambda_handler(event, context): message = 'Hello {} {}!'.format(event['first_name'], event['last_name']) return { 'message' : message } 當我在 AWS env 上運行測試時它確實有效,但是當我嘗試在 python 上進行相同類型的測試時,我在 API 網關上的 rest API 上收到 502 錯誤,在 API 網關上的 HTTP API 上也收到錯誤 500。測試 AWS:{ "first_name": "alooo", "last_name": "arrombado" }本地 Python 測試:import resquestsr2 = requests.post('https://ia81y8e8ye.execute-api.eu-west-3.amazonaws.com/default/PortAPI', json = {'first_name':'jose','last_name':'example'})r2<Response [502]>當嘗試部署 python flask API 時,EC2 實例上會發生同樣的問題。對于 Lambda,我沒有使用任何類型的許可,所以我認為它有一個開放的流量。另一方面,在 EC2 中,我將所有通信設置為入站和出站到任何地方。我不知道是否需要更多信息。謝謝您的幫助。
1 回答

HUWWW
TA貢獻1874條經驗 獲得超12個贊
如果您運行以下命令:
print(r2.content)
你會看到你得到:
b'{"message":?"Internal?server?error"}'
這可能意味著您的lambda 很可能失敗了。在這種情況下,您必須檢查 CloudWatch Logs 并搜索任何錯誤消息。
發生這種情況是因為您可能event
在函數中使用了不正確的方法,和/或返回了不正確的響應類型。其他原因可能是pandas
您的 lambda 中缺少。
正確的 lambda 函數示例
假設 lambda 代理集成,正確的函數是:
import json
def lambda_handler(event, context):? ??
? ??
? ? body = json.loads(event['body'])
? ??
? ? print(body)
? ??
? ? message = 'Hello {} {}!'.format(body['first_name'],?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? body['last_name'])??
? ? return {
? ? ? ? "statusCode": 200,
? ? ? ? 'body' : message
? ? }
添加回答
舉報
0/150
提交
取消