首页 > 解决方案 > 来自 lambda 函数的 API 网关的 502 内部服务器错误响应

问题描述

这是我的 lambda 函数:我现在显然已经取消了配置

exports.handler = (event, context) => {
    var config = {

    };
    firebase.initializeApp(config)

    const gymData = firebase.database().ref("gymData/exercises")
    axios.get('https://------/gymData/exercises.json').then(({data}) => {
      const returnedData = Object.values(data)
      const response = {
        statusCode: '200',
        body: JSON.stringify(returnedData),
        headers: {
          'Content-Type': 'application/json',
        }
      }
      context.succeed(response)
    })
};

当我测试我的 lambda 时,它会以正确的形式返回 json,这只是该数据的一个片段

{
  "statusCode": "200",
  "body": "[{\"bodyPart\":\"arms\",\"cardio\":false,\

但是,每当我调用 API 网关来触发 lambda 并对其进行测试时,我都会收到 502。在 API 页面上它只是说

{
  "message": "Internal server error"
}

我得到这个有什么理由吗?

我做了一些谷歌搜索,大多数答案说你必须返回一个statusCode. 显然我正在这样做,但它仍然坏了

有任何想法吗?

也许我调用 api 网关错误?

标签: javascriptnode.jsamazon-web-servicesaws-lambdaaws-api-gateway

解决方案


弄清楚了。我没有为它设置权限facepalm。我正在使用 ANY 请求。但是一旦我做了一个获取请求,它就起作用了。


推荐阅读