在使用阿里雲ECS API/SDK或CLI進行雲端服務器操作時,執行可能會出錯,會遇到不同的錯誤碼(ErrorCode)。這些錯誤碼通常是因為參數不正確、許可權問題或憑證等原因導致的。本文將協助您通過系統化的方法排查和解決這些錯誤。
出錯的資料格式
調用ECS API出錯的資料格式如下。
{
"RequestId": "06DD587E-599A-55C6-83BB-EC5******F2",
"HostId": "ecs.cn-hangzhou.aliyuncs.com",
"Code": "InvalidP******",
"Message": "The specified parameter **** is not valid.",
"Recommend": "https://api.aliyun.com/troubleshoot?q=InvalidP******&product=Ecs&requestId=06DD587E-599A-55C6-83BB-EC5******F2"
}各參數解釋如下:
RequestId:請求唯一標識。
HostId:服務端主機標識。
Code:錯誤碼資訊。
Message:詳細錯誤資訊。
Recommend:錯誤診斷連結,可直接複製該欄位跳轉到錯誤診斷頁面擷取解決方案。
一個ECS執行個體不存在的樣本如下。
{
"RequestId": "81EF1E7D-0D15-5CAF-B602-3487FAFA88D5",
"HostId": "ecs.cn-hangzhou.aliyuncs.com",
"Code": "InvalidInstanceId.NotFound",
"Message": "The specified InstanceId does not exist.",
"Recommend": "https://api.aliyun.com/troubleshoot?q=InvalidInstanceId.NotFound&product=Ecs&requestId=81EF1E7D-0D15-5CAF-B602-3487FAFA88D5"
}常見報錯
以下是一些常見的錯誤,可以快速解決API調用報錯問題:
指定地區:指定資源所在地區拼字錯誤或者Endpoint錯誤。您可能會收到類似
InvalidRegionId/NotSupportedEndpoint的錯誤資訊。檢查VPC:某些資源不屬於指定VPC。例如指定的安全性群組ID屬於不同的VPC。
檢查許可權:確保您擁有執行請求所需的許可權。如果您沒有授權,您可能會收到類似
Unauthorized和NoPermission的錯誤資訊。檢查憑證:確保您輸入的憑證正確;如果有多個賬戶,確保您使用的是正確賬戶的憑證。如果提供的憑證不正確,您可能會收到類似
AuthFailure/Invalid/not belong to you的錯誤資訊。流量控制:為保障服務的穩定,Elastic Compute Service開啟了API訪問的流量控制。如果請求被節流,您可能會收到類似
request throttling錯誤資訊。請在請求頻率之間增加時間間隔。更多資訊,請參見流量控制。配額限制:資源項超過配額限制。您可能會收到類似
QuotaExceed錯誤資訊。請確認資源是否已經超過配額限制。更多資訊,請參見ECS配額限制。ECS被安全鎖定:ECS執行個體因存在安全違規內容被鎖定。您可能會收到類似
InstanceLockedForSecurity錯誤資訊。更多資訊,請參見ECS被安全鎖定對API調用的影響。考慮一致性,避免多次重試:請求逾時或伺服器內部錯誤,用戶端可能會嘗試重發請求。更多資訊,請參見如何保證等冪性。
排查思路
第一步:通過錯誤Code和Message判斷
錯誤響應中通常包含錯誤碼(Code)和錯誤資訊(Message),以便初步判斷錯誤原因。
查看返回的錯誤碼及錯誤資訊。
檢查請求中包含的參數,確認其正確性(包括但不限於地區ID、執行個體ID、資源類型、取值範圍、取實值型別等)。
根據錯誤碼定位問題
InvalidParameter:說明參數無效。
InvalidHostName.Malformed:說明指定的參數 HostName不合法。
InvalidInstanceName.Malformed:說明InstanceName參數不符合規則。
根據錯誤訊息定位問題
The specified InstanceId does not exist:說明傳入的InstanceId不存在。
The specified RegionId does not exist:說明傳入的地區ID不存在。
第二步:查閱API介面文檔的錯誤碼指引
在不確定錯誤原因時,可根據對應ECS API文檔進行更詳細的參數配置和檢查。
查閱對應ECS API介面文檔,搜尋對應的錯誤碼。公用錯誤碼清單請參考ECS公用錯誤碼。
根據文檔中提供的可能原因和解決方案進行調整。
第三步:使用OpenAPI門戶-問題診斷進行定位
如果經過之前步驟後問題仍未能解決或是複雜問題,可使用OpenAPI問題診斷工具。
訪問錯誤診斷頁面:問題診斷
輸入錯誤資訊,使用其提供的診斷資訊,協助您進一步識別問題根源。
根據診斷方案和日誌資訊採取相應措施。
