Aurora MySQL调用Lambda函数持续超时问题求助
解决Aurora MySQL调用Lambda超时问题的排查步骤
网络连通性验证
- 确认RDS实例所在子网能访问Lambda服务端点:如果是私有子网,必须配置Lambda的VPC端点或NAT网关,否则RDS无法发起对Lambda API的请求。可以在同子网的EC2实例上执行以下命令测试连通性:
能连通说明网络正常,不通则需检查子网路由表、NAT/端点配置。telnet lambda.eu-west-1.amazonaws.com 443
IAM权限复核
- 不要仅确认角色已添加到RDS参数组,需检查角色的权限策略是否明确允许
lambda:InvokeFunction操作,且资源范围包含目标ping_api函数。示例权限策略:
可先将资源设为{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "lambda:InvokeFunction", "Resource": "arn:aws:lambda:eu-west-1:436359:function:ping_api" } ] }*测试,排除权限范围限制问题。
安全组规则检查
- RDS的安全组必须允许出站HTTPS(443端口)流量,目标可设为Lambda服务IP段或VPC端点IP。即使与Lambda同安全组,也要确认出站规则不是默认拒绝状态。
日志与调用方式测试
- 切换使用
lambda_sync调用,尝试获取更具体的错误信息(同步调用可能触发不同的日志输出)。 - 查看Lambda的CloudWatch日志:如果没有RDS发起的请求记录,说明请求未到达Lambda,问题出在网络或权限;如果有请求记录但执行超时,检查Lambda的执行时间是否超过RDS的
lambda_execution_timeout参数(默认30秒),或Lambda自身的资源、权限配置。
Lambda配置检查
- 确认Lambda的并发数未被耗尽,执行角色权限正常(比如ping操作所需的网络访问权限)。Postman能调用不代表RDS的请求能触发相同执行路径,需对比两种调用的上下文差异。
内容的提问来源于stack exchange,提问作者biellz1221
相关产品推荐
相关产品推荐

