Используете Amplify и SAM вместе?

У меня здесь некоторая путаница, и я хотел посмотреть, сможет ли кто-нибудь меня исправить.

Я использую Amplify для приложения Vue. Он вызывает API Gateway, который вызывает Lambda, и все это настраивается вручную, но я хочу использовать возможности IaaS и делать это с помощью SAM.

Amplify CLI включает возможность добавления API / функций и, в свою очередь, создает шаблоны и стек CloudFormation, что приятно. Однако это, похоже, не создает само приложение Amplify, кроме создания пустого приложения, не подключенного к репо, и, конечно же, CLI распространяется только на такое количество сервисов.

Я вижу, что можно настроить приложение Amplify в CloudFormation. И SAM поставляется с инструментами командной строки, которые также будут полезны. Как правильно все это настроить ??

Могу ли я создать шаблон SAM для создания Amplify, который работает со стеком, созданным Amplify для создания API / функций, вместо того, чтобы вручную создавать шаблон SAM без помощи автоматически созданного? Затем, если я позже добавлю службы, не поддерживаемые Amplify, я также могу добавить их в SAM.

У меня есть время, пытаясь ориентироваться в SAM / CF / CDK / Amplify, ха-ха


person Caleb    schedule 18.07.2020    source источник


Ответы (1)


Надеюсь, это поможет. Начнем с более простых вопросов:

У меня есть время, пытаясь ориентироваться в SAM / CF / CDK / Amplify, ха-ха

Да.

AWS CF (Cloudformation) - это попытка предоставить возможность создавать (/ rud) ресурсы AWS с помощью механизма шаблонов. Это довольно массивно. И странно. Вот пример из Руководство пользователя

Если приведенное выше вызывает вопросы, например, почему оба шаблона разные? Ты не одинок. В целом, CF массивен, но довольно удобен, поскольку позволяет создавать / управлять ресурсами AWS.

AWS SAM (модель бессерверного приложения) IMO - это версия CF, которая намного проще / проще. Здесь вы можете CRUD ресурсы AWS и организовать их в стек. Примечание: SAM использует CF под капотом.

Amplify - это фреймворк для работы с когнитивным (логином), aws js sdks и т. д. Он может взять ваше приложение vue / response и добавить такие службы, как api, аутентификация и документ (Dynamodb). Для узлового приложения информация о конфигурации хранится в файле aws-exports.js. Amplify также может помочь вам развернуть и сохранить вашу кодовую базу.

Если вы создаете какие-либо ресурсы с помощью ampify cli, он использует CF под капотом. Я считаю, что все файлы хранятся в папке с именем .amplify. ИМО, это не весело, так как позже сложно управлять вещами с помощью Amplify CLI или консоли AWS.

Могу ли я создать шаблон SAM для создания Amplify, который работает со стеком, созданным Amplify для создания API / функций, вместо того, чтобы вручную создавать шаблон SAM без помощи автоматически созданного?

да. Просто продолжайте использовать этот Amplify CLI. Как только это перестанет быть интересным, используйте Консоль AWS.

Затем, если я позже добавлю службы, не поддерживаемые Amplify, я также могу добавить их в SAM.

Также да. Вы можете в любое время создать новый стек SAM с лямбдами, пулами пользователей и т. Д., И они будут подключаться к ним с помощью новых найденных пакетов SDK AWS для ваших приложений Amplify.

Из моего ограниченного опыта:

  • попробуйте AWS SAM. Его проще и проще получить, чем CF
  • Я больше не использую Amplify CLI. Вначале это было аккуратно, но я перерос его, поскольку выполнение команд вызывает у меня головную боль по сравнению с определениями шаблона SAM.
person petey    schedule 18.07.2020
comment
Пити, спасибо за твой подробный ответ. еще один вопрос по этому поводу: если я сделал, скажем, функцию с использованием SAM, а затем добавил усилить (то же приложение), как я могу подключить эту функцию к приложению, чтобы я мог видеть ее в пользовательском интерфейсе администратора под функциями? - person aleXela; 31.03.2021
comment
@aleXela лямбда-функция будет автономной от вашего веб-приложения (vue / response / etc), поскольку это отдельный ресурс yaml. Чтобы подключиться, вы должны добавить усиление в веб-приложение (не забудьте импортировать свой собственный aws-exports.js). См. здесь и здесь < / а> - person petey; 08.04.2021