Может ли AWS Amplify Transform создать журнал, созданный пользователем / обновленный пользователем, в DynamoDB? - PullRequest
0 голосов
/ 26 апреля 2019

Использование AWS Amplify Transform для определения схемы в "schema.graphql", которая затем компилируется и отправляется в AWS Cloudformation.Когда данные создаются в DynamoDB, автоматически создается строка (определенная в автоматически созданных резольверах) для «creationAt» и «updatedAt».Если я укажу директиву @auth, относящуюся к «владельцу», в запись будет добавлено поле владельца.Все это определено в файле schema.graphql.

Я хочу что-то похожее на описанное выше, и хочу знать, могу ли я сделать это в файле преобразования schema.graphql, или мне нужно начать настройкуresolvers.

Я просто хочу записать имя пользователя, который создал и последний раз изменил запись.Таким образом, на каждой записи я хочу, чтобы "создалBy" и "updatedBy".Не нужен владелец, поскольку приложение не требует его - но я хочу знать, кто его создал, а кто последний обновлял и когда все это произошло.

Итак, прежде чем я сделаю это более сложным, чем это, вероятно, являетсяЯ хотел проверить, есть ли что-то простое, что я могу сделать, чтобы достичь этого.

1 Ответ

0 голосов
/ 06 мая 2019

Я решил это, поэтому просто обновляю для других. В каталоге 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"))
...