Уровень кэширования резолвера AWS AppSync? - PullRequest
0 голосов
/ 19 сентября 2018

Какова общая схема кэширования результатов работы AWS AppSync?

Я пишу API, который отображает данные, которые не изменятся со временем.API возвращает содержимое книг (название, автор, главы и т. Д.).

Моя первоначальная идея заключалась в том, чтобы запросить определитель некоторой полезной нагрузки JSON из CloudFront.Если запрошенный документ отсутствует в CloudFront, CloudFront вызовет функцию Lambda, которая будет знать, как извлечь документ JSON (из базы данных), а затем поместит полезную нагрузку в CloudFront.Концептуально это кажется странным, но это решило бы проблему кэширования.

Пример

const query = `{
   bookById(bookID: "468c95") {
      bookID
      title
      author
      chapters {
         title
         text
      }
   }
}`;

const book = query(query);
// book => {
//   bookId: "468c95",
//   title: "AppSync for Normal People",
//   author: null,
//   chapters: [
//      {
//         title: "Chapter 1: Dawn of Men",
//         text: [
//            "It was the best of times, it was the worst of times.",
//            "..."
//         ]
//      },
//      { ... }
//   ]
// }
}

Другими словами, вызов вымышленного метода query вызовет некоторый преобразователь в AppSync.Этот распознаватель будет всегда возвращать одни и те же данные.Таким образом, почему бы не иметь данные, с которыми работает распознаватель (я думаю, вы можете рассматривать это как вход для распознавателя), которые должны быть кэшированы в CloudFront, чтобы их можно было обслуживать из памяти вместо того, чтобы использовать какой-то бэкэндхранилище (например, база данных) или триггер лямбда?

...