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 будет искать файл (в экземпляре) с информацией о ранее развернутых файлах для рассматриваемой группы приложений / развертывания; если он находит файл, то использует его для очистки (удаления) существующего файла. файлы, подготовка к копированию файлов новой ревизии.
Но если файл очистки не существует, либо потому, что существующий код был первоначально развернут каким-либо другим способом (например, источником пользовательских данных / метаданных экземпляра облачной информации), либо группа развертывания CodeDeploy была по какой-то причине воссоздана, тогда файл очистки либо не будет существует или не соответствует идентификатору группы развертывания. Поэтому он не будет запущен. Поэтому файлы не будут очищены, и развертывание не будет выполнено, поскольку CodeDeploy не перезаписывает файлы.
Решением в этом сценарии может быть наличие ловушки (например, BeforeInstall), которая вызывает скрипт для удаления файлов приложений (если они существуют) в экземпляре.
Надеюсь это поможет