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

上次更新日期:2021 年 9 月 8 日

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

簡短描述

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

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

解決方案

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

1.    開啟 AWS Systems Manager 主控台

2.    在導覽窗格的 Change Management (變更管理) 欄位選擇 Automation (自動化)。

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

4.    在Owned by Amazon (亞馬遜旗下) 標籤的 Automation document (自動化文件) 搜尋方塊中,輸入 AWSSupport-TroubleshootCodeDeploy。然後,選取搜尋圖示或按鍵盤上的 Enter 鍵。

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

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

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

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

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

9.    在 AutomationAssumeRole中,輸入可讓 Systems Manager Automation 執行動作的角色的 Amazon 資源名稱 (ARN)

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

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

10.    選擇Execute (執行)。

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


此文章是否有幫助?


您是否需要帳單或技術支援?