抱歉这个愚蠢的问题,但我尝试了一切。
我有一个来自Lambda函数的AWS API网关,我只需要返回没有正文的HTTP代码200。如果lambda返回一个空字符串,则正文显示“”(2个引号)。如果lambda返回null,则正文显示单词null。
有什么收获?如何归还空体?
有关信息,我使用Slack dash命令来调用API。因此调用返回HTTP 200 OK,结果由POST在响应URL中发送;因此可以在HTTP结果之后进行处理,以避免超时问题。
答案 0 :(得分:5)
如果您正在使用" lambda代理集成"在"集成请求"部分(参见附件截图),您只需通过以下结构返回一个空字符串。
module.exports.hello = (event, context, callback) => {
const response = {
statusCode: 200,
body: ''
};
callback(null, response);
};
答案 1 :(得分:1)
我遇到了完全相同的问题。 Lambda代理集成对我不起作用。 (Lambda没有收到来自API Gateway的请求。我认为代理已禁用Integrated Request
> Mapping Template
,该代理将Slack的application/x-www-form-urlencoded
转换为Lambda可以读取的JSON。)
相反,我得到了另一个解决方案:使用Integrated Response
。选择200
并添加Mapping Template
,然后填写以下代码:
#set($inputRoot = $input.path('$'))
保存并部署了API之后(请确保在Lambda函数中返回null),我已解决了问题。 (就我而言,我想隐藏用户键入的斜杠命令,仅显示结果。)
我已经引用了这篇文章:https://medium.com/@farski/learn-aws-api-gateway-with-the-slack-police-ca8d636e9fc0