AppSpec sezione 'file' (solo distribuzioni EC2 /On-Premises) - AWS CodeDeploy

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

AppSpec sezione 'file' (solo distribuzioni EC2 /On-Premises)

Fornisce informazioni CodeDeploy sui file della revisione dell'applicazione da installare sull'istanza durante l'evento di installazione della distribuzione. Questa sezione è obbligatoria solo se stai copiando i file dalla tua revisione nelle posizioni sull'istanza durante la distribuzione.

Questa sezione ha la seguente struttura:

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

È possibile impostare più coppie source e destination.

L'istruzione source identifica un file o una directory della revisione da copiare nell'istanza:

  • Se source fa riferimento a un file, solo i file specificati vengono copiati nell'istanza.

  • Se source fa riferimento a una directory, tutti i file della directory vengono copiati nell'istanza.

  • Se source è una barra singola («/» per le istanze di Amazon Linux e Ubuntu Server o «\» per le istanze di Windows Server), tutti i file della revisione vengono copiati nell'istanza. RHEL

I percorsi utilizzati in source sono relativi al appspec.yml file, che dovrebbe essere alla radice della revisione. Per i dettagli sulla struttura dei file di una revisione, vedere. Pianifica una revisione per CodeDeploy

L'istruzione destination identifica il percorso dell'istanza in cui i file devono essere copiati. Deve trattarsi di un percorso completoRHEL, ad esempio /root/destination/directory (su Linux e Ubuntu) o c:\destination\folder (su Windows).

source e destination sono specificati ciascuno con una stringa.

L'file_exists_behavioristruzione è facoltativa e specifica in che modo CodeDeploy gestisce i file già esistenti in una posizione di destinazione di distribuzione ma che non facevano parte della precedente distribuzione riuscita. Questa impostazione può assumere uno qualsiasi dei seguenti valori:

  • DISALLOW: la distribuzione non riesce. Questo è anche il comportamento predefinito se non viene specificata alcuna opzione.

  • OVERWRITE: la versione del file della revisione dell'applicazione attualmente distribuita sostituisce la versione già presente sull'istanza.

  • RETAIN: la versione del file già presente nell'istanza viene conservata e utilizzata come parte della nuova distribuzione.

Quando usi l'file_exists_behaviorimpostazione, tieni presente che questa impostazione:

  • può essere specificata una sola volta e si applica a tutti i file e le directory elencati sottofiles:.

  • ha la precedenza sull'--file-exists-behavior AWS CLI opzione e sull'fileExistsBehaviorAPIopzione (entrambe anch'esse opzionali).

Ecco una files sezione di esempio per un Amazon Linux, Ubuntu Server o un'RHEListanza.

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

In questo esempio, le seguenti due operazioni vengono eseguite durante l'evento Install:

  1. Copia il file Config/config.txt della revisione nel percorso /webapps/Config/config.txt dell'istanza.

  2. Copia in modo ricorsivo tutti i file della directory source della revisione nella directory /webapps/myApp dell'istanza.

Esempi della sezione 'File'

I seguenti esempi mostrano come specificare la sezione files. Sebbene questi esempi descrivano le strutture di file e directory (cartelle) di Windows Server, possono essere facilmente adattati per Amazon Linux, Ubuntu Server e RHEL istanze.

Nota

Solo le distribuzioni EC2 /On-Premises utilizzano la sezione. files Non si applica alle distribuzioni AWS Lambda.

Per i seguenti esempi presupponiamo che questi file siano nel bundle della directory radice di 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

Per i seguenti esempi presupponiamo che il file appspec.yml sia nel bundle della radice di source insieme a una cartella denominata my-folder che contiene tre file:

  • 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