У меня установлено приложение React с AWS Amplify. Первоначальная цель приложения - действовать как портал для AWS Appstream. Пользователи могут войти в систему и запустить экземпляр потоковой передачи через API Appstream.
Часть, которая генерирует URL-адрес потоковой передачи, является лямбда-функцией. В настоящее время это вызывается непосредственно из приложения через SDK AWS (контекст IAM материализуется через Cognito). Однако функциональность портала будет расти, и мне, вероятно, понадобится api. Для этого я подумываю использовать AppSync / GraphQL.
Но мне было интересно, могу ли я упростить шаблоны кодирования в приложении, используя исключительно GraphQL. То есть могу ли я использовать GraphQL / AppSync для вызова созданной мной лямбда-функции? Есть несколько причин, по которым я хочу это сделать:
Моя главная цель - свести Amplify к общему протоколу (в данном случае GraphQL). Это означает, что я могу создать версию портала, работающую локально. Это также помогает поддерживать другую цель, которая у меня есть - с помощью GraphQL он может сделать возможным изменение облачных провайдеров (без переписывания всего).
Я хотел бы создать прототип приложения на Elm - чтобы увидеть, будет ли практичным кодирование с использованием Amplify. В Elm нет библиотек AWS / Amplify. Но есть библиотека GraphQL. Это может предоставить средства для уменьшения взаимодействия
Я мог бы добавить Rest api для вызова Lambda, но было бы неплохо сохранить доступ api к одному методу
Извините, если это наивный вопрос - сейчас я изучаю AppSync / GraphQL, Lambda и Amplify.
Глядя на сам AppSync, кажется, что я мог бы создать объект с именем Fleet и сделать streamingUrl свойством, возвращаемым GetFleet(). Затем я мог бы присоединить преобразователь к лямбда-функции для этого свойства. Однако, кажется, нет очевидного способа настроить это через Amplify. Я успешно воссоздал свою лямбда-функцию через amplify function add, что приятно.
Есть ли способ автоматизировать это с помощью Amplify? Может дело в создании собственного Преобразование GraphQL? Или в Amplify уже есть что-то для этого, а я этого просто не вижу?

ОБНОВИТЬ:
Кажется, теперь это возможно с AppSync. Подробнее об этом можно прочитать здесь и здесь
ОРИГИНАЛЬНЫЙ ОТВЕТ:
В ответ на часть вопроса о вызове Lambda через GraphQL:
Я думаю, что это возможно прямо сейчас с AppSync, но не с Amplify.
Использование консоли AppSync позволит вам создать преобразователь Lambda - в настоящее время Amplify не поддерживает это. Когда вы публикуете из Amplify, ваш преобразователь будет перезаписан.
Похоже, что эта проблема прорабатывается:
Да, вы можете сделать это на Amplify.
Усилить: https://aws-amplify.github.io/docs/cli-toolchain/graphql#function
AWS AppSync (также стоит прочитать, чтобы получить полезные общие рекомендации): https://docs.aws.amazon.com/appsync/latest/devguide/tutorial-lambda-resolvers.html
Прохождение + Репозиторий кода: