AWS CodePipeline + CodeDeploy + CodeCommit с опцией --file-Существующее поведение

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

У меня все остальное работает, кроме этой опции --file-существующие-поведение. Если я создаю развертывание из CLI Aws или консоли. Развертывание работает отлично.

Есть ли в любом случае, я могу использовать эту опцию с CodePipeline?

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

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

1 ответ

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

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

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

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

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