

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# CodeDeploy 應用程式規格 (AppSpec) 檔案
<a name="application-specification-files"></a>

應用程式規格檔案 (AppSpec 檔案） 是 CodeDeploy 獨有的，是 [YAML](http://www.yaml.org) 格式或 [JSON](http://www.json.org) 格式的檔案。AppSpec 檔案用於將每個部署管理為一系列生命週期事件掛鉤，這些掛鉤定義在 檔案中。

如需有關如何建立格式正確的 AppSpec 檔案的資訊，請參閱 [CodeDeploy AppSpec 檔案參考](reference-appspec-file.md)。

**Topics**
+ [Amazon ECS 運算平台上的 AppSpec 檔案](#appspec-files-on-ecs-compute-platform)
+ [AWS Lambda 運算平台上的 AppSpec 檔案](#appspec-files-on-lambda-compute-platform)
+ [EC2/內部部署運算平台上的 AppSpec 檔案](#appspec-files-on-server-compute-platform)
+ [CodeDeploy 代理程式如何使用 AppSpec 檔案](#application-specification-files-agent-usage)

## Amazon ECS 運算平台上的 AppSpec 檔案
<a name="appspec-files-on-ecs-compute-platform"></a>

如果您的應用程式使用 Amazon ECS 運算平台，AppSpec 檔案可以使用 YAML 或 JSON 進行格式化。也可以直接輸入主控台中的編輯器。AppSpec 檔案用於指定：
+ Amazon ECS 服務的名稱，以及用於將流量導向新任務集的容器名稱和連接埠。
+ 用於驗證測試的函數。

您可以在部署生命週期事件之後執行驗證 Lambda 函數。如需詳細資訊，請參閱[Amazon ECS 部署的 AppSpec 'hooks' 區段](reference-appspec-file-structure-hooks.md#appspec-hooks-ecs)、[Amazon ECS 部署的 AppSpec 檔案結構](reference-appspec-file-structure.md#ecs-appspec-structure)及[Amazon ECS 部署的 AppSpec 檔案範例](reference-appspec-file-example.md#appspec-file-example-ecs)。

## AWS Lambda 運算平台上的 AppSpec 檔案
<a name="appspec-files-on-lambda-compute-platform"></a>

如果您的應用程式使用 AWS Lambda 運算平台，AppSpec 檔案可以使用 YAML 或 JSON 進行格式化。也可以直接輸入主控台中的編輯器。AppSpec 檔案用於指定：
+ 要部署的 AWS Lambda 函數版本。
+ 用於驗證測試的函數。

您可以在部署生命週期事件之後執行驗證 Lambda 函數。如需詳細資訊，請參閱[AWS Lambda 部署的 AppSpec 'hooks' 區段](reference-appspec-file-structure-hooks.md#appspec-hooks-lambda)。

## EC2/內部部署運算平台上的 AppSpec 檔案
<a name="appspec-files-on-server-compute-platform"></a>

如果您的應用程式使用 EC2/現場部署運算平台，AppSpec 檔案一律為 YAML 格式。AppSpec 檔案用於：
+ 將應用程式修訂中的來源檔案，映射至執行個體上的目標。
+ 指定已部署檔案的自訂許可。
+ 指定在部署程序各階段在每個執行個體上執行的指令碼。

您可以在許多個別部署生命週期事件之後，在執行個體上執行指令碼。CodeDeploy 只會執行 檔案中指定的指令碼，但這些指令碼可以呼叫執行個體上的其他指令碼。只要執行個體上執行的作業系統支援，您就可以執行任何類型的指令碼。如需詳細資訊，請參閱[EC2/現場部署的 AppSpec 'hooks' 區段](reference-appspec-file-structure-hooks.md#appspec-hooks-server)。

## CodeDeploy 代理程式如何使用 AppSpec 檔案
<a name="application-specification-files-agent-usage"></a>

在部署期間，CodeDeploy 代理程式會在 AppSpec 檔案的**掛**鉤區段中查詢目前事件的名稱。如果找不到事件，CodeDeploy 代理程式會繼續進行下一個步驟。如果找到事件，CodeDeploy 代理程式會擷取要執行的指令碼清單。指令碼會按照在檔案中出現的順序依次執行。每個指令碼的狀態都會記錄在執行個體上的 CodeDeploy 代理程式日誌檔案中。

如果指令碼執行成功，則會傳回結束代碼 0 (零)。

**注意**  
 CodeDeploy 代理程式不會用於 AWS Lambda 或 Amazon ECS 部署。

在**安裝**事件期間，CodeDeploy 代理程式會使用 AppSpec **檔案的檔案**區段中定義的映射，來判斷要從修訂版複製到執行個體的資料夾或檔案。

如果安裝在作業系統上的 CodeDeploy 代理程式不符合 AppSpec 檔案中列出的項目，則部署會失敗。

如需 CodeDeploy 代理程式日誌檔案的詳細資訊，請參閱 [使用 CodeDeploy 代理程式](codedeploy-agent.md)。