首先,我是整个AWS本身的新手。我正在尝试使用AWS lambda和API Gateway解决问题。
string
。如下所示:def lambda_function(event, context): if event['some_property']: return "SUCCESS: Operation performed successfully." else return "ERROR: Operation failed."
在触发器下,我设置了一个网关API。
在创建资源的API网关服务中,集成请求被配置为传递给lambda函数。我测试了lambda函数,它正确返回值。
但是,如果我卷曲API发出帖子请求,它会返回服务器错误。消息是这样的。
{" message":"内部服务器错误"}
application/json
的正文映射模板并使用空模型模板,那么它可以正常工作。我想,我在Integration Response部分遗漏了一些东西。我想要的是,如果操作成功执行,则返回200
状态代码和成功消息。
答案 0 :(得分:1)
我首先建议使用'代理'Lambda集成。配置和使用起来要容易得多。以下是http://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-set-up-simple-proxy.html和http://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-create-api-as-simple-proxy-for-lambda.html
的文档但听起来你没有正确映射响应。很难从描述中说出问题所在,但您可以使用示例“Petstore API”来查看响应应该是什么样子。这可能会有所帮助。您可以在“创建API”屏幕中看到该选项。
答案 1 :(得分:1)
执行Lambda函数后需要传递statusCode
。如果您没有通过它,API网关默认会触发502 Bad Gateway
。
message = {
'message': 'Execution started successfully!'
}
return {
'statusCode': 200,
'headers': {'Content-Type': 'application/json'},
'body': json.dumps(message)
}