【问题标题】:Can AWS Amplify Transform log createdBy/updatedBy user in DynamoDB?DynamoDB 中的 AWS Amplify 转换日志 createdBy/updatedBy 用户可以吗?
【发布时间】:2019-09-15 20:11:45
【问题描述】:

使用 AWS Amplify Transform 在“schema.graphql”中定义一个架构,然后将其编译并推送到 AWS Cloudformation。在 DynamoDB 中创建数据时,会自动为“createdAt”和“updatedAt”创建一个字符串(在自动生成的解析器中定义)。如果我指定与“所有者”相关的@auth 指令,它将把所有者字段记录在案。所有这些都在 schema.graphql 文件中定义。

我想要与上面类似的东西,想知道我是否可以在 schema.graphql 转换文件中做到这一点,或者我是否必须开始自定义解析器。

我只想记录创建和最后修改记录的用户名。所以在每条记录上我都想要“createdBy”和“updatedBy”。不需要所有者,因为应用程序不需要它 - 但我想知道谁创建了它,谁最后更新了,以及这一切发生的时间。

所以在我把它变得比它可能更复杂之前,我想检查一下是否有一些简单的方法可以实现这一点。

【问题讨论】:

    标签: graphql aws-amplify aws-appsync


    【解决方案1】:

    我已经解决了这个问题,所以只是为其他人更新。在 app/resolvers 目录中,放置自定义解析器并为您正在创建的“类型”(表)输入以下文本。

    ## [Start] Prepare DynamoDB PutItem Request. **
    $util.qr($context.args.input.put("created", $util.time.nowISO8601()))
    $util.qr($context.args.input.put("lastModified", $util.time.nowISO8601()))
    $util.qr($context.args.input.put("createdBy", $ctx.identity.username))
    $util.qr($context.args.input.put("createdById", $ctx.identity.sub))
    $util.qr($context.args.input.put("createdByIP", $ctx.identity.sourceIp))
    $util.qr($context.args.input.put("lastModifiedBy", $ctx.identity.username))
    $util.qr($context.args.input.put("lastModifiedById", $ctx.identity.sub))
    $util.qr($context.args.input.put("lastModifiedByIP", $ctx.identity.sourceIp))
    $util.qr($context.args.input.put("__typename", "Assets"))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-14
      • 2019-04-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多