

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)
<a name="reference-appspec-file-structure-files"></a>

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'`source`agit d'une barre oblique unique («/» pour les instances Amazon Linux, RHEL et Ubuntu Server, ou « \$1 » 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, voir[Planifier une révision pour CodeDeploy](application-revisions-plan.md).

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_behavior`instruction 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 issue 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-dessous`files:`.
+ 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.

1. 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 »
<a name="reference-appspec-file-structure-files-examples"></a>

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
```