本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
CodeDeploy AppSpec 檔案參考
本節僅供參考。如需 AppSpec 檔案的概念性概述,請參閱〈〉Application Specification Files。
應用程式規格檔AppSpec 案 (檔案) 是用 CodeDeploy 來管理部署的 YAML
注意
除非您正在執行本機部署appspec.yml
,否則必須命名 EC2/ 內部部署的 AppSpec 檔案。如需詳細資訊,請參閱 建立本機部署。
主題
AppSpec Amazon ECS 運算平台上的檔案
對於 Amazon ECS 運算平台應用程式,會使用 AppSpec 檔案 CodeDeploy 來判斷:
-
您的 Amazon ECS 任務定義檔案。這在 AppSpec 文件中的指
TaskDefinition
令中以其 ARN 指定。 -
取代工作集中的容器和連接埠,應用程式負載平衡器或 Network Load Balancer 會在部署期間重新路由傳送流量。這是通過 AppSpec 文件中的指
LoadBalancerInfo
令指定的。 -
有關 Amazon ECS 服務的選用資訊,例如執行所在的平台版本、子網路及其安全群組。
-
可在 Amazon ECS 部署期間與生命週期事件相對應的掛接期間執行的選用 Lambda 函數。如需詳細資訊,請參閱 AppSpec Amazon ECS 部署的「掛鉤」部分。
AppSpec AWS Lambda 運算平台上的檔案
對於 AWS Lambda 運算平台應用程式,會使用該 AppSpec 檔案 CodeDeploy 來判斷:
-
要部署哪個 Lambda 函數版本。
-
哪些 Lambda 函數用作驗證測試。
AppSpec 檔案可以是 YAML 格式或 JSON 格式。您也可以在建立部署時,將 AppSpec 檔案內容直接輸入 CodeDeploy 主控台。
AppSpec EC2/內部部署計算平台上的檔案
如果您的應用程式使用 EC2 /內部部署計算平台,該 AppSpec 檔案必須是名為 YAML 格式的檔案,appspec.yml
而且必須放置在應用程式原始程式碼目錄結構的根目錄結構中。否則,部署會失敗。它被用 CodeDeploy 來確定:
-
它應該從 Amazon S3 或 GitHub. 中的應用程式修訂版安裝到執行個體上的項目。
-
為回應部署生命週期事件而執行的生命週期事件勾點。
在您有完成的 AppSpec 檔案之後,您可以將它與要部署的內容一起捆綁到歸檔檔案 (zip、tar 或壓縮的 tar) 中。如需詳細資訊,請參閱 使用的應用程式修訂 CodeDeploy。
注意
視窗伺服器執行個體不支援 tar 和壓縮的 tar 封存檔案格式 (.tar 和 .tar.gz)。
在您擁有隨附的封存檔案 (在修訂版中稱 CodeDeploy 為) 之後,您可以將其上傳到 Amazon S3 儲存貯體或 Git 儲存庫。然後,您可 CodeDeploy 以使用部署修訂版本。如需說明,請參閱使用建立部署 CodeDeploy。
EC2 /內部部署計算平台部署的 appspec.yml 會儲存在修訂版本的根目錄中。如需詳細資訊,請參閱 新增EC2/ AppSpec 內部部署的檔案 及 規劃修訂 CodeDeploy。
AppSpec 檔案間距
以下是 AppSpec 檔案間距的正確格式。方格括弧中的數字表示在項目之間必需的空格數。例如,[4]
意味著在項目之間插入四個空格。 CodeDeploy 如果檔案中的位置和空格數目不正確,則會引發可能難以偵 AppSpec 錯的錯誤。
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
下面是一個正確間隔的 AppSpec 文件的例子:
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