AppSpec sección «archivos» (EC2/Solo implementaciones locales) - AWS CodeDeploy

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 «archivos» (EC2/Solo implementaciones locales)

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 se trata de una barra diagonal única («/» para las instancias de Amazon Linux y Ubuntu Server, o «\» para las instancias de Windows Server), todos los archivos de la revisión se copiarán en la instancia. RHEL

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 Planifique una revisión para CodeDeploy.

La instrucción destination identifica el lugar de la instancia en el que deben copiarse los archivos. Debe ser una ruta totalmente cualificadaRHEL, como /root/destination/directory (en Linux 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:

  • DISALLOW: Se produce un error en la implementación. Esta es la opción predeterminada si no se especifica ninguna opción.

  • OVERWRITE: La versión del archivo de la revisión de la aplicación que se está implementando actualmente reemplaza a la versión que ya estaba en la instancia.

  • RETAIN: 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 fileExistsBehavior API opción (ambas también son opcionales).

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

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.

  2. 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"

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

nota

Solo las implementaciones EC2 de /On-Premises utilizan esta 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