如何對 Amazon EC2 執行個體上部署失敗的 CodeDeploy 進行疑難排解?

1 分的閱讀內容
0

我在 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體上的 AWS CodeDeploy 部署失敗。

簡短描述

您可以使用 AWS Systems Manager 的 AWSSupport-TroubleshootCodeDeploy 自動化執行手冊來對失敗的部署進行疑難排解。執行手冊可協助您識別因下列原因而失敗的部署:

  • CodeDeploy 代理未在執行個體上安裝或執行。
  • 缺少必要的執行個體描述檔。
  • 執行個體設定檔沒有正確的 Amazon Simple Storage Service (Amazon S3) 許可。
  • CodeDeploy 管理的其中一個 lifecycle hook (例如 AllowTrafficBlockTraffic) 發生問題。
  • 客戶管理的其中一個 lifecycle hook 發生問題。
  • 在部署期間,Auto Scaling 群組縮減規模事件發生問題。
  • AppSpec 檔案遺失或格式不正確。

解決方案

**重要事項:**在 CodeDeploy 應用程式所在的相同 AWS 區域中使用 AWSSupport-TroubleshootCodeDeploy 執行手冊。

1.    開啟 AWS Systems Manager 主控台

2.    在導覽窗格的變更管理區段,選擇自動化

3.    選擇 Execute automation (執行自動化)。

4.    在由 Amazon 擁有標籤的自動化文件搜尋方塊中,輸入 AWSSupport-TroubleshootCodeDeploy。然後,選取搜尋圖示或按鍵盤上的 Enter 鍵。

5.    選取 AWSSupport-TroubleshootCodeDeploy 卡上的電台按鈕。

**注意:**請確定您選取電台按鈕,而不是超連結的自動化名稱。

6.    在 Document details (文件詳細資料) 欄位中,選擇 Next (下一步)。

7.    在 Input parameters (輸入參數) 欄位的 DeploymentId中,輸入失敗的部署 ID。

8.    在 InstanceID 中,輸入部署失敗的執行個體 ID。

9.    在 AutomationAssumeRole 中,輸入可讓 Systems Manager Automation 執行動作之角色的 Amazon Resource Name (ARN)

**注意:**如果您未指定 AWS Identity and Access Management (IAM) 角色,則 Systems Manager Automation 會使用執行執行手冊的 IAM 使用者角色許可。如需有關建立 Systems Manager Automation 假設角色的詳細資訊,請參閱任務 1:為自動化建立服務角色

**重要事項:**AutomationAssumeRole 或使用者角色必須具有下列動作的許可:codedeploy:GetDeploymentcodedeploy:GetDeploymentTargetec2:DescribeInstances

10.    選擇Execute (執行)。

執行手冊的輸出提供疑難排解步驟和建議,說明如何解決造成部署失敗的問題。


相關資訊

CodeDeploy 疑難排解

EC2/內部部署問題疑難排解

AWS 官方
AWS 官方已更新 3 個月前