AWS Appsync + DynamoDB с бизнес-логикой - PullRequest
0 голосов
/ 03 сентября 2018

Возможно ли иметь бизнес-логику в мутации моего AppSync, когда источником данных является DynamoDB?

Я довольно новичок в GraphQL и Appsync. Насколько я понимаю, когда вы используете простой GraphQL, вы можете иметь бизнес-логику в своем преобразователе для проверки перед обновлением. Как бы вы достигли того же с AWS AppSync, когда передадите ему схему GraphQL с DynamoDB в качестве источника данных?

Ответы [ 2 ]

0 голосов
/ 03 сентября 2018

По данным на веб-сайте AWS AppSync : С AppSync ваше приложение может получать доступ к данным в Amazon DynamoDB, запускать функции AWS Lambda или выполнять запросы Amazon Elasticsearch .

Вы можете рассматривать его как шлюз для доступа клиентов к различным бэкэндам (источникам данных), определяемым шаблонами отображения, прикрепленными к полям GraphQL (резолверам).

AppSync изначально поддерживает запросы DynamoDB и ElasitcSearch, но если вы хотите выполнить бизнес-логику, вам нужно добавить источник данных AWS Lambda, а затем использовать AWS SDK для R / W DynamoDB или что-либо еще, например, другой API или, возможно, даже файл Excel!

Кроме того, вы можете использовать Apache VTL вместе с доступными помощниками AppSync, такими как $ context, чтобы помочь вам выполнить авторизацию или доступ к полевым данным на основе разрешений. Имейте в виду, что ваш решатель DynamoDB или ES может выполнить только 1 операцию в конце, Apache VTL помогает вам только создать решатель, который будет запускаться AppSync.

Вот две диаграммы, которые сравнивают традиционный подход с appsync

Traditional approach

Appsync

0 голосов
/ 03 сентября 2018

В AWS AppSync вы должны прикрепить определитель к полю, которое сопоставлено с источником данных DynamoDB. Затем вы можете использовать шаблон Velocity, чтобы иметь собственную бизнес-логику внутри распознавателя для любых проверок.

См. следующую документацию в руководстве по программированию шаблона сопоставления Resolver от AWS.

Вот ссылка на шаблон сопоставления для распознавателей DynamoDB.

...