配置HTTP API Gateway+Lambda遇500错误及路由集成问题,如何修复?
修复HTTP API Gateway + Lambda的500错误及路由/权限问题
一、解决路由缺失问题
根据错误提示,你的HTTP API未配置路径/*并关联指定Lambda集成,操作步骤如下:
- 登录AWS控制台,进入API Gateway服务,定位到ID为
xxx的目标HTTP API。 - 切换到路由标签页,点击创建路由:
- 路径输入框填写
/*(用于匹配所有子路径请求); - 方法选择
ANY(适配GET/POST等所有HTTP方法,也可根据需求指定特定方法)。
- 路径输入框填写
- 在路由创建流程的集成环节,选择Lambda函数:
- 区域选择
us-east-1,输入Lambda函数名lambda-name,确认集成ARN自动匹配arn:aws:lambda:us-east-1::function:lambda-name; - 完成路由创建后,等待API部署生效。
- 区域选择
二、修复IAM权限问题
确保API Gateway的执行角色拥有调用Lambda函数的权限,同时Lambda资源策略允许API Gateway触发:
- 配置API Gateway执行角色权限
- 进入IAM控制台,找到该HTTP API使用的执行角色(可在API Gateway的集成详情页查看角色ARN);
- 为角色添加权限:
- 方式一:直接附加
AWSLambdaRole托管策略; - 方式二:创建自定义内联策略,内容如下:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "lambda:InvokeFunction", "Resource": "arn:aws:lambda:us-east-1::function:lambda-name" } ] }
- 方式一:直接附加
- 验证Lambda资源策略
- 进入Lambda控制台,打开
lambda-name函数的配置-权限标签页; - 在资源策略区域,确认存在允许API Gateway调用的规则,示例如下:
{ "Version": "2012-10-17", "Id": "default", "Statement": [ { "Sid": "AllowAPIGatewayInvoke", "Effect": "Allow", "Principal": { "Service": "apigateway.amazonaws.com" }, "Action": "lambda:InvokeFunction", "Resource": "arn:aws:lambda:us-east-1::function:lambda-name", "Condition": { "ArnLike": { "AWS:SourceArn": "arn:aws:execute-api:us-east-1:<你的AWS账户ID>:xxx/*" } } } ] } - 若缺失该策略,点击添加权限,选择API Gateway作为触发源,关联目标HTTP API并生成策略。
- 进入Lambda控制台,打开
完成以上配置后,重新测试API调用,即可解决500错误及路由/权限问题。
内容的提问来源于stack exchange,提问作者Anton
相关产品推荐
相关产品推荐

