AppSync returns 属性值为来自 AuroraDB 的 null

AppSync returns attribute values as null from AuroraDB

我正在尝试使用 Aurora RDS 实施 Appsync。获取所有属性值为 null 的查询 returns 响应。我认为它能够正确连接数据库,因为我在故意拼错 table 名称时看到了一些错误。我不确定问题出在哪里。 我用 Dynamodb 尝试了相同的实现,它运行良好。这是解析器的问题还是与权限有关的问题?

响应如下所示:

回复:

{
  "data": {
    "getTest": {
      "id": null,
      "name": null,
      "surname": null
    }
  }
}

DB table 描述:

id  int(11) 
name    text    
surname text

AppSync GraphQL 架构是:

 type Query {
    getTest(id: ID!): Test
}

type Test {
    id: ID
    name: String
    surname: String
}

schema {
    query: Query
}

请求解析器:

{
    "version": "2018-05-29",
    "statements": [
        "select * from TestTable where id = '$ctx.args.id'"
    ]
}

响应解析器:

#if($ctx.error)
    $utils.error($ctx.error.message, $ctx.error.type)
#end
$utils.toJson($utils.rds.toJsonObject($ctx.result)[0])

我能够解决我的问题。问题在于在响应解析器中引用结果。它在向结果对象添加另一个 [0] 后起作用。

#if($ctx.error)
    $utils.error($ctx.error.message, $ctx.error.type)
#end
$utils.toJson($utils.rds.toJsonObject($ctx.result)[0][0])