AWS CodePipeline + CodeDeploy + CodeCommit с параметром --file-exists-behavior

У меня есть рабочий процесс CD с использованием CodePipeline + CodeCommit + CodeDeploy для экземпляров EC2.

У меня все остальное работает, кроме опции --file-exists-behavior. Если я создам развертывание из интерфейса командной строки Aws или консоли. Развертывание работает нормально.

Можно ли как-нибудь использовать эту опцию с CodePipeline?

Без этой опции я все еще получаю сообщение об ошибке.

The deployment failed because a specified file already exists at this location


comment
Обсуждалось аналогичное решение: stackoverflow.com/questions/41590332/   -  person Kannaiyan    schedule 05.10.2017
comment
Привет, Каннайян, я читал этот вопрос, но он не касается codePipeline.   -  person Allen.Han    schedule 05.10.2017


Ответы (1)


Итак, при развертывании CodeDeploy будет искать файл (в экземпляре) с информацией о ранее развернутых файлах для рассматриваемого приложения / группы развертывания. Если он находит файл, он использует его для очистки (удаления) существующего файлы, готовящиеся к копированию файлов новой ревизии.

См. эту документацию AWS

Но если файл очистки не существует, либо потому, что существующий код был изначально развернут каким-то другим способом (например, источники пользовательских данных / метаданных экземпляра облачной информации), либо группа развертывания CodeDeploy была воссоздана по какой-то причине, тогда файл очистки либо не будет существует или не соответствует идентификатору группы развертывания. Следовательно, он не будет запущен. Поэтому файлы не будут очищены, и развертывание завершится ошибкой, поскольку CodeDeploy не перезаписывает файлы.

Какое Решение могло бы быть в этом сценарии , так это иметь ловушку (например, BeforeInstall), которая вызывает сценарий для удаления файлов приложений (если они существуют) в экземпляре.

Надеюсь это поможет

person Kush Vyas    schedule 05.10.2017
comment
Означает ли это, что если я разверну файлы один раз с помощью интерфейса командной строки или консоли, мне не придется беспокоиться о параметре --file-exists-behavior? - person Allen.Han; 06.10.2017
comment
Нет, это было для CLI, вам все равно понадобится скрипт перед установкой для удаления существующего файла - person Kush Vyas; 11.10.2017