CodeDeploy アプリケーション仕様 (AppSpec) ファイル - AWS CodeDeploy

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

CodeDeploy アプリケーション仕様 (AppSpec) ファイル

アプリケーション仕様ファイル (AppSpec ファイル) は、YAML 形式、または JSON 形式のファイルであり、CodeDeploy に固有のものです。AppSpec ファイルは、ファイルで定義された一連のライフサイクルイベントフックとして、各デプロイを管理するために使用されます。

正しい形式のAppSpec ファイルを作成する方法については、「CodeDeploy AppSpec ファイルのリファレンス」を参照してください。

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

アプリケーションで Amazon ECS コンピューティングプラットフォームを使用している場合は、AppSpec ファイルを YAML または JSON 形式にすることができます。また、コンソールのエディタに直接入力することもできます。AppSpec ファイルは、以下を指定するために使用されます。

  • Amazon ECS サービスの名称と、新しいタスクセットにトラフィックを送信するために使用されるコンテナの名称およびポート。

  • 検証テストとして使用される関数。

Lambda 関数は、デプロイライフサイクルイベント後に検証を実行できます。詳細についてはAmazon ECS のデプロイ向けの AppSpec の「hooks」セクションAmazon ECS デプロイ向けの AppSpec ファイル構造、およびAmazon ECS デプロイの AppSpec ファイルの例を参照してください。

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

アプリケーションで AWS Lambda コンピューティングプラットフォームを使用している場合、AppSpec ファイルは YAML または JSON のいずれかでフォーマットできます。また、コンソールのエディタに直接入力することもできます。AppSpec ファイルは、以下を指定するために使用されます。

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

  • 検証テストとして使用される関数。

Lambda 関数は、デプロイライフサイクルイベント後に検証を実行できます。詳細については、「AWS Lambda デプロイの AppSpec 'hooks' セクション」を参照してください。

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

アプリケーションで EC2 オンプレミスコンピューティングプラットフォームを使用している場合、AppSpec ファイルは必ず YAML 形式になります。AppSpec ファイルは、以下を目的として使用されます。

  • アプリケーションリビジョンのソースファイルを、インスタンスの宛先にマッピングします。

  • デプロイされたファイルのカスタムアクセス権限を指定する。

  • デプロイプロセスのさまざまなフェーズにおいて、各インスタンスで実行するスクリプトを指定する。

個別のデプロイライフサイクルイベントのうちの多くは、発生後にインスタンス上でスクリプトの実行が可能となっています。CodeDeploy はファイルで指定されているスクリプトのみを実行しますが、これらのスクリプトは、インスタンスの他のスクリプトを呼び出すことができます。インスタンスで実行しているオペレーティングシステムでサポートされている限り、どのタイプのスクリプトでも実行できます。詳細については、「EC2/オンプレミスのデプロイ向けの AppSpec の「hooks」セクション」を参照してください。

CodeDeploy エージェントが AppSpec ファイルを使用する方法

デプロイ中、CodeDeploy エージェントは、現在のイベントの名前を AppSpec ファイル内の フック セクションで検索できます。イベントが見つからない場合、CodeDeploy エージェントは次のステップに進みます。イベントが見つかった場合、CodeDeploy エージェントは実行するスクリプトのリストを取得します。スクリプトはファイルに表示された順序に沿って実行されます。各スクリプトのステータスはインスタンス上の CodeDeploy エージェントログファイルに記録されます。

スクリプトが正常に実行すると、終了コード 0 (ゼロ) を返します。

注記

CodeDeploy エージェントは、 AWS Lambda または Amazon ECS デプロイでは使用されません。

Install イベント中、CodeDeploy エージェントは AppSpec ファイルの files セクション内に定義されているマッピングを使用して、リビジョンからインスタンスにコピーするフォルダまたはファイルを判断します。

オペレーティングシステムにインストールされている CodeDeploy エージェントが AppSpec ファイルに記載されているものと一致しない場合、デプロイは失敗します。

CodeDeploy エージェントログファイルの詳細については、CodeDeploy エージェントの使用 を参照してください。