我具有以下lambda函数以及一个API网关触发点:
def lambda_handler(event, context):
resp = {
"statusCode": 200,
"headers": {
"Access-Control-Allow-Origin": "*",
},
"body": "Hello, World!"
}
return resp
当我导航到API端点时,我预计只会看到文本“ Hello,World!”。相反,我看到了整个JSON响应。如何更改此功能,以便它能解释标头和状态代码,而不是解释要在浏览器中呈现的内容?
答案 0 :(得分:1)
假设您的API网关正在使用Lambda代理集成,只需将content-type: text/html
添加到您的响应中即可。
答案 1 :(得分:1)
这是因为通过lambda函数配置lambda的方式。看起来它已配置为Lambda代理。如果要查看整个JSON作为输出,只需禁用Use Lambda Proxy integration
。您可以在API Gateway控制台中找到此配置。
在API网关控制台中启用Use Lambda Proxy integration
,以仅查看“ Hello,World!”。
答案 2 :(得分:0)
一个选项是使用此功能从API网关设置lambda代理集成选项。它只会把你送回你的身体。您可以快速设置。这是官方链接。 link
答案 3 :(得分:0)
Lambda和API Gateway不应用作返回HTML的Web服务器。他们甚至没有为此进行优化,这会浪费资源。
您应该做的是将HTML托管在其他地方,使用JavaScript与API通讯,获取动态数据,然后根据API响应操作HTML。
如果您希望采用无服务器的静态HTML托管方法,建议使用S3 + CloudFront。