AWS Appsync + DynamoDB с бизнес-логикой

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

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

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
3
0
2 095
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

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

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

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

Спасибо. Я видел VTL, но втайне надеялся, что это не способ сделать это. Я понимаю, почему люди предпочитают иметь собственный GraphQL внутри Lambda, а не использовать AppSync.

n00b 04.09.2018 01:07

Мы понимаем, что работа с VTL - самая болезненная часть использования AWS AppSync сегодня, и мы работаем над несколькими вещами, чтобы сделать этот процесс как можно более простым, чтобы для большинства сценариев было написано очень мало или совсем не было кода VTL. Например, проверьте GraphQL Transformer в ampify-cli: github.com/aws-amplify/amplify-cli/blob/master/….

Shankar Raju 04.09.2018 08:08

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

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

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

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

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

Traditional approach

Appsync

Другие вопросы по теме