AWS AppSync лямбда-резольвер - PullRequest
0 голосов
/ 13 ноября 2018

У меня следующий запрос:

query xxx {
   getSomething(id: "id") {
      field1
      field2
   }
}

Есть ли способ для меня получить field1 и field2 в лямбде? Например, чтобы запросить только те поля в MySQL, не получить все из них только для того, чтобы позже их сбросил AppSync.

Я попытался записать все $context в файл VTL преобразователя запросов, но их там нет. Есть идеи? Кажется довольно глупым, чтобы не быть в состоянии сделать это. Единственное, что я получаю в лямбде, - это аргумент id.

Спасибо, Михай

Ответы [ 2 ]

0 голосов
/ 22 ноября 2018

Эти поля находятся в $context.source объекте. Если вы передадите весь объект $context в свою лямбду, вы сможете получить доступ к этим полям в event.source

0 голосов
/ 13 ноября 2018

Это может быть не тот ответ, который вы хотите услышать, но, как вы заметили, AppSync просто не делает график (поля или иным образом) доступным для вас.

Только две «опции»Я могу указать вам:

  • Создайте схему запроса так, чтобы вы могли быть более точными при извлечении (например, getThingFromTableA и getThingFromTableB, а не просто getThing)
  • Используйте средства распознавания полей для дорогих, чтобы получить поля, и использовать вложенные объекты, если они все из одного источника данных (например, { cheapA, cheapB, expensiveA { expensiveTableAThingA, expensiveTableAThingB }, expensiveB }).

nb это не так уж редко,например Аполлон по умолчанию тоже не .

...