使用 API Gateway 处理 AWS Lambda 函数中的错误

2024-04-04

每次我遇到语法错误或者我只想在 AWS Lambda 函数中发送自定义错误时,我都会收到相同的 502 Bad Gateway 响应(内部服务器错误)。

我尝试了这个简单的代码:

module.exports.saveImage = (event, context, callback) => {
    callback("the sky is falling!"); // also tried sending new Error("the sky is falling!")
}

并且仍然得到相同的“内部服务器错误”响应,而不是定义的响应。

这是我在 serverless.yml 文件中的函数:

saveImage:
  handler: handler.saveImage
  environment:
    BUCKET: ${self:custom.bucket}
  events:
  - http:
      path: saveImage
      method: post
      cors: true,
      integration: lambda-proxy

我可能误解了这篇文章中的某些内容吗?它似乎收到了“错误消息”:“天塌下来了!”在 API 网关响应中(这就是我所期望的)。

https://aws.amazon.com/es/blogs/compute/error-handling-patterns-in-amazon-api-gateway-and-aws-lambda/ https://aws.amazon.com/es/blogs/compute/error-handling-patterns-in-amazon-api-gateway-and-aws-lambda/


如果你使用integration: lambda-proxy,您需要从 Lambda 返回正确的错误响应,而不是从 API Gateway。

在这种情况下,您可以使用已经尝试过的方法:

callback(null, { body: JSON.stringify( { errorMessage: "my error" })

我想我们可以使用第一个参数来发送错误

你可以,如果你使用integration: lambda在你的serverless.yml但就你而言,你不是。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 API Gateway 处理 AWS Lambda 函数中的错误 的相关文章

随机推荐