AWS AppSync-订阅握手期间发生错误

时间:2018-12-24 11:26:54

标签: angular amazon-web-services graphql apollo aws-appsync

当我没有用于订阅的解析器时,我对订阅没有任何问题,但是当我将解析器设置为仅允许特定用户使用时,在我的角度应用程序中会出现此错误

  

appsync.service.ts:187错误:订阅握手期间出错       在新的ApolloError(ApolloError.js:37)       在subscription-handshake-link.js:116       在新的订阅中(Observable.js:183)       在Observable.subscribe(Observable.js:262)       在index.js:20       在ZoneDelegate.push ../ node_modules / zone.js / dist / zone.js.ZoneDelegate.invoke   (zone.js:388)       在Object.onInvoke(core.js:3820)       在ZoneDelegate.push ../ node_modules / zone.js / dist / zone.js.ZoneDelegate.invoke   (zone.js:387)       在Zone.push ../ node_modules / zone.js / dist / zone.js.Zone.run(zone.js:138)       在zone.js:872

解析器

数据源类型:无

配置请求映射模板。

esdigibonyan.users

配置响应映射模板。

#set ($a= $context.identity.cognitoIdentityAuthProvider.split(":"))
#set ($s= $a.get(2))
#set ($stringLength = $s.length() - 1) 
#set ($sub = $s.substring(0,$stringLength))


{
    "version": "2017-02-28",
    "payload": {
        "from": "$sub",
        "id":"${context.arguments.id}"
    }
}

仅为简化起见,我尝试了此解析器响应,但我遇到了相同的错误

#if(${context.arguments.id} == ${context.result.from})
    $util.toJson($context.result)
#else
    $utils.unauthorized()
#end

1 个答案:

答案 0 :(得分:0)

如果我将 $ util.toJson($ context.result)替换为 null 可以正常工作。

#if(${context.arguments.id} == ${context.result.from})
    null
#else
    $utils.unauthorized()
#end