自定义Lambda函数的GraphQL查询报“Syntax Error: Unexpected Name”错误求助
GraphQL查询定义报错:Syntax Error: Unexpected Name "getDashboardHeaderCount"
问题场景
我想要创建一个可触发Lambda函数的GraphQL查询,编写了如下schema.graphql文件,但出现「Syntax Error: Unexpected Name」错误,不清楚查询名称为何被判定为异常名称。
我的schema代码:
type GetDashboardHeaderCountOutput { instituteCnt: Int, memberCnt: Int, tournamentCnt: Int } type Query { getDashboardHeaderCount: GetDashboardHeaderCountOutput #Line 84 @function(name: "getDashboardHeaderCount-${env}") @auth( rules: [ { allow: groups groups: ["AdminGroup"] } ] ) }
报错信息:
{ "name": "GraphQLError", "classification": "ERROR", "options": { "message": "Syntax Error: Unexpected Name \"getDashboardHeaderCount\"." }, "downstreamException": { "message": "Syntax Error: Unexpected Name \"getDashboardHeaderCount\".", "locations": [ { "line": 84, "column": 3 } ] }, "link": "https://docs.amplify.aws/cli/project/troubleshooting/" }
排查与解决方法
从报错位置(第84行)来看,问题大概率出在语法解析的上下文错误,而非字段名称本身,以下是具体排查方向:
- 检查Query类型的前置语法:查看第84行之前的Query字段定义,确认是否存在未闭合的括号、缺失的逗号或语法错误,比如前一个字段没有正确结束,导致解析器无法识别当前字段名称。
- 清除隐藏特殊字符:第84行可能存在全角空格、不可见控制字符等,导致解析失败。建议删除该行后手动重新输入字段定义。
- 排查重复字段定义:检查整个schema文件,确认是否已经重复定义了
getDashboardHeaderCount这个查询字段,重复定义会触发语法错误。 - 验证指令语法:
- 先简化schema,移除
@auth指令,仅保留字段和@function指令测试是否能正常解析。 - 如果简化后正常,再逐步添加
@auth规则,注意对象字段的逗号格式(比如allow: groups后添加逗号),部分解析器对逗号的要求更严格:@auth( rules: [ { allow: groups, groups: ["AdminGroup"] } ] )
- 先简化schema,移除
内容的提问来源于stack exchange,提问作者Ham Dong Kyun
相关产品推荐
相关产品推荐

