AWS AppSync增强型订阅过滤功能无法正常工作
AWS AppSync增强型订阅过滤无数据返回问题解决
在使用AWS AppSync增强型订阅过滤功能时,若你按照文档配置了如下响应映射模板:
## Response Mapping Template - onSpecialTicketCreated subscription $extensions.setSubscriptionFilter($util.transform.toSubscriptionFilter($util.parseJson($ctx.args.filter))) $util.toJson($context.result)
但请求映射模板使用极简版本:
{ "version": "2017-02-28" }
会导致订阅完全无法返回数据。
问题原因
增强型订阅过滤依赖请求映射模板将订阅参数(如$ctx.args.filter)传递到处理流程中,空的请求模板无法让AppSync获取到过滤匹配所需的参数,自然无法筛选出符合条件的事件返回给订阅者。
正确的请求映射模板配置
请求映射模板需要明确传递订阅的过滤参数,示例如下:
{ "version": "2017-02-28", "payload": { "filter": "$util.toJson($ctx.args.filter)" } }
核心是要把订阅请求中的filter参数传递下去,确保AppSync能基于该参数完成事件匹配(可根据你的数据源类型调整模板细节)。
验证逻辑
配置完成后,触发对应的数据变更事件(比如创建SpecialTicket),只要事件数据符合filter中定义的条件,订阅端就能收到对应的推送数据。
内容的提问来源于stack exchange,提问作者FelixRe_
相关产品推荐
相关产品推荐

