Appsync 自定义解析器错误 "Unable to transform Response Template"

Appsync custom resolver error "Unable to transform Response Template"

我正在尝试编写“BatchPutItem”自定义解析器,以便我可以创建多个项目(一次不超过 25 个),它应该接受参数列表,然后执行批处理操作。 这是我在 CusomtResolver 中的代码:

#set($pdata = [])
#foreach($item in ${ctx.args.input})
    $util.qr($item.put("createdAt", $util.time.nowISO8601()))
    $util.qr($item.put("updatedAt", $util.time.nowISO8601()))
    $util.qr($item.put("__typename", "UserNF"))
    $util.qr($item.put("id", $util.defaultIfNullOrBlank($item.id, $util.autoId())))
    $util.qr($pdata.add($util.dynamodb.toMapValues($item)))
#end

{
    "version" : "2018-05-29",
    "operation" : "BatchPutItem",
    "tables" : {
        "Usertable1-staging": $utils.toJson($pdata)
    }
}

查询控制台部分的响应:

{
  "data": {
    "createBatchUNF": null
  },
  "errors": [
    {
      "path": [
        "createBatchUserNewsFeed"
      ],
      "data": null,
      "errorType": "MappingTemplate",
      "errorInfo": null,
      "locations": [
        {
          "line": 2,
          "column": 3,
          "sourceName": null
        }
      ],
      "message": "Unsupported operation 'BatchPutItem'. Datasource Versioning only supports the following operations (TransactGetItems,PutItem,BatchGetItem,Scan,Query,GetItem,DeleteItem,UpdateItem,Sync)"
    }
  ]
}

查询是:

mutation MyMutation {
  createBatchUNF(input: [{seen: false, userNFUserId: "userID", userNFPId: "pID", user NFPOwnerId: "ownerID"}]) {
    items {     
      id
      seen
    }
  }
}

冲突检测也已关闭

当我检查云日志时,我发现了这个错误:

我可以通过禁用 DataStore for entire API 来解决这个问题。 当我们使用 amplify 控制台创建一个新的 project/backend 应用程序时,它会在数据选项卡中要求我们启用数据存储,以便我们可以开始建模我们的 GraphQL api,这就是为整个 [启用版本控制的原因=20=],它阻止了 batchWrite 的执行。 因此,为了解决这个问题,我们可以按照以下步骤操作: [注意:我使用的是@aws-amplify/cli]

$ amplify update api
? Please select from one of the below mentioned services: GraphQL
? Select from the options below: Disable DataStore for entire API

然后amplify push 这将解决此问题。