Код AWS Deploy Error on Before Install Не удается решить

Итак, я пытаюсь настроить CodeDeploy для своего приложения, и я продолжаю получать сообщение об ошибке во время установки BeforeInstall. Ниже приведена ошибка.

Error Code UnknownError
Script Name
Message No such file or directory - /opt/codedeploy-agent/deployment-root/06100f1b-5495-42d9-bd01-f33d59fb5deb/d-NL5K1THE8/deployment-archive/appspec.yml
Log Tail

Я предположил, что это означает, что файл YAML был не в том месте. Однако он находится в корневом каталоге моей ревизии. Я попытался использовать простой файл AppSpec, а не более сложный.

    ## YAML Template.
---
version: 0.0
os: linux
files:
  - source: /
    destination: /home/ubuntu/www

Более или менее, поскольку это первое развертывание, я хочу, чтобы он добавлял все файлы в ревизии в общий каталог на веб-сервере.

Я отрываю свои волосы от этого, и я чувствую, что это простая проблема. У меня правильные правила и роли IAM, и у меня есть установка и запуск CodeDeploy на моем экземпляре, к которому я пытаюсь выполнить.

Ответ 1

Кажется, что в какой-то момент у вас было успешное развертывание.

Перейдите в/opt/codedeploy-agent/deploy-root/deploy-instructions/и удалите все файлы там. Тогда он не будет искать это последнее развертывание.

Ответ 2

У меня просто была эта ЖЕЛАЯ проблема, и я понял это! Убедитесь, что ваш файл AppSpec имеет право РАСШИРЕНИЯ! Я использовал yaml, а не yml, теперь все работает отлично.

Ответ 3

Я сделал это так:

У меня было несколько неудачных развертываний по разным причинам. Дело в том, что компакт-диск хранится в экземпляре EC2 и в пути /opt/codedeploy-agent/deployment-root/ папке с именем ID неудавшегося развертывания [очень длинный буквенно-цифровой укус], Удалите эту папку и создайте новое развертывание [из консоли aws UI] и выполните повторное развертывание приложения. Таким образом файл appspec.yml, который находится в неправильном месте, будет удален. Он должен теперь преуспеть.

Дополнительное уведомление:

CD не переписывает файлы [которые не были созданы им специально для развертывания] CodeDeploy не развертывается в папке, где уже есть код [файлы], так как он не хочет вмешиваться в развертывание CD и/или других инструментов CI/CD [например, Jenkins]. Он развертывается только по пути, который уже развертывает код с конкретным развертыванием.

Вы можете очистить папку, где требуется развертывание, и повторно развернуть свой код с помощью компакт-диска.

Ответ 4

Когда вы входите в систему на хост, вы видите файл appspec.yml в каталоге? Если вы не уверены, что он был проверен с остальной частью вашего развернутого кода?