为了账号安全,请及时绑定邮箱和手机立即绑定

无法通过 python 请求从我的本地计算机连接到 Lambda 或 EC2

无法通过 python 请求从我的本地计算机连接到 Lambda 或 EC2

holdtom 2023-06-20 13:42:57
我是 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

    }


查看完整回答
反对 回复 2023-06-20
  • 1 回答
  • 0 关注
  • 77 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信