我是 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
提交
取消