У меня есть файлы JSON, содержащие образцы данных временных рядов, которые загружаются в S3. У меня есть клиент React с компонентом, который должен отображать актуальное статистическое среднее значение выборки данных за последние x минут.
В идеале обновления должны запускаться загрузкой S3, а не браузером, который должен опрашивать веб-службу. Веб-сокеты и события, отправленные сервером, не подходят. Могу ли я практически использовать подписки AWS Appsync для предоставления данных в реальном времени с учетом этих требований?
Я не против использования промежуточной базы данных, если это необходимо. Я предполагаю, что это будет полезно для этапа запроса данных для временного диапазона для вычисления среднего, и я предполагаю, что я бы запустил Lambda с S3 и использовал его для извлечения данных объекта S3 в БД.
Amazon объявила о добавлении локальных резольверов в феврале
Например, функция Lambda может вызывать мутации GraphQL в AWS AppSync в ответ на какое-то событие, такое как обработка данных, загруженных в корзину S3.
Это звучит многообещающе, за исключением того, что я не могу найти никаких примеров с участием локальных преобразователей и Lambda / S3. Единственная документация, которую я смог найти, - это здесь .
РЕДАКТИРОВАТЬ:
Прочитав GraphQL, я узнал об API и, похоже, смогу использовать HTTP-клиент в лямбда-выражении для мутаций. Пробовал это с помощью curl, и это сработало:
curl -X POST \
https://censored.appsync-api.us-east-1.amazonaws.com/graphql \
-H 'Content-Type: application/json' \
-H 'x-api-key: censored' \
-d '{"query": "mutation CreateEvent {createEvent(name: \"testName\", when: \"Now\", where: \"here\", description: \"testDescription\") {name when where description}}"}'
Я полагаю, что теперь я могу вызвать мутацию «addIntervalData» через Lambda, чтобы добавить содержимое каждого объекта S3 в базу данных и использовать лямбда-преобразователь для реализации «getAverage» и выполнения вычисления усреднения. Кажется, хорошее направление?