我在 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體上的 AWS CodeDeploy 部署失敗。
簡短描述
您可以使用 AWS Systems Manager 的 AWSSupport-TroubleshootCodeDeploy 自動化執行手冊來對失敗的部署進行疑難排解。執行手冊可協助您識別因下列原因而失敗的部署:
- CodeDeploy 代理未在執行個體上安裝或執行。
- 缺少必要的執行個體描述檔。
- 執行個體設定檔沒有正確的 Amazon Simple Storage Service (Amazon S3) 許可。
- CodeDeploy 管理的其中一個 lifecycle hook (例如 AllowTraffic 或 BlockTraffic) 發生問題。
- 客戶管理的其中一個 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:GetDeployment、codedeploy:GetDeploymentTarget 和ec2:DescribeInstances。
10. 選擇Execute (執行)。
執行手冊的輸出提供疑難排解步驟和建議,說明如何解決造成部署失敗的問題。
相關資訊
CodeDeploy 疑難排解
EC2/內部部署問題疑難排解