如何在 AWS API 网关中 return 什么都没有?
How to return nothing in AWS API Gateway?
抱歉这个愚蠢的问题,但我什么都试过了。
我有一个来自 Lambda 函数的 AWS API 网关,我需要 return 只有 HTTP 代码 200 没有正文。如果 lambda return 是一个空字符串,正文显示“”(2 个引号)。如果 lambda return 为 null,正文将显示单词 null。
有什么收获?如何return一个空体?
有关信息,我正在使用 Slack dash 命令调用 API。所以调用 return 是一个 HTTP 200 OK,结果由 POST 在响应 url 中发送;所以可以在HTTP结果之后进行处理,以避免超时问题。
如果您在 "integration request" 部分使用 "lambda proxy integration"(见附件截图),您可以通过以下结构简单地 return 一个空字符串。
module.exports.hello = (event, context, callback) => {
const response = {
statusCode: 200,
body: ''
};
callback(null, response);
};
我遇到了完全相同的问题。 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 函数中将 return 设为 null),问题就解决了。 (在我的例子中,我想隐藏用户输入的斜杠命令,只显示结果。)
我参考了这篇文章:https://medium.com/@farski/learn-aws-api-gateway-with-the-slack-police-ca8d636e9fc0
抱歉这个愚蠢的问题,但我什么都试过了。
我有一个来自 Lambda 函数的 AWS API 网关,我需要 return 只有 HTTP 代码 200 没有正文。如果 lambda return 是一个空字符串,正文显示“”(2 个引号)。如果 lambda return 为 null,正文将显示单词 null。
有什么收获?如何return一个空体?
有关信息,我正在使用 Slack dash 命令调用 API。所以调用 return 是一个 HTTP 200 OK,结果由 POST 在响应 url 中发送;所以可以在HTTP结果之后进行处理,以避免超时问题。
如果您在 "integration request" 部分使用 "lambda proxy integration"(见附件截图),您可以通过以下结构简单地 return 一个空字符串。
module.exports.hello = (event, context, callback) => {
const response = {
statusCode: 200,
body: ''
};
callback(null, response);
};
我遇到了完全相同的问题。 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 函数中将 return 设为 null),问题就解决了。 (在我的例子中,我想隐藏用户输入的斜杠命令,只显示结果。)
我参考了这篇文章:https://medium.com/@farski/learn-aws-api-gateway-with-the-slack-police-ca8d636e9fc0