首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无服务器框架lambda函数中cloudfront的误差

无服务器框架lambda函数中cloudfront的误差
EN

Stack Overflow用户
提问于 2019-07-15 16:09:31
回答 1查看 1.5K关注 0票数 1

我正在尝试部署一个简单的Slack,它使用@slack/client库从特定的通道删除成员和固定消息。我遇到的问题是函数执行时没有问题,而且它没有问题地移除通道成员,但是我的Lambda函数继续返回:

代码语言:javascript
复制
HTTP/1.1 502 Bad Gateway
...
X-Cache: Error from cloudfront
...

{
    "message": "Internal server error"
}

作为反应体。当我使用sls logs -f api检查日志时,我也没有看到任何错误。我看到我的函数的console.log成功地执行。

我的serverless.yml如下:

代码语言:javascript
复制
provider:
  name: aws
  runtime: nodejs10.x
  profile: serverless

functions:
  api:
    handler: handler.api
    timeout: 30
    events:
      - http:
          method: POST
          path: clean

我的api代码,我已经删除了不必要的函数代码,因为他们正在做他们的工作,是:

代码语言:javascript
复制
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的使用,这是我没有使用的东西。

问题

  • 为什么我会收到这个错误,以及如何解决这个问题?
  • 在处理程序函数中引用this之后,我将使用JSON.stringify。使用serverless-framework,如何避免使用Lambda代理集成?
EN

回答 1

Stack Overflow用户

发布于 2019-07-15 17:41:30

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57043556

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档