

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# AppSpec Sección de «archivos» (solo para despliegues de EC2/on-premise)
<a name="reference-appspec-file-structure-files"></a>

Proporciona información CodeDeploy sobre los archivos de la revisión de la aplicación que se deben instalar en la instancia durante el evento de **instalación** de la implementación. Esta sección solo es necesaria si va a copiar archivos de la revisión en ubicaciones de la instancia durante la implementación. 

Esta sección tiene la siguiente estructura:

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

Se pueden establecer varios pares `source` y `destination`.

La instrucción `source` identifica el archivo o directorio de la revisión que se va a copiar en la instancia:
+ Si `source` hace referencia a un archivo, solo se copian los archivos especificados en la instancia.
+ Si `source` hace referencia a un directorio, se copian todos los archivos del directorio en la instancia.
+ Si `source` es una sola barra diagonal ("/" para instancias de Amazon Linux, RHEL y Ubuntu Server o " \$1" para instancias de Windows Server), se copian todos los archivos de la revisión en la instancia.

Las rutas utilizadas en `source` son relativas al archivo `appspec.yml`, que debería estar en la raíz de la revisión. Para obtener más información sobre la estructura de archivos de una revisión, consulte [Planificación de una revisión de CodeDeploy](application-revisions-plan.md).

La instrucción `destination` identifica el lugar de la instancia en el que deben copiarse los archivos. Debe ser una ruta totalmente cualificada, como `/root/destination/directory` (en Linux, RHEL y Ubuntu) o `c:\destination\folder` (en Windows).

`source` y `destination` se especifican con una cadena.

La `file_exists_behavior` instrucción es opcional y especifica cómo se gestionan los CodeDeploy archivos que ya existen en la ubicación de destino de la implementación, pero que no formaban parte de la anterior implementación exitosa. Puede adoptar cualquiera de los siguientes valores:
+ NO PERMITIR: se produce un error en la implementación. Esta es la opción predeterminada si no se especifica ninguna opción. 
+ SOBRESCRIBIR: la versión del archivo de la revisión de la aplicación sustituye a la versión ya incluida en la instancia. 
+ RETENER: la versión del archivo que ya está en la instancia se conserva y se usa como parte de la nueva implementación.

Si usa la configuración `file_exists_behavior`, debe comprender que esta configuración:
+ Solo se puede especificar una vez y se aplica a todos los archivos y directorios enumerados en `files:`.
+ tiene prioridad sobre la `--file-exists-behavior` AWS CLI opción y la opción de `fileExistsBehavior` API (ambas opciones también son opcionales).

Esta es una sección `files` de ejemplo para una instancia de Amazon Linux, Ubuntu Server o RHEL.

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

En este ejemplo, se realizan las dos operaciones siguientes durante el evento **Install**:

1. Copiar el archivo `Config/config.txt` en la revisión en la ruta de `/webapps/Config/config.txt` de la instancia.

1. Copiar recursivamente todos los archivos del directorio `source` de la revisión en el directorio `/webapps/myApp` de la instancia.

## Ejemplos de la sección "files"
<a name="reference-appspec-file-structure-files-examples"></a>

Los siguientes ejemplos muestran cómo especificar la sección `files`. Aunque estos ejemplos describen estructuras de archivos y directorios (carpetas) de Windows Server, se pueden adaptar fácilmente para instancias de Amazon Linux, Ubuntu Server y RHEL.

**nota**  
Solo las implementaciones de EC2/en las instalaciones utilizan la sección `files`. No se aplica a las implementaciones de AWS Lambda.

En los siguientes ejemplos, presuponemos que estos archivos están en el paquete en la raíz 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
```

En los siguientes ejemplos, presuponemos que `appspec.yml` está en el paquete en la raíz de `source` junto con una carpeta denominada `my-folder` que contiene tres archivos:
+ `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
```