我在 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. 選擇執行自動化。
4. 在 Amazon 擁有者標籤的自動化文件搜尋欄位中,輸入 AWSSupport-TroubleshootCodeDeploy。然後,選取搜尋圖示,或按鍵盤上的 Enter 鍵。
5. 選取 AWSSupport-TroubleshootCodeDeploy 卡上的選項按鈕。
**注意事項:**請確定您選取的是選項按鈕,而不是超連結的自動化名稱。
6. 在文件詳細資訊區段中,選擇下一步。
7. 在 輸入參數區段的 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. 選擇執行。
執行手冊的輸出提供疑難排解步驟和建議,說明如何解決造成部署失敗的問題。
相關資訊
對 CodeDeploy 進行疑難排解
對 EC2/內部部署的部署問題進行疑難排解