AWS CodeDeploy зависает перед ApplicationStop на Windows Server 2016 - PullRequest
0 голосов
/ 09 января 2020

Я немного застрял с этим. Я пытаюсь использовать Code Deploy на Windows Server EC2 безуспешно, он застревает до остановки приложения, и все фазы ожидают, пока не завершится неудачей, тогда все они пропущены.

Что я до сих пор проверено:

  1. Я установил агент Code-Deploy на сервер и убедился, что он работает
  2. Я проверил и дважды проверил входящие и исходящие разрешения для экземпляра EC2 (разрешены все запросы HTTP / HTTPS)
  3. Я проверил роль IAM в самом приложении Code Deploy (я дал все разрешения, о которых могу думать)
  4. I проверил appspe c .yml (ему нужно только перенести файлы сборки из фазы сборки в папку на самом EC2
version: 0.0
os: windows
files:
  - source: \path
    destination: \path
hooks:
    BeforeInstall:
    AfterInstall:
    ApplicationStart:

Понятия не имею, почему это произойдет (я мы развернули на Linux экземплярах без этой проблемы - агент всегда начинал читать appspe c .yml)

Любая помощь будет признательна. Спасибо!

1 Ответ

0 голосов
/ 12 января 2020

В принципе ApplicationStop всегда выполняется из архива вашего последнего успешного развертывания, поскольку именно тогда вы запустили свое приложение. Таким образом, CodeDeploy гарантирует, что сценарии, используемые для запуска и остановки приложения, принадлежат к одной и той же ревизии [1]. У нас нет полных данных, но, возможно, проблема связана с сценарием ApplicationStop из последнего развертывания.

Согласно [1]:

Если причиной сбоя является скрипт из последнего успешного развертывания, который никогда не запускался успешно, создайте развертывание и укажите, что ApplicationStop, BeforeBlockTraffi c, а ошибки AfterBlockTraffi c следует игнорировать. Есть два способа сделать это:

  • Используйте консоль CodeDeploy для создания развертывания. На странице «Создание развертывания» в разделе «Ошибка события жизненного цикла ApplicationStop» выберите «Не отказывать в развертывании на экземпляре, если это событие жизненного цикла на экземпляре завершится неудачно.

  • Используйте CLI AWS для вызовите команду create-deploy и включите параметр --ignore-application-stop-failures.

[1] https://docs.aws.amazon.com/codedeploy/latest/userguide/troubleshooting-deployments.html#troubleshooting -deployments-lifecycle-event -failures

...