如何在Node.js的AWS Lambda函数中返回HTML代码?报错求助
问题原因与解决方案
你的问题出在Lambda与API Gateway代理集成时的headers格式要求上:当使用API Gateway的Lambda代理集成模式时,返回的headers对象中每个字段的值必须是字符串数组,而你当前用的是单个字符串。
修正后的代码如下:
exports.handler = async (event, context, callback) => { const response = { statusCode: 200, headers: { 'Content-Type': ['text/html'], // 改为数组格式 }, body: "Hi there !", // String()包裹没必要,直接写字符串即可 }; return response; }
补充说明:
- 如果你是直接调用Lambda函数(不通过API Gateway),原来的代码其实是有效的,但一旦通过API Gateway代理集成对外提供服务,就必须遵循它的格式规范,要求headers值为数组(支持同一个header有多个值的场景)。
- 蓝图示例可能针对的是直接调用Lambda的场景,所以没有使用数组格式,这才导致了你遇到的错误。
内容的提问来源于stack exchange,提问作者Thomas Carlton
相关产品推荐
相关产品推荐

