本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
對執行個體問題進行故障診斷
主題
標籤必須正確設定
使用 list-deployment-instances命令來確認用於部署的執行個體已正確標記。如果輸出中缺少EC2執行個體,請使用EC2主控台確認執行個體上已設定標籤。如需詳細資訊,請參閱 Amazon EC2使用者指南 中的使用主控台中的標籤。
注意
如果您標記執行個體並立即使用 CodeDeploy 將應用程式部署到該執行個體,則該執行個體可能不會包含在部署中。這是因為可能需要幾分鐘的時間 CodeDeploy 才能讀取標籤。建議您在為執行個體套用標籤與嘗試對執行個體進行部署之間等待至少五分鐘。
AWS CodeDeploy 代理程式必須在執行個體上安裝和執行
若要驗證 CodeDeploy 代理程式是否已在執行個體上安裝並執行,請參閱 確認 CodeDeploy 代理程式正在執行。
若要安裝、解除安裝或重新安裝 CodeDeploy 代理程式,請參閱 安裝 CodeDeploy 代理程式。
如果執行個體在部署期間終止,在最多一小時內部署不會失敗
CodeDeploy 為每個要執行到完成的部署生命週期事件提供一小時的時段。這為長時間執行的指令碼提供足夠的時間。
如果在生命週期事件進行中 (例如,如果執行個體終止或 CodeDeploy 代理程式關閉),指令碼未執行到完成,則部署狀態可能需要一小時才會顯示為失敗。即使在指令碼中指定的逾時期間短於一小時,也會發生此情況。這是因為當執行個體終止時, CodeDeploy 代理程式會關閉且無法處理更多指令碼。
如果執行個體在生命週期事件之間或在第一個生命週期事件步驟開始之前終止,逾時將在五分鐘後發生。
分析日誌檔案以調查執行個體的部署失敗
如果部署中的執行個體具有 Succeeded
以外的任何狀態,您可以檢閱部署日誌檔案資料來協助識別問題。如需存取部署日誌資料的詳細資訊,請參閱檢視 CodeDeploy EC2/內部部署的記錄資料。
如果不小心刪除了日誌檔案,請建立新的 CodeDeploy 日誌檔案
如果您意外刪除執行個體上的部署日誌檔案, CodeDeploy 不會建立替代日誌檔案。若要建立新的日誌檔案,請登入執行個體,然後執行這些命令:
對於 Amazon Linux、Ubuntu Server 或RHEL執行個體 ,請以此順序執行這些命令,一次一個:
systemctl stop codedeploy-agent
systemctl start codedeploy-agent
對於 Windows Server 執行個體 :
powershell.exe -Command Restart-Service -Name codedeployagent
故障診斷「InvalidSignatureException – 簽章已過期:「時間」現在早於「時間」」部署錯誤
CodeDeploy 需要準確的時間參考來執行其操作。如果執行個體上的日期和時間未正確設定,則可能與您部署請求的簽章日期不符,而後者會 CodeDeploy 拒絕。
若要避免與時間設定不正確相關的部署失敗,請參閱下列主題: