Обновлять
Я только что понял, что вашему appspec.yml
, похоже, не хватает важной части для развертывания приложения Node.js (и большинства других в этом отношении), а именно раздела hooks
. Как указано в файлах спецификаций приложений AWS CodeDeploy , файл AppSpec используется для управления каждым развертыванием как серией событий жизненного цикла развертывания:
- На этапах развертывания агент AWS CodeDeploy будет искать имя текущего события в разделе ловушек файла AppSpec. [...] Если событие найдено в разделе ловушек, агент AWS CodeDeploy получит список сценариев, которые необходимо выполнить для текущего шага. [...]
См., например, предоставленный Пример файла AppSpec (исключительно для иллюстрации, вам нужно будет создать собственный файл, подходящий для вашего приложения):
os: linux
files:
- source: Config/config.txt
destination: webapps/Config
- source: source
destination: /webapps/myApp
hooks:
BeforeInstall:
- location: Scripts/UnzipResourceBundle.sh
- location: Scripts/UnzipDataBundle.sh
AfterInstall:
- location: Scripts/RunResourceTests.sh
timeout: 180
ApplicationStart:
- location: Scripts/RunFunctionalTests.sh
timeout: 3600
ValidateService:
- location: Scripts/MonitorService.sh
timeout: 3600
runas: codedeployuser
Без такой команды ApplicationStart
у AWS CodeDeploy нет никаких инструкций, что делать с вашим приложением (помните, что CodeDeploy не зависит от технологии, поэтому, например, необходимо сообщить, как запустить сервер приложений).
Начальный ответ
Раздел Обзор развертывания в разделе Что такое AWS CodeDeploy? иллюстрирует процесс типичного развертывания AWS CodeDeploy:
Ключевым аспектом вашего вопроса является шаг 4:
- Наконец, агент AWS CodeDeploy на каждом участвующем экземпляре извлекает версию из указанной корзины Amazon S3 или репозитория GitHub и начинает развертывание содержимого в этом экземпляре, следуя инструкциям в предоставленном файле AppSpec. [выделено мной]
То есть, как только вы запустили развертывание AWS CodeDeploy, все должно работать автоматически — соответственно, что-то, похоже, настроено не совсем правильно, причем наиболее распространенная проблема заключается в том, что группа развертывания фактически еще не содержит запущенных экземпляров. Подтвердили ли вы, что можете выполнить развертывание на своем инстансе EC2 из CodeDeploy через Консоль управления AWS?
person
Steffen Opel
schedule
26.08.2015
appspec.yml
. - person Steffen Opel   schedule 26.08.2015