AppSync - 使用数组和对象创建嵌套突变?

AppSync - creating nested mutation with array and objects?

AppSync 是否支持嵌套单突变?

我想调用一个将记录插入到两个表中的单一突变,例如:DynamoDB 中的 UserRoles 表。

例如这样的事情:

createUser(
   input: {
      Name: "John"
      Email: "user@domain.com"
      LinesRoles: [
        { Name: "Role 1" }
        { Name: "Role 2" }
      ]
   }) {
        Id
        Name
        LinesRoles {
          Id
          Name
        }
      }

我是否需要在 AppSync 中为 UserRoles 创建两个解析器以在两个表中插入记录?

我可以想到三种方法来实现这一点:

  1. 使用 BatchPutItem 一次将记录保存到两个 table 中。但是,您将无法使用任何 ConditionExpression
  2. pipeline resolver 与两个 AppSync 函数一起使用,其中一个函数将 PutItem 发送到 Roles table,另一个将 PutItem 发送到 User table。但是,您需要接受可能不一致的情况,即记录已插入一个 table 而不是另一个。
  3. 使用 Lambda 解析器在 DynamoDB 事务中写入 2 tables。