AWS AppSync调用GraphQL API返回400错误,Lambda未触发
AWS AppSync调用GraphQL API返回400且Lambda未触发的排查方案
检查GraphQL Schema的参数约束
确认getUserData查询定义中,inputArguments参数的类型是否允许空对象。如果Schema里该参数标记为非空(!),且对应的Input类型包含必填字段,空对象会直接触发AppSync的参数校验失败,请求不会传递到Lambda。
示例错误Schema场景:type Query { getUserData(inputArguments:! UserInput): UserData } input UserInput { userId:! String }这种情况下,空的
inputArguments会触发校验错误,返回400。验证变量与参数的匹配性
核对$inputArguments的类型是否与Schema定义完全一致,检查参数名、字段名的拼写和大小写是否匹配,避免因变量类型不匹配导致的请求拦截。查看AppSync CloudWatch日志定位具体错误
进入AppSync控制台对应API的监控 -> 日志模块,查看400请求的详细日志。日志会明确给出错误原因:比如参数校验失败、请求格式错误、映射模板逻辑报错等,这是最快定位问题的方式。排查Resolver映射模板逻辑
检查getUserData对应的Request Mapping Template,如果模板中包含输入参数的校验逻辑(比如非空判断),空对象可能触发模板内的错误,导致AppSync直接返回400,不会调用Lambda。
示例模板中的校验逻辑:#if (!$ctx.args.inputArguments.userId) $util.error("userId is required", "BAD_REQUEST") #end确认AppSync权限与Resolver配置
检查AppSync服务角色是否具备调用目标Lambda的权限;同时确认Resolver是否正确关联了Lambda数据源,避免因配置错误导致请求在前置阶段被阻断。
内容的提问来源于stack exchange,提问作者DilLip_Chowdary
相关产品推荐
相关产品推荐

