AppSync 中的 DynamoDB ReturnValues UPDATED_OLD

Posted

技术标签:

【中文标题】AppSync 中的 DynamoDB ReturnValues UPDATED_OLD【英文标题】:DynamoDB ReturnValues UPDATED_OLD in AppSync 【发布时间】:2019-09-05 09:32:27 【问题描述】:

我正在尝试使用 AppSync 更新 DynamoDb 表中的项目属性。 一旦成功,我想在下一次调用中使用该属性的先前值作为键(我正在使用管道解析器)。

要使用 DynamoDB 实现此目的,您只需将 UPDATED_OLD 设置为返回值。

我找不到任何文档来指定 AppSync 的 DynamoDB 解析器的返回值。 我试过以下。


  "version" : "2018-05-29",
  "operation" : "UpdateItem",
  "key": 
        "id": $util.dynamodb.toDynamoDBJson("foo")
      ,
   "condition" : 
   "expression" : "attribute_exists(id)"
    ,
    "update" : 
    "expression" : "SET bar = :bar",
    "expressionValues" : 
        ":bar" :  "S" : "$bar"
      
    ,
    "returnValues": "UPDATED_OLD"
  

但它的语法无效。

"message": "Unsupported element '$[returnValues]'."

【问题讨论】:

【参考方案1】:

returnValues 不是 AppSync 与 DynamoDB 的请求映射模板的有效字段。默认情况下,AppSync 使用 ALL_NEW 参数进行更新。

【讨论】:

我担心是这样的。感谢您确认。希望它会在未来的更新中得到纠正,以使 AppSync 更加可行。 我会将其作为功能请求提交给团队 还是这样吗? @VasileiosLekakis 是否存在与此功能请求相关的 Github 问题?这将是一个有价值的补充 @bingles 我们没有像 AWS Amplify 那样跟踪功能请求,因为 AWS Appsync 的 Github 问题。

以上是关于AppSync 中的 DynamoDB ReturnValues UPDATED_OLD的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Appsync 中的解析器获取 dynamodb 中存在的记录总数

如何向 DynamoDB/AppSync 添加访问规则?

Aws Appsync 解析器:如何创建解析器以更新列表映射 (DynaMoDB) 中的项目

AWS AppSync:如何通过 DynamoDB 返回有效的 JSON

使用 AppSync 联接 DynamoDB 表

具有业务逻辑的 AWS Appsync + DynamoDB