0

J'ai un flux de travail de CD en utilisant CodePipeline + CodeCommit + CodeDeploy aux instances EC2.AWS CodePipeline + CodeDeploy + CodeCommit avec l'option --file-exists-behavior

Tout le reste fonctionne sauf l'option --file-exists-behavior. Si je crée un déploiement à partir de l'interface CLI Aws ou de la console. Le déploiement fonctionne correctement.

Y at-il de toute façon que je peux utiliser cette option avec CodePipeline?

Je reçois toujours une erreur sans cette option.

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

+0

solution similaire discuté: https://stackoverflow.com/questions/41590332/aws-codedeploy-fail-the-deployment-failed-because-a-specified-file-already-exis – Kannaiyan

+0

Salut, Kannaiyan, j'ai lu cette question, mais cela ne concerne pas codePipeline. –

Répondre

0

Ainsi, lorsque vous déployez, CodeDeploy recherchera un fichier (sur l'instance) avec des informations sur les fichiers précédemment déployés pour l'application/déploiement groupe en question, si elle trouve le fichier alors il l'utilise pour nettoyer (supprimer) les fichiers existants, en préparant la copie des nouveaux fichiers de révision.

Refer This AWS Documentation

Mais si le fichier de nettoyage n'existe pas, soit parce que le code existant a été déployée d'une autre manière (par exemple CloudFormation exemple userdata/sources de métadonnées) ou le CodeDeploy déploiement groupe a été recréée pour Pour une raison quelconque, le fichier de nettoyage n'existe pas ou ne correspond pas à l'ID du groupe de déploiement. Par conséquent, il ne sera pas exécuté. Par conséquent, les fichiers ne seront pas nettoyés et le déploiement échouera car CodeDeploy n'écrase pas les fichiers. Ce qui pourrait être une solution dans ce scénario est d'avoir un crochet (par exemple BeforeInstall) qui appelle un script pour supprimer les fichiers d'application (s'ils existent) sur l'instance.

Hope this helps

+0

Cela signifie-t-il que si je déploie les fichiers une fois avec la CLI ou la console une seule fois, je n'ai pas à m'inquiéter de l'option --file-exists-behavior? –

+0

Nope c'était pour CLI vous auriez toujours besoin d'un script pour avant l'installation pour supprimer le fichier existant –