我正在尝试部署一个简单的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
检查日志时,也没有看到任何错误。我看到我的函数的console.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
在本地测试功能JSON.stringify
。使用serverless-framework
,如何避免使用Lambda代理集成?答案 0 :(得分:0)
请添加console.log以通过cloudwatch进行详细日志记录,并使用X射线。 Cloudfront的一些典型问题: -需要大量时间传播到边缘位置(也许您需要重新创建CDN) -来自lambda @ edge的日志位于调用的区域