Автоматизировать лямбда-резольвер для AppSync с помощью Amplify? - PullRequest
0 голосов
/ 24 октября 2018

У меня есть настройка приложения React с AWS Amplify.Первоначальная цель приложения - выступать в качестве портала для AWS Appstream.Пользователи могут войти в систему и запустить потоковый экземпляр через API Appstream.

Часть, которая генерирует потоковый URL, является функцией Lambda.В настоящее время это вызывается непосредственно из приложения через AWS SDK (контекст IAM материализуется через Cognito).Однако функционал портала будет расти, и мне, скорее всего, понадобится API.Для этого я подумываю об использовании AppSync / GraphQL.

Но мне было интересно, смогу ли я упростить шаблоны кодирования в приложении, используя исключительно GraphQL.То есть я могу использовать GraphQL / AppSync для вызова функции Lambda, которую я создал?Есть несколько причин, по которым я хотел бы сделать это:

  1. Моя главная цель - уменьшить Amplify до общего протокола (в данном случае GraphQL).Это означает, что я могу создать версию портала, которая будет работать локально.Это также помогает поддержать еще одну цель, которую я имею - используя GraphQL, можно сделать возможным изменение провайдеров облачных вычислений (без переписывания всего)

  2. Я бы хотел создать прототип приложения в Elm, чтобыпосмотрим, будет ли практичным кодирование против AmplifyС Elm нет библиотек AWS / Amplify.Но есть библиотека GraphQL.Это могло бы обеспечить средства для уменьшения взаимодействия

  3. Я мог бы добавить Rest api для вызова Lambda, но было бы неплохо сохранить доступ API к одному методу

Извините, если это наивный вопрос - в настоящее время я изучаю AppSync / GraphQL, Lambda и Amplify.

Глядя на сам AppSync, кажется, что я мог бы создать объект с именем Fleet исделать streamingUrl свойством, которое GetFleet() возвращает.Затем я мог бы присоединить резольвер к лямбда-функции для этого свойства.Однако, кажется, нет очевидного способа настроить это с помощью Amplify.Я успешно воссоздал свою функцию Lambda с помощью amplify function add, что приятно.

Есть ли способ автоматизировать это через Amplify?Может быть, дело в создании моего GraphQL Transform ?Или в Amplify что-то уже есть, и я просто не вижу этого?

1 Ответ

0 голосов
/ 11 января 2019

ОБНОВЛЕНИЕ:

Кажется, что теперь это возможно с AppSync.Вы можете прочитать больше об этом здесь и здесь

ОРИГИНАЛЬНЫЙ ОТВЕТ:

В ответ на часть вопроса о вызове Lambda через GraphQL:

Я думаю, что это возможно прямо сейчас с AppSync, но не с Amplify.

Использование консоли AppSync позволит вам создать лямбда-преобразователь - Amplify в настоящее время не поддерживает это.При публикации из Amplify ваш распознаватель будет перезаписан.

Похоже, что над этой проблемой решаются:

https://github.com/aws-amplify/amplify-cli/issues/74

https://github.com/aws-amplify/amplify-cli/issues/83

...