Aws lambda AWS AppSync获取另一个表的计数(例如,计算类似于一篇文章的计数)

Aws lambda AWS AppSync获取另一个表的计数(例如,计算类似于一篇文章的计数),aws-lambda,aws-amplify,aws-appsync,Aws Lambda,Aws Amplify,Aws Appsync,我有以下AWS AppSync/Amplify型号 type Event @model { id: ID! name: String! ticketsSold: Int! moneySum: Int! } ticketssell属性必须反映eventId=X的orders计数moneySum必须用eventId=X表示所有订单票面价格的总和 有两种(或更多?)可供考虑: 对于每个putItem(createOrder突变),使用新的计数/总和更新正确的事件行 通过AWS Lam

我有以下AWS AppSync/Amplify型号

type Event @model {
  id: ID!
  name: String!
  ticketsSold: Int!
  moneySum: Int!
}
ticketssell
属性必须反映
eventId=X
orders
计数
moneySum
必须用
eventId=X
表示所有订单票面价格的总和

有两种(或更多?)可供考虑:

  • 对于每个
    putItem
    (createOrder突变),使用新的计数/总和更新正确的
    事件
  • 通过AWS Lambda解析器,使用
    eventId=X
    对所有订单进行查询/扫描
  • 每个选项都有一些赞成和反对意见。使用选项1,如果多人同时订购(交易?),则可能会失去同步。选项2的缺点是扫描非常昂贵且速度慢

    这些事件显示在ReactJS应用程序的主页上,
    ticketsSeld
    moneySum
    作为预览显示在细节上,因此它将被“大量”获取


    建议?非常感谢

    我将使用选项1,使用从票证数据库到lambda的流,该lambda使用聚合信息更新某些表。这将是相当快,比无休止的扫描更干净。我使用它来聚合用户的lambda使用情况,将lambda运行时记录到一个表中,该表可以立即查询总数。非常好。

    您如何处理交易?因为可以同时执行多个触发器?例如,Firebase有事务,不确定如何使用AWS服务实现这一点?我不认为事务会成为一个问题。适当的表流(票证?)反映了您关心的有效数据。根据您的场景,可以由聚合lambda处理插入/修改/删除事件。lambda在一个批次中最多可以接收1000条流记录。