當您發送到 Server & Workload Security保護 的請求包含錯誤時,回應將包含您可以用來識別問題的資訊:
- 當您直接使用 API 與 Postman 或 cURL 等軟體進行互動時,您可以透過回應的狀態碼和回應主體中的錯誤訊息來識別錯誤。
- 當您使用 SDK 時,回應會以例外(Python 和 Java)或錯誤(JavaScript)的形式提供給您。例外或錯誤包含來自回應主體的錯誤訊息。
為了更好地排除錯誤響應的故障,您應該了解可能發生的錯誤類型及一些常見原因。
獲取錯誤資訊
當您使用 SDK 時,錯誤訊息會在您捕捉到的例外(Python 和 Java)或錯誤(JavaScript)中提供。執行 GET 請求:列出政策中的範例展示了如何捕捉例外並列印錯誤訊息。以下範例是該部分範例的片段。
# Create a PoliciesApi object policies_api = api.PoliciesApi(api.ApiClient(configuration)) # List policies using version v1 of the API policies_list = policies_api.list_policies(api_version) # View the list of policies return policies_list
對於 Postman 或 cURL,當您收到回應時會顯示錯誤訊息。
驗證錯誤
驗證錯誤會導致回應訊息為
無效的 API 金鑰
。對於 Postman 和 cURL 使用者,此錯誤會與401
狀態碼相關聯。以下情況通常會導致此錯誤:- 用於驗證請求的密鑰輸入錯誤
- 用於驗證請求的 API 金鑰已被刪除
授權錯誤
授權錯誤發生在 API 金鑰不被允許執行某個操作或訪問某個資源時。這些錯誤會導致響應消息的形式為
Not authorized to <action> <resource type>
,例如,Not authorized to delete computers
。對於 Postman 和 cURL 用戶,此錯誤與 403
狀態碼相關聯。以下情況通常會導致此錯誤:- 分配給 API 金鑰的角色沒有資源、操作或兩者的訪問權限。
- API 金鑰已被鎖定。
- API 金鑰已過期。
找不到資源錯誤
當請求對特定資源執行操作而找不到該資源時,會發生資源未找到錯誤。這些錯誤會導致響應訊息的形式為
該<資源>不存在
,例如,該政策不存在
。對於 Postman 和 cURL 用戶,此錯誤與404
狀態碼相關聯。以下情況通常會導致此錯誤:- 用於識別資源的 ID 不正確。
- 資源已被刪除。
錯誤的請求
當請求不符合Server & Workload Security保護預期的格式或語法,或您嘗試執行Server & Workload Security保護不允許的任務時,就會發生錯誤請求錯誤。此訊息特定於導致錯誤的情況,這些情況是多種多樣的:
- 用作參數的物件無效。例如,當創建角色時,提供的
Role
物件沒有設置name
屬性會導致錯誤訊息角色名稱不能為空白
。 - (Postman 或 cURL)缺少必要的標頭,或標頭名稱拼寫錯誤。例如,拼寫錯誤的
api-version
標頭會導致錯誤訊息缺少 'api-version' 請求標頭。請將此標頭設置為支援的 API 版本值
。 - API 版本的值不正確。例如,使用
1
作為 API 版本會導致錯誤訊息Invalid 'api-version' request header. Please make sure this header starts with 'v' followed by a number. E.g. v1
。 - 您嘗試未指派具有相依規則的規則,但Server & Workload Security保護不允許這樣做。例如,嘗試從政策中未指派名為 HTTP 通訊協定解碼的入侵防護規則會導致錯誤訊息
無法移除入侵防護規則 5341,因為規則 8401 依賴於規則 5341
。
對於 Postman 和 cURL 使用者,此錯誤與
400
狀態碼相關。檢查 SDK 相容性
如果您使用的 SDK 與 Server & Workload Security保護 不相容,或是使用較新版本的 SDK 來執行使用舊版本 SDK 開發的腳本,可能會發生錯誤。欲了解詳細資訊,請參閱 SDK 版本相容性 指南。