【发布时间】:2019-06-05 07:25:03
【问题描述】:
我上传了一个 AWS Lambda 函数,其中 lambda_handler 如下所示:
import json
def lambda_handler(event, context):
print(event)
return {
'statusCode': 200,
'body': json.dumps('Hello from Lambda!'),
'event': event
}
问题一:返回event
当我使用 Lambda 管理控制台对其进行测试时,我可以创建一个带有参数的测试事件,这些参数也返回完全相同的格式并且一切正常:
{
"key1": "value1",
"key2": "value2",
"key3": "value3"
}
但是,当我使用 Postman 时,我会得到完全不同的东西,这会返回给我:
{
"message": "Internal server error"
}
我怀疑是因为event 看起来更像:
{'resource': '/hello', 'path': '/hello', 'httpMethod': 'GET', 'headers': {'Accept': '*/*', ... etc
问题2:在body中添加json参数会报错
当我尝试在 Postman 中添加 body > raw > JSON(application/JSON) 上面的键时,我得到了错误:
ERROR: The request could not be satisfied
问题
我有两个问题:
- 如何在正文中传递参数并能够使用事件或上下文在 AWS lambda 中捕获它?
- 如何正确返回事件?
【问题讨论】:
-
您是否使用
Content-Type:application/json传递标题? -
在正文中我指定了对吗?
-
不在正文中,而是作为标题。首先在 Postman 上进行测试。此外,您必须为此使用 API 链接?
-
API 链接可能还需要某种身份验证。请分享您在 Postman 上获得的状态码。对于内部服务器错误,很可能是 500。
-
当你在正文中发送信息时,你应该做一个
POST请求。如果您尝试执行GET请求,则正文没有任何意义。这个链接可能有帮助docs.aws.amazon.com/apigateway/latest/developerguide/…
标签: python amazon-web-services http aws-lambda postman