如何解决 API Gateway 端点与 Lambda 集成时出现的问题?

1 分钟阅读
0

我想将 Amazon API Gateway 端点与 AWS Lambda 集成,但我遇到了问题。

简短描述

以下原因可能会导致 API Gateway 端点与 Lambda 集成时出现问题:

  • API Gateway 没有 Lambda 函数权限。
  • 发生节流限制。
  • HTTP 状态代码映射不正确或缺失。
  • Lambda 服务异常未得到管理。

解决方法

**注意:**以下解决方案使用 REST API Gateway 进行故障排除。

在开始之前,打开 Amazon CloudWatch Logs 以对 API Gateway 错误进行故障排除。对于 Log level(日志级别),选择 INFO 以生成所有请求的执行日志。

API Gateway 没有 Lambda 函数权限

当 API Gateway 没有调用 Lambda 函数的权限时,就会出现 Lambda 函数权限无效错误。要解决此问题,请参阅如何解决 API Gateway REST API 中的“Lambda 函数权限无效”错误?

**注意:**如果您使用其他服务来部署您的 API Gateway 资源,例如 AWS CloudFormation,则向 AWS::Lambda::Permission 资源授予权限。

发生节流限制

如果因为请求量大而限制了后端服务,则 API Gateway API 可能会返回内部服务器错误。请激活指数回退和重试机制,然后重试请求。如果问题仍然存在,请检查您的 API Gateway 配额。如果您超过了服务配额,请请求增加配额

由于 Lambda 函数节流问题,您还可能会收到 Rate exceeded(超出速率)和 429 TooManyRequestsException 错误。此外,请参阅如何对出现“Rate exceeded”和 429 ”TooManyRequestsException“错误的 Lambda 函数节流问题进行故障排除?

请求增加 Lambda 函数的并发配额,以免该函数受到节流限制。

状态代码映射不正确或缺失

当 HTTP 状态代码映射不正确或缺失时,您可能会收到一条 500 错误消息,类似于以下内容:

“执行失败,原因时配置错误: 输出映射是指无效的方法响应: 2xx/4xx/5xx”。

要解决此错误,请配置 API 操作的集成请求和响应,以返回正确的状态代码

Lambda 服务异常未得到管理

如果您不管理 Lambda 服务异常,例如 Lambda 函数超时,则会收到 Lambda.Unknown 错误。要防止 Lambda 函数超时,请将您的 Lambda 函数代码设置为幂等

有关更多信息,请参阅 Amazon API Gateway 和 AWS Lambda 中的错误处理模式

相关信息

如何对 API Gateway REST API 的 5xx 错误进行故障排除?