AWS Appsync: несколько запросов Dynamodb в одном преобразователе Dynamodb

Я хотел бы знать, можно ли иметь несколько запросов DynamoB с использованием только одного преобразователя Dynamo в AppSync? Или единственный / лучший способ усложнить обработку - использовать лямбда-функцию?


person mama risi    schedule 07.07.2018    source источник


Ответы (3)


Практически нет. Вы даже не можете запрашивать несколько индексов в одном определении ресурса для запроса.

Однако, если вы собираетесь использовать эту структуру для объединения нескольких таблиц DynamoDB, вы можете присоединять преобразователи не к записи запроса; но с той областью, которую вы хотите связать с другими полями.

У меня была проблема, связанная с привязкой пользователей к другой таблице для хранения сообщений, и я передал ее, прикрепив преобразователь, нацеленный на поле Сообщения типа User.

Эта проблема связана с аналогичной проблемой и очень полезна в таких случаях: https://github.com/awslabs/aws-mobile-appsync-sdk-js/issues/17

Если это не ваш случай, вы можете уточнить вопрос. В общем, я могу угадать, с какой целью вы связали таблицы.

person vahdet    schedule 07.07.2018
comment
Спасибо за Ваш ответ. Я изучил проблему и действительно прикрепляю преобразователи к полю, чтобы запросить несколько таблиц. Что я хотел сделать сейчас, так это запросить таблицу B, используя данные первого запроса таблицы A. Но я не знал, возможно ли это с помощью VTL и внутри одного преобразователя. Потому что во всех примерах, которые я нашел, сначала была некоторая обработка с использованием vtl, а затем запрос шаблона динамо. Я думаю, это невозможно, поэтому для такой обработки мне нужно будет использовать лямбда-функции. - person mama risi; 07.07.2018
comment
Честно говоря, вариант Lambda по-прежнему очень дешевый :) Лично я хочу, чтобы мои преобразователи AppSync были как можно более прямыми, но это я. В любом случае удачи. - person vahdet; 07.07.2018
comment
Используя каскадный преобразователь, вы можете использовать $ ctx.source. * FieldFromParentQuery *, чтобы делать то, что вы хотите - person Edwin Joassart; 25.08.2018

Вы изучали пакетные преобразователи с AWS AppSync? https://docs.aws.amazon.com/appsync/latest/devguide/tutorial-dynamodb-batch.html

Это позволит вам выполнять запись в одну или несколько таблиц за один запрос, а также позволит вам выполнять несколько операций записи / чтения / удаления за один запрос.

person Richard    schedule 07.07.2018

Вы можете сделать это с помощью преобразователей конвейера https://docs.aws.amazon.com/appsync/latest/devguide/tutorial-pipeline-resolvers.html.

person farminf    schedule 12.04.2020