Amazon web services 在AWS Appsync与Dynamo Db中执行批处理获取时出现问题

Amazon web services 在AWS Appsync与Dynamo Db中执行批处理获取时出现问题,amazon-web-services,amazon-dynamodb,aws-appsync,Amazon Web Services,Amazon Dynamodb,Aws Appsync,我无法执行批处理进入应用程序同步。这是我下面的解析器 请求映射模板。 #set($ids = []) #foreach($id in ${ctx.args.topicIds}) #set($map = {}) $util.qr($map.put("topicId", $util.dynamodb.toString($id))) $util.qr($ids.add($map)) #end { "version" : "2018-05-29", "operation" : "

我无法执行批处理进入应用程序同步。这是我下面的解析器

请求映射模板。

#set($ids = [])
#foreach($id in ${ctx.args.topicIds})
   #set($map = {})
   $util.qr($map.put("topicId", $util.dynamodb.toString($id)))
   $util.qr($ids.add($map))
#end

{
 "version" : "2018-05-29",
 "operation" : "BatchGetItem",
 "tables" : {
    "Topic": {
        "keys": $util.toJson($ids),
        "consistentRead": true
    }
 }
}
响应映射模板

$util.toJson($ctx.result.data.Topic)
我就是这样提出这个问题的

 query listStudentBookmarkedTopics {
   listStudentBookmarkedTopics(
     topicIds: [ "503", "501" ]
   ) {
     topicId
   }
 }
但我得到的结果是空的

 {
  "data": {
    "listStudentBookmarkedTopics": [
      null,
      null
    ] 
  }
}
这就是我的桌子的样子

$util.toJson($ctx.result.data.Topic)

这是云监控日志


您的DynamoDB表是什么样子的?
Topic
是表的名称吗?在它上面定义的主分区键是什么?我需要更多的细节来帮助你


或者,请为您的API打开CloudWatch日志(您应该能够通过控制台->在API的设置页面下执行此操作)。请尝试再次运行查询,并查看此路径的已解析请求和响应模板。这将为您提供更多详细信息。

我也有类似问题。通过应用适当的权限修复了它。如果您创建了新的IAM角色,默认情况下它不会授予
batch*
权限。来自AWS文件:

与其他冲突解决程序一样,您需要在AWS AppSync中创建数据源,并创建角色或使用现有角色。由于批处理操作需要对DynamoDB表具有不同的权限,因此需要为已配置的角色授予读或写操作权限:

您可以附加新策略,也可以在IAM仪表板中的现有策略上添加
“dynamodb:BatchGetItem”

`

我已经包括了这张表。我希望这会有所帮助。谢谢,您也可以发布CloudWatch日志中已解决的请求/响应映射日志条目,路径为[query,listStudentBookmarkedTopics]?我已经添加了CloudWatch日志。我收到的资源或其他信息的错误不足。看起来好像没有将解析程序附加到查询字段。你能查一下吗?此外,请确认您是否已为日志设置选择了
ALL