来自无服务器框架 lambda 函数中的 Cloudfront 的错误



我正在尝试部署一个简单的Slack lambda api,该API使用@slack/client库从特定通道中删除成员和固定消息。我遇到的问题是函数执行没有问题,并且它正在毫无问题地删除通道成员,但我的 Lambda 函数不断返回:

HTTP/1.1 502 Bad Gateway
...
X-Cache: Error from cloudfront
...
{
"message": "Internal server error"
}

作为响应正文。当我使用sls logs -f api检查日志时,我也没有看到任何错误。我看到我的函数的控制台.log已成功执行。

serverless.yml如下:

provider:
name: aws
runtime: nodejs10.x
profile: serverless
functions:
api:
handler: handler.api
timeout: 30
events:
- http:
method: POST
path: clean

我的 api 代码,我已经删除了不必要的功能代码,因为它们正在工作,是:

module.exports.api = async (event, context, callback) => {
let channel = JSON.parse(event.body).ctf
let id = await findChannelId(channel)
removeMembersFromChannel(id[0]).then(() => {
removePinsFromChannel(id[0]).then(() => {
callback(null, {
statusCode: 200,
body: JSON.stringify({
message: `Cleaned ${channel} ${id}`,
}, null, 2),
})
})
})
};

我尝试过的事情:

  • 返回响应而不是使用callback
  • 使用承诺和异步等待
  • 使用sls invoke local在本地测试函数
  • 我的大部分搜索都显示这可能是权限问题,但所有参考都是针对 S3 使用的,这是我没有使用的。

问题

  • 为什么会出现此错误,以及如何解决此问题?
  • 在处理函数中引用此内容后,我正在使用JSON.stringify.使用serverless-framework,如何避免使用 Lambda 代理集成?

请添加控制台.log,以便通过 cloudwatch 进行详细日志记录并使用 X 射线。Cloudfront 的一些典型问题: - 大量时间传播到边缘站点(也许您需要重新创建 CDN) - 来自位于调用区域中的lambda@edge日志

相关内容

  • 没有找到相关文章

最新更新