全部產品
Search
文件中心

Elastic Compute Service:API錯誤碼排查思路

更新時間:Jan 16, 2025

在使用阿里雲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調用報錯問題:

  1. 指定地區:指定資源所在地區拼字錯誤或者Endpoint錯誤。您可能會收到類似InvalidRegionId/NotSupportedEndpoint的錯誤資訊。

  2. 檢查VPC:某些資源不屬於指定VPC。例如指定的安全性群組ID屬於不同的VPC。

  3. 檢查許可權:確保您擁有執行請求所需的許可權。如果您沒有授權,您可能會收到類似UnauthorizedNoPermission的錯誤資訊。

  4. 檢查憑證:確保您輸入的憑證正確;如果有多個賬戶,確保您使用的是正確賬戶的憑證。如果提供的憑證不正確,您可能會收到類似AuthFailure/Invalid/not belong to you的錯誤資訊。

  5. 流量控制:為保障服務的穩定,Elastic Compute Service開啟了API訪問的流量控制。如果請求被節流,您可能會收到類似request throttling錯誤資訊。請在請求頻率之間增加時間間隔。更多資訊,請參見流量控制

  6. 配額限制:資源項超過配額限制。您可能會收到類似QuotaExceed錯誤資訊。請確認資源是否已經超過配額限制。更多資訊,請參見ECS配額限制

  7. ECS被安全鎖定:ECS執行個體因存在安全違規內容被鎖定。您可能會收到類似InstanceLockedForSecurity錯誤資訊。更多資訊,請參見ECS被安全鎖定對API調用的影響

  8. 考慮一致性,避免多次重試:請求逾時或伺服器內部錯誤,用戶端可能會嘗試重發請求。更多資訊,請參見如何保證等冪性

排查思路

第一步:通過錯誤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文檔進行更詳細的參數配置和檢查。

  1. 查閱對應ECS API介面文檔,搜尋對應的錯誤碼。公用錯誤碼清單請參考ECS公用錯誤碼

  2. 根據文檔中提供的可能原因和解決方案進行調整。

第三步:使用OpenAPI門戶-問題診斷進行定位

如果經過之前步驟後問題仍未能解決或是複雜問題,可使用OpenAPI問題診斷工具。image

  • 訪問錯誤診斷頁面:問題診斷

  • 輸入錯誤資訊,使用其提供的診斷資訊,協助您進一步識別問題根源。

  • 根據診斷方案和日誌資訊採取相應措施。

    image