Если вы читали мою предыдущую статью (Подготовка к реакции с AWS), то знаете, что я использую Elastic Beanstalk для управления и запуска Perfectly Chilled API. Учитывая, что оно все еще находится в стадии разработки, я постоянно развертываю новую версию приложения в среде.

Процесс развертывания быстрый и безболезненный, но его правильная настройка может стать настоящей проблемой.

Вы можете найти одну из следующих статей полезной отправной точкой:





Они чрезвычайно полезны при настройке вашей среды, поэтому я не буду изобретать велосипед.

Однако, если вы используете webpack или даже просто babel для компиляции своего приложения, вы можете столкнуться с той же проблемой, что и я.

Первые несколько развертываний потерпели неудачу для меня, и мне потребовалось несколько попыток, прежде чем я понял, почему. Просмотр журналов EB показал, что команда запуска не удалась, потому что не смогла найти файл. Хммм.

Стоит отметить, что если вы игнорируете каталог node_modules через .gitignore и не компилируете свое приложение, вы, вероятно, столкнетесь с той же проблемой.

Игнорирование нужных файлов

Как оказалось, EB CLI придерживается .gitignore, что означает, что скомпилированный каталог dist/ не был загружен. Просмотр документации EB CLI показал, что файл .ebignore исправит это.

Если .ebignore отсутствует, но .gitignore есть, EB CLI игнорирует файлы, указанные в .gitignore. Если присутствует .ebignore, интерфейс командной строки EB не читает .gitignore.

Поэтому мне в основном нужно было клонировать конфигурацию .gitignore, но немного изменить ее, чтобы включить каталог dist/ и исключить каталог src/. Теперь, когда у меня был файл .ebignore, .gitignore теперь игнорировался интерфейсом командной строки EB.

После правильной настройки запуск eb deploy должен успешно развернуть приложение.

Лучший способ?

Правильная настройка определенно является проблемой для многих людей, тем более что для установки необходимо выполнить несколько глобальныхпредварительных условий. Развертывание статических файлов в S3 относительно безболезненно и может быть создано с минимальными усилиями с использованием AWS Javascript SDK, но есть несколько вспомогательных библиотек, которые еще больше упрощают процесс.

Однако для Elastic Beanstalk… пока нет.

Другие статьи, которые могут быть вам полезны