首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >引发更多突变的AppSync突变

引发更多突变的AppSync突变
EN

Stack Overflow用户
提问于 2018-05-25 23:26:35
回答 3查看 833关注 0票数 7

我有两个表格:帖子和用户

createPost变异解析器中,我设置了一些默认值来执行某些属性(比如userId、createdAt时间戳、isDeleted标志等)。此外,我想增加用户的numPosts计数器。

这有可能通过标准解析器实现吗?

如果没有,有什么更好的选择,为什么?

替代1)当添加新的Post记录增加用户的numPosts计数器时,使用DynamoDB流并触发lambda函数。

替代方案2)使用lambda解析器并将所有逻辑移到那里,而不是标准解析器。

EN

回答 3

Stack Overflow用户

发布于 2018-05-29 17:18:32

可以使用BatchPut操作同时更新多个表。有关更多信息,请参阅亚马逊DynamoDB批处理操作指南。

您需要一个解析器,例如

代码语言:javascript
复制
{
  "version" : "2018-05-29",
  "operation" : "BatchGetItem",
  "tables" : {
    "Posts": {
        ...data
    },
    "NumPosts":{
        ...data
    }
  }
}
票数 4
EN

Stack Overflow用户

发布于 2018-06-06 23:56:32

我走了“使用lambda解析器并将所有逻辑移到那里而不是标准解析器”的路线。为了我的应用程序。

您可以通过这种方式进行大量的控制,实心日志、度量,并且可以做任何您想做的事情,但是您必须支付lambda的费用。

如果其他更改可能发生在事实发生之后,那么查看流的选项可能会更有意义,而将数据处于介于两者之间的状态并不重要。

没有全面的背景,很难评估什么是最好的选择。

票数 1
EN

Stack Overflow用户

发布于 2018-05-28 20:03:35

有一些更新表达式可以用于DynamoDB;它显然是AppSync的用于DynamoDB的解析映射模板参考之一。通过代码中给出的示例代码,您可以按照以下方式操作一些UpdateItem代码:

代码语言:javascript
复制
{
    "version" : "2017-02-28",
    "operation" : "UpdateItem",
    "key": {
        "id" : { "S" : "${context.arguments.id}" }
    },
    "update" : {
        "expression" :  "ADD numPosts :incrCount",
        "expressionValues" : {
           ":incrCount" : { "N" : 1 }
        }
    }
}

编辑:--本文假设您的numPosts计数器作为字段保存在Users表中。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50537955

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档