将AppSync作为子图接入Apollo Supergraph后,解决授权调用失败问题
解决AppSync子图接入Apollo Supergraph的权限认证问题
1. 修正rover.yml的格式错误
YAML对缩进要求严格,你当前的配置存在缩进问题,正确的请求头传播配置应为:
headers: all: request: - propagate: named: "x-api-key"
注意named字段必须缩进在propagate层级下,否则配置规则不会生效。
2. 配置Apollo Router的子图专属头部转发
如果使用Apollo Router作为网关,建议直接在Router配置文件(通常为router.yaml)中针对AppSync子图单独设置头部传递规则,比全局配置更精准:
subgraphs: appsync-subgraph: # 替换为你的AppSync子图名称 routing_url: "https://你的AppSync API地址/graphql" headers: request: - propagate: named: "x-api-key"
3. 验证请求头的传递链路
启动Router时开启调试日志,确认请求头是否被正确接收并转发:
./router --log level=debug
查看日志中是否存在x-api-key头部的相关记录,确认Router接收到该头部且已转发至AppSync子图。
4. 确认AppSync API密钥有效性
直接用Postman等工具单独请求AppSync API,携带x-api-key头部验证密钥是否有效,排除密钥本身的问题。
5. Apollo Studio查询时的手动头部设置
在Apollo Studio中执行查询时,需在查询页面的「Headers」面板手动添加x-api-key字段及对应值,仅依赖配置可能无法在Studio测试场景中生效。
内容的提问来源于stack exchange,提问作者srikanth gunuputi
相关产品推荐
相关产品推荐

