對執行個體問題進行故障診斷 - AWS CodeDeploy

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

對執行個體問題進行故障診斷

標籤必須正確設定

使用指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 伺服器或 RHEL 執行個體,請按以下順序執行以下命令,一次執行一個命令:

systemctl stop codedeploy-agent
systemctl start codedeploy-agent

對於視窗伺服器執行個體

powershell.exe -Command Restart-Service -Name codedeployagent

疑難排解「InvalidSignatureException — 簽章已過期:[時間] 現在早於 [時間]」部署錯誤

CodeDeploy 需要準確的時間參考才能執行其操作。如果執行個體上的日期和時間設定不正確,它們可能與 CodeDeploy 拒絕部署要求的簽章日期不符。

若要避免與時間設定不正確相關的部署失敗,請參閱下列主題: