Mangum 适配器无法推断用于 AWS API Gateway 上的事件的处理程序

问题描述 投票:0回答:1

我已将 API 部署到 AWS Lambda,代码是使用 FastAPI 框架和 Mangum 编写的。 AWS Lambda 给出的 URL 运行良好。但是,当我在 API Gateway 上部署 Lambda 时,显示以下错误

{
  "errorMessage": "The adapter was unable to infer a handler to use for the event. This is likely related to how the Lambda function was invoked. (Are you testing locally? Make sure the request payload is valid for a supported handler.)",
  "errorType": "RuntimeError",
  "requestId": "<removed-by-me>",
  "stackTrace": [
    "  File \"/var/task/mangum/adapter.py\", line 76, in __call__\n    handler = self.infer(event, context)\n",
    "  File \"/var/task/mangum/adapter.py\", line 68, in infer\n    raise RuntimeError(  # pragma: no cover\n"
  ]
}

这很奇怪,因为 API url 在 Lambda 上可以工作,但不能在 API Gateway 上工作!额外信息,我使用代理作为资源。

请大家帮忙。

aws-lambda aws-api-gateway fastapi mangum
1个回答
0
投票

看起来一切都很完美,但是 aws lambda 使用 magnum 作为处理程序,并且该处理程序不理解默认的事件结构。因此,您只需使用模板 apigateway-aws-proxy 创建一个新事件。现在更改 PATH 下的一些内容:“/”和 HTTPMETHOD:“GET”。它会给你想要的。请看图片:https://i.stack.imgur.com/l6bhf.png

© www.soinside.com 2019 - 2024. All rights reserved.