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

Aws lambda 来自无服务器框架lambda函数中cloudfront的错误,aws-lambda,serverless-framework,serverless,Aws Lambda,Serverless Framework,Serverless,我正在尝试部署一个简单的Slack lambda api,它使用@Slack/client库从特定通道删除成员和固定消息。我遇到的问题是函数执行时没有问题,它删除通道成员时没有问题,但我的Lambda函数不断返回: HTTP/1.1 502 Bad Gateway ... X-Cache: Error from cloudfront ... { "message": "Internal server error" } 作为回应主体。当我使用sl

我正在尝试部署一个简单的Slack lambda 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),
      })
    })
  })
};
我尝试过的事情:

  • 返回响应,而不是使用
    回调
  • 使用承诺和异步等待
  • 使用
    sls invoke local
  • 我的大部分搜索显示这可能是一个权限问题,但所有的引用都是针对s3的使用,而我没有使用s3
问题
  • 为什么我会出现这个错误,以及如何解决这个问题
  • 在处理函数中引用之后,我使用的是
    JSON.stringify
    。使用
    无服务器框架
    ,如何避免使用Lambda代理集成

请添加console.log,以便通过cloudwatch和使用x射线进行详细记录。cloudfront的一些典型问题: -大量时间传播到边缘位置(可能需要重新创建cdn)
-日志来自lambda@edge位于调用的区域

我遇到了类似的问题。结果发现我找到处理程序的路径有错误。