AppSpec seção 'arquivos' (EC2/Somente implantações locais) - AWS CodeDeploy

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

AppSpec seção 'arquivos' (EC2/Somente implantações locais)

Fornece informações CodeDeploy sobre quais arquivos da revisão do seu aplicativo devem ser instalados na instância durante o evento de instalação da implantação. Esta seção é necessária apenas quando você copia arquivos da sua revisão em locais na instância durante a implantação.

Esta seção tem a seguinte estrutura:

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

Vários pares destination e source podem ser definidos.

A instrução source identifica um arquivo ou diretório de sua revisão para copiar na instância:

  • Se a source se referir a um arquivo, somente os arquivos especificados serão copiados na instância.

  • Se a source se referir a um diretório, todos os arquivos no diretório serão copiados na instância.

  • Se source for uma única barra (“/” para instâncias do Amazon Linux e Ubuntu Server ou “\” para instâncias do Windows Server), todos os arquivos da sua revisão serão copiados para a instância. RHEL

Os caminhos usados no source são relativos ao arquivo appspec.yml, que deve estar na raiz da sua revisão. Para obter detalhes sobre a estrutura de arquivos de uma revisão, consulte Planeje uma revisão para CodeDeploy.

A instrução destination identifica a localização na instância em que os arquivos devem ser copiados. Esse deve ser um caminho totalmente qualificadoRHEL, como /root/destination/directory (no Linux e no Ubuntu) ou c:\destination\folder (no Windows).

source e destination são especificados com uma string.

A file_exists_behavior instrução é opcional e especifica como CodeDeploy manipula arquivos que já existem em um local de destino de implantação, mas não faziam parte da implantação anterior bem-sucedida. Essa configuração ser um dos valores a seguir:

  • DISALLOW: A implantação falha. Esse também é o comportamento padrão se nenhuma opção for especificada.

  • OVERWRITE: a versão do arquivo da revisão do aplicativo que está sendo implantada atualmente substitui a versão que já está na instância.

  • RETAIN: a versão do arquivo que já está na instância é mantida e usada como parte da nova implantação.

Ao usar a configuração file_exists_behavior, entenda que essa configuração:

  • só pode ser especificada uma vez e se aplica a todos os arquivos e diretórios listados sob files:.

  • tem precedência sobre a --file-exists-behavior AWS CLI opção e a fileExistsBehavior API opção (ambas também são opcionais).

Aqui está uma files seção de exemplo para um Amazon Linux, Ubuntu Server ou RHEL instância.

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

Neste exemplo, as duas operações a seguir são realizadas durante o evento Install:

  1. Copie o arquivo Config/config.txt em sua revisão no caminho /webapps/Config/config.txt na instância.

  2. Copie recursivamente todos os arquivos no diretório source da revisão para o diretório /webapps/myApp na instância.

Exemplos da seção “files”

Os exemplos a seguir mostram como especificar a seção files. Embora esses exemplos descrevam estruturas de arquivos e diretórios (pastas) do Windows Server, eles podem ser facilmente adaptados para Amazon Linux, Ubuntu Server e RHEL instâncias.

nota

Somente implantações EC2 /On-Premises usam a seção. files Ela não se aplica às implantações do AWS Lambda.

Para os exemplos a seguir, supomos que esses arquivos apareçam no pacote na raiz 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

Para os seguintes exemplos, supomos que appspec.yml apareça no pacote na raiz de source, juntamente com uma pasta chamada my-folder que contém três arquivos:

  • 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