AppSpec section « fichiers » (déploiements EC2/sur site uniquement) - AWS CodeDeploy

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

AppSpec section « fichiers » (déploiements EC2/sur site uniquement)

Fournit des informations CodeDeploy sur les fichiers issus de la révision de votre application qui doivent être installés sur l'instance lors de l'événement Install du déploiement. Cette section est obligatoire uniquement si vous copiez des fichiers à partir de votre révision dans des emplacements sur l'instance durant le déploiement.

Cette section a la structure suivante :

files: - source: source-file-location-1 destination: destination-file-location-1 file_exists_behavior: DISALLOW|OVERWRITE|RETAIN

Plusieurs paires source et destination peuvent être définies.

L'instruction source identifie un fichier ou un répertoire de votre révision à copier sur l'instance :

  • Si source fait référence à un fichier, seuls les fichiers spécifiés sont copiés sur l'instance.

  • Si source fait référence à un répertoire, tous les fichiers figurant dans le répertoire sont copiés sur l'instance.

  • S'il s'sourceagit d'une barre oblique unique («/» pour les instances Amazon Linux, RHEL et Ubuntu Server, ou « \ » pour les instances Windows Server), tous les fichiers de votre révision sont copiés sur l'instance.

Les chemins utilisés dans source sont relatifs au appspec.yml fichier, qui doit se trouver à la racine de votre révision. Pour plus de détails sur la structure de fichier d'une révision, voirPlanifier une révision pour CodeDeploy.

L'instruction destination identifie l'emplacement sur l'instance où les fichiers doivent être copiés. Il doit s'agir d'un chemin entièrement qualifié tel que /root/destination/directory (sous Linux, RHEL et Ubuntu) ou c:\destination\folder (sous Windows).

Les instructions source et destination sont spécifiées chacune avec une chaîne.

L'file_exists_behaviorinstruction est facultative et indique comment CodeDeploy gère les fichiers qui existent déjà dans un emplacement cible de déploiement mais qui ne faisaient pas partie du déploiement réussi précédent. Ce paramètre peut prendre l'une des valeurs suivantes :

  • INTERDIRE : le déploiement échoue. C'est également le comportement par défaut si aucune option n'est spécifiée.

  • REMPLACER : La version du fichier de la révision de l'application en cours de déploiement remplace la version déjà présente sur l'instance.

  • CONSERVER : La version du fichier déjà présente sur l'instance est conservée et utilisée dans le cadre du nouveau déploiement.

Lorsque vous utilisez le file_exists_behavior paramètre, sachez que celui-ci :

  • ne peut être spécifié qu'une seule fois et s'applique à tous les fichiers et répertoires répertoriés ci-dessousfiles:.

  • a priorité sur l'--file-exists-behavior AWS CLI option et l'option fileExistsBehavior API (qui sont également facultatives).

Voici un exemple de files section pour une instance Amazon Linux, Ubuntu Server ou RHEL.

files: - source: Config/config.txt destination: /webapps/Config - source: source destination: /webapps/myApp

Dans cet exemple, les deux opérations suivantes sont effectuées au cours de l'événement Install :

  1. Copie du fichier Config/config.txt de votre révision vers le chemin /webapps/Config/config.txt sur l'instance.

  2. Copie récursive de tous les fichiers du répertoire source de votre révision vers le répertoire /webapps/myApp sur l'instance.

Exemples de sections « Fichiers »

Les exemples suivants montrent comment spécifier la section files. Bien que ces exemples décrivent les structures de fichiers et de répertoires (dossiers) de Windows Server, ils peuvent facilement être adaptés aux instances Amazon Linux, Ubuntu Server et RHEL.

Note

Seuls les déploiements EC2/sur site utilisent cette section. files Elle ne s'applique pas aux AWS déploiements Lambda.

Pour les exemples suivants, nous supposons que ces fichiers apparaissent dans le groupe à la racine de source :

  • appspec.yml

  • my-file.txt

  • my-file-2.txt

  • my-file-3.txt

# 1) Copy only my-file.txt to the destination folder c:\temp. # files: - source: .\my-file.txt destination: c:\temp # # Result: # c:\temp\my-file.txt # # --------------------- # # 2) Copy only my-file-2.txt and my-file-3.txt to the destination folder c:\temp. # files: - source: my-file-2.txt destination: c:\temp - source: my-file-3.txt destination: c:\temp # # Result: # c:\temp\my-file-2.txt # c:\temp\my-file-3.txt # # --------------------- # # 3) Copy my-file.txt, my-file-2.txt, and my-file-3.txt (along with the appspec.yml file) to the destination folder c:\temp. # files: - source: \ destination: c:\temp # # Result: # c:\temp\appspec.yml # c:\temp\my-file.txt # c:\temp\my-file-2.txt # c:\temp\my-file-3.txt

Pour les exemples suivants, nous supposons que appspec.yml apparaît dans le groupe à la racine de source avec un dossier nommé my-folder contenant trois fichiers :

  • appspec.yml

  • my-folder\my-file.txt

  • my-folder\my-file-2.txt

  • my-folder\my-file-3.txt

# 4) Copy the 3 files in my-folder (but do not copy my-folder itself) to the destination folder c:\temp. # files: - source: .\my-folder destination: c:\temp # # Result: # c:\temp\my-file.txt # c:\temp\my-file-2.txt # c:\temp\my-file-3.txt # # --------------------- # # 5) Copy my-folder and its 3 files to my-folder within the destination folder c:\temp. # files: - source: .\my-folder destination: c:\temp\my-folder # # Result: # c:\temp\my-folder\my-file.txt # c:\temp\my-folder\my-file-2.txt # c:\temp\my-folder\my-file-3.txt # # --------------------- # # 6) Copy the 3 files in my-folder to other-folder within the destination folder c:\temp. # files: - source: .\my-folder destination: c:\temp\other-folder # # Result: # c:\temp\other-folder\my-file.txt # c:\temp\other-folder\my-file-2.txt # c:\temp\other-folder\my-file-3.txt # # --------------------- # # 7) Copy only my-file-2.txt and my-file-3.txt to my-folder within the destination folder c:\temp. # files: - source: .\my-folder\my-file-2.txt destination: c:\temp\my-folder - source: .\my-folder\my-file-3.txt destination: c:\temp\my-folder # # Result: # c:\temp\my-folder\my-file-2.txt # c:\temp\my-folder\my-file-3.txt # # --------------------- # # 8) Copy only my-file-2.txt and my-file-3.txt to other-folder within the destination folder c:\temp. # files: - source: .\my-folder\my-file-2.txt destination: c:\temp\other-folder - source: .\my-folder\my-file-3.txt destination: c:\temp\other-folder # # Result: # c:\temp\other-folder\my-file-2.txt # c:\temp\other-folder\my-file-3.txt # # --------------------- # # 9) Copy my-folder and its 3 files (along with the appspec.yml file) to the destination folder c:\temp. If any of the files already exist on the instance, overwrite them. # files: - source: \ destination: c:\temp file_exists_behavior: OVERWRITE # # Result: # c:\temp\appspec.yml # c:\temp\my-folder\my-file.txt # c:\temp\my-folder\my-file-2.txt # c:\temp\my-folder\my-file-3.txt