Какова общая схема кэширования результатов работы 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, чтобы их можно было обслуживать из памяти вместо того, чтобы использовать какой-то бэкэндхранилище (например, база данных) или триггер лямбда?