AppSpec 'files' セクション (EC2/オンプレミスデプロイのみ) - AWS CodeDeploy

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AppSpec 'files' セクション (EC2/オンプレミスデプロイのみ)

デプロイのインストールイベント中にアプリケーションリビジョンのどのファイルをインスタンスにインストールするか CodeDeploy に関する情報を提供します。このセクションは、デプロイ中にリビジョンからインスタンス上の場所にファイルをコピーする場合のみ必要です。

このセクションの構造は次のとおりです。

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

複数の sourcedestination ペアを設定できます。

source は、リビジョンからインスタンスにコピーするファイルまたはディレクトリを識別します。

  • source はファイルを参照し、指定されたファイルのみがインスタンスにコピーされます。

  • source はディレクトリを参照し、そのディレクトリのすべてのファイルがインスタンスにコピーされます。

  • source が 1 つのスラッシュ (Amazon Linux、、Ubuntu Server インスタンスの場合は「/RHEL」、Windows Server インスタンスの場合は「」) の場合、リビジョンのすべてのファイルがインスタンスにコピーされます。

source で使用されているパスは appspec.yml ファイルに対する相対パスで、 ファイルはリビジョンのルートに存在する必要があります。リビジョンのファイル構造の詳細については、「のリビジョンを計画する CodeDeploy」を参照してください。

destination は、ファイルをコピーするインスタンス上の場所を識別します。これは、 /root/destination/directory (Linux、、RHELUbuntu の場合) や c:\destination\folder (Windows の場合) などの完全修飾パスである必要があります。

sourcedestination は、それぞれ文字列で指定されます。

file_exists_behavior 命令はオプションであり、 がデプロイターゲットロケーションに既に存在しているが、以前のデプロイに成功しなかったファイルを処理する方法 CodeDeployを指定します。この設定は、以下のいずれかの値を取ることができます。

  • DISALLOW: デプロイは失敗します。オプションが何も指定されていないときは、これもデフォルトの動作となります。

  • OVERWRITE: 現在デプロイされているアプリケーションリビジョンのファイルのバージョンは、インスタンスに既にあるバージョンを置き換えます。

  • RETAIN: インスタンスに既に存在するファイルのバージョンは、新しいデプロイの一部として保持および使用されます。

file_exists_behavior 設定を使用する場合、この設定を理解してください。

  • は 1 度だけ指定でき、files: にリストされたすべてのファイルとディレクトリに適用されます。

  • は、 --file-exists-behavior AWS CLI オプションと fileExistsBehaviorAPIオプション (どちらもオプション) よりも優先されます。

Amazon Linux、Ubuntu Server、またはRHELインスタンスの例filesを次に示します。

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

この例では、次の 2 つのオペレーションが、Install イベント中に実行されます。

  1. 使用するリビジョンの Config/config.txt ファイルをインスタンスの /webapps/Config/config.txt パスにコピーします。

  2. リビジョンの source ディレクトリのすべてのファイルを、インスタンスの /webapps/myApp ディレクトリに再帰的にコピーします。

「files」セクションの例

次の例は、files セクションを指定する方法を示しています。これらの例は Windows Server ファイルとディレクトリ (フォルダ) 構造を示していますが、Amazon Linux、Ubuntu Server、RHELインスタンスに簡単に適応できます。

注記

EC2/オンプレミスデプロイのみが filesセクションを使用します。Lambda AWS デプロイには適用されません。

次の例では、以下のファイルが 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

次の例では、appspec.ymlsource のルートのバンドルに、3 つのファイルを含む my-folder という名前のフォルダとともに表示されることを前提としています。

  • 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