AppSpec seção 'arquivos' (somente implantações EC2/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' (somente implantações EC2/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 as instâncias do Amazon Linux, RHEL e Ubuntu Server, ou "\" para instâncias do Windows Server), todos os arquivos da sua revisão serão copiados na instância.

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 qualificado, como /root/destination/directory (no Linux, RHEL e 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 de aplicativo substitui a versão sendo implantada no momento 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 opção de fileExistsBehavior API (ambas também são opcionais).

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

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 (pasta) do Windows Server, eles podem ser facilmente adaptados para instâncias do Amazon Linux, Ubuntu Server e RHEL.

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