CodeDeploy AppSpec File のリファレンス - AWS CodeDeploy

CodeDeploy AppSpec File のリファレンス

このセクションは参照のみを目的としています。AppSpec file の概念の概要については、「アプリケーション仕様ファイル」を参照してください。

application specification file (AppSpec file) は、デプロイを管理するために CodeDeploy によって使用される YAML 形式または JSON 形式ファイルです。

注記

EC2/オンプレミス デプロイの AppSpec file の名前は appspec.yml または appspec.json にする必要があります。​

Amazon ECS コンピューティングプラットフォームでの AppSpec ファイル

Amazon ECS compute platform アプリケーションの場合、CodeDeploy は AppSpec ファイルを使用して以下を確認します。

  • Amazon ECS タスク定義ファイル。これは、AppSpec file の TaskDefinition 命令の ARN で指定されます。

  • 置き換えタスクセットのコンテナとポート。ここで Application Load Balancer または Network Load Balancer はデプロイ中にトラフィックを再ルーティングします。これは、AppSpec file の LoadBalancerInfo 命令で指定されます。

  • サービスが実行されるプラットフォームのバージョン、そのサブネット、およびそのセキュリティグループなどの、Amazon ECS サービスに関するオプション情報。

  • Amazon ECS のデプロイ中、ライフサイクルイベントに応じたフック中に実行される、オプションの Lambda 関数。詳細については、「Amazon ECS デプロイ用の AppSpec の「hooks」セクション」を参照してください。

AWS Lambda コンピューティングプラットフォームでの AppSpec ファイル

AWS Lambda compute platform アプリケーションの場合、CodeDeploy は AppSpec ファイルを使用して以下を確認します。

  • デプロイする Lambda 関数のバージョン。

  • 検証テストとして使用する Lambda 関数。

AppSpec file は、YAML 形式または JSON 形式とすることができます。デプロイの作成時に、AppSpec file の内容を直接 CodeDeploy コンソールに入力することもできます。

EC2/オンプレミスコンピューティングプラットフォームでの AppSpec ファイル

アプリケーションで EC2/オンプレミス compute platform を使用している場合は、AppSpec file の名前は appspec.yml になります。これは、以下を決定するために CodeDeploy により使用されます。

  • Amazon S3 または GitHub のアプリケーションリビジョンからインスタンスにインストールする必要があるもの。

  • デプロイライフサイクルイベントに応じて実行するライフサイクルイベントフック。

AppSpec file は appspec.yml という名前の YAML 形式ファイルとし、アプリケーションのソースコードのディレクトリ構造のルートに配置する必要があります。それ以外の場合、デプロイは失敗します。

AppSpec file を完了したら、デプロイするコンテンツとともに、アーカイブファイル (zip、tar、または圧縮 tar) にバンドルします。詳細については、「CodeDeploy のアプリケーションリビジョンの操作」を参照してください。

注記

tar と、圧縮された tar アーカイブファイル形式 (.tar および .tar.gz) は、Windows Server インスタンスに対してサポートされていません。

アーカイブファイル (CodeDeploy ではリビジョンと呼ばれます) をバンドルしたら、Amazon S3 バケットまたは Git レポジトリにアップロードします。次に、CodeDeploy を使用してリビジョンをデプロイします。手順については、「CodeDeploy を使用してデプロイを作成する」を参照してください。

EC2/オンプレミス compute platform デプロイの appspec.yml は、リビジョンのルートディレクトリに保存されます。詳細については、「EC2/オンプレミス デプロイ用の AppSpec ファイルを追加する」および「CodeDeploy のリビジョンの計画」を参照してください。

AppSpec File の間隔

AppSpec file の間隔の正しい形式を以下に示します。角括弧に含まれた番号は、項目の間に必要なスペースの数を示します。たとえば、[4] は、項目間に 4 つのスペースを挿入することを意味します。CodeDeploy は、AppSpec file のスペースの場所と数が正しくない場合に、デバッグが困難な可能性のあるエラーを発生させます。

version:[1]version-number os:[1]operating-system-name files: [2]-[1]source:[1]source-files-location [4]destination:[1]destination-files-location permissions: [2]-[1]object:[1]object-specification [4]pattern:[1]pattern-specification [4]except:[1]exception-specification [4]owner:[1]owner-account-name [4]group:[1]group-name [4]mode:[1]mode-specification [4]acls: [6]-[1]acls-specification [4]context: [6]user:[1]user-specification [6]type:[1]type-specification [6]range:[1]range-specification [4]type: [6]-[1]object-type hooks: [2]deployment-lifecycle-event-name: [4]-[1]location:[1]script-location [6]timeout:[1]timeout-in-seconds [6]runas:[1]user-name

正しい間隔が設定された spacedAppSpec file ファイルの例を次に示します。

version: 0.0 os: linux files: - source: / destination: /var/www/html/WordPress hooks: BeforeInstall: - location: scripts/install_dependencies.sh timeout: 300 runas: root AfterInstall: - location: scripts/change_permissions.sh timeout: 300 runas: root ApplicationStart: - location: scripts/start_server.sh - location: scripts/create_test_db.sh timeout: 300 runas: root ApplicationStop: - location: scripts/stop_server.sh timeout: 300 runas: root

間隔の詳細については、YAML の仕様を参照してください。