AWS Amplify Transform日志可以在DynamoDB中由by / updatedBy用户创建吗?

时间:2019-04-26 10:17:20

标签: graphql aws-amplify aws-appsync

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

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

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

因此,在使这一过程变得比它复杂之前,我想检查一下是否可以做些简单的事情来实现这一目标。

1 个答案:

答案 0 :(得分:0)

我已经解决了这个问题,所以只为其他人更新。在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"))