You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AppSync自定义Resolver报BatchPutItem不支持及响应模板转换错误如何解决

问题解决办法

1. 解决Unsupported operation 'BatchPutItem'报错

报错原因

你当前使用的DynamoDB数据源属于版本化数据源(即之前开启过冲突检测/Delta Sync功能的数据源),哪怕你手动关闭了冲突检测,数据源的版本化属性依然保留,这类数据源官方限制仅支持错误信息里列出的操作,不支持BatchPutItem。

可选解决方案

  • 方案一:替换为普通非版本化DynamoDB数据源
    进入AppSync控制台,新建一个普通DynamoDB数据源,直接绑定Usertable1-staging表,创建时不要开启任何版本控制、冲突检测、Delta Sync配置,将该自定义Resolver的数据源替换为新创建的普通数据源,你现有的请求映射模板不需要修改即可正常运行。
  • 方案二:保留现有数据源,改用TransactWriteItems实现批量写入
    如果你必须使用当前版本化数据源,可以将请求模板的操作替换为TransactWriteItems,单批次同样支持最多25条写入,符合你的需求,参考请求模板如下:
    #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())))
        #set($putOp = {
            "Put": {
                "TableName": "Usertable1-staging",
                "Item": $util.dynamodb.toMapValues($item)
            }
        })
        $util.qr($pdata.add($putOp))
    #end
    
    {
        "version" : "2018-05-29",
        "operation" : "TransactWriteItems",
        "transactItems": $utils.toJson($pdata)
    }
    

2. 解决Unable to transform Response Template报错

报错原因

BatchPutItem/TransactWriteItems的返回结构和你配置的响应映射模板不匹配,无法适配你GraphQL Schema中createBatchUNF接口定义的{items: [...]返回格式。

解决方法

将Resolver的响应映射模板修改为如下内容,适配返回结构:

#if($ctx.error)
  $util.error($ctx.error.message, $ctx.error.type)
#end
## 如果你用的是BatchPutItem,用下面这段提取结果
#set($returnItems = $ctx.result.data.Usertable1-staging)
## 如果你用的是TransactWriteItems,不需要返回内容的话可以直接拿请求里的input补全返回,或者从响应里提取
## #set($returnItems = $ctx.args.input)
#set($result = {
  "items": $returnItems
})
$util.toJson($result)

额外注意事项

你当前发送的mutation请求里user NFPOwnerId字段中间有多余空格,需要修正为正确的无空格字段名,避免参数解析错误。

内容的提问来源于stack exchange,提问作者HackRx

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 21:45:02