

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

# `AWSSupport-TroubleshootCodeDeploy`
<a name="automation-awssupport-troubleshootcodedeploy"></a>

 **Description** 

 `AWSSupport-TroubleshootCodeDeploy` Runbook 可協助診斷 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體上 AWS CodeDeploy 部署失敗的原因。Runbook 會輸出步驟，協助您進一步解決問題或故障診斷。也提供 CodeDeploy 的最佳實務，協助您避免未來的類似問題。

此 Runbook 可協助您解決下列問題：
+ CodeDeploy 代理程式未安裝或未於 Amazon EC2 執行個體上執行
+ Amazon EC2 執行個體未連接 AWS Identity and Access Management (IAM) 執行個體設定檔
+ 連接至 Amazon EC2 執行個體的 IAM 執行個體設定檔沒有必要的 Amazon Simple Storage Service (Amazon S3) 許可
+ Amazon S3 中儲存的修訂遺失，或所使用的 Amazon S3 儲存貯體位於與 Amazon EC2 執行個體 AWS 區域 不同的 中
+ 應用程式規格 (AppSpec) 檔案問題
+ 「檔案已存在於位置」錯誤
+ 失敗的 CodeDeploy 受管生命週期事件關聯
+ 失敗的客戶受管生命週期事件關聯
+ 部署期間的縮減事件

 [執行此自動化 （主控台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootCodeDeploy) 

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 的使用者許可。
+ DeploymentId

  類型：字串

  描述：（必要） 失敗的部署 ID。
+ InstanceId

  類型：字串

  描述：（必要） 部署失敗的 Amazon EC2 執行個體 ID。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+  `codedeploy:GetDeployment` 
+  `codedeploy:GetDeploymentTarget` 
+  `ec2:DescribeInstances` 

 **文件步驟** 
+  `aws:executeAwsApi` - 驗證為 `DeploymentId`和 `InstanceId` 參數提供的值。
+  `aws:executeScript` - 從 Amazon EC2 執行個體收集資訊，例如執行個體的狀態和 IAM 執行個體設定檔詳細資訊。
+  `aws:executeScript` - 檢閱指定的部署，並傳回有關部署失敗原因的分析。