【Azure API 管理】為呼叫APIM的請求啟用Trace -- 除錯APIM Policy的利器

路邊兩盞燈發表於2021-12-29

問題描述

在APIM中,通過門戶上的 Test 功能,可以非常容易的檢視請求的Trace資訊,幫助除錯 API 對各種Policy,在InboundBackend, Outbound部分的耗時問題,對其進行錯誤訊息的排查。

【Azure API 管理】為呼叫APIM的請求啟用Trace -- 除錯APIM Policy的利器

 

 

 

但是,當呼叫APIM 請求遇見錯誤,且不容易通過門戶Test復現,需要在真實的請求中新增Trace,如何實現呢?

 

問題解答

問題的關鍵在於呼叫APIM請求時,Request Header 中必須包含的引數 Ocp-Apim-Trace, 並設定值為True。需要注意的是Ocp-Apim-Trace 需要和 Ocp-Apim-Subscription-Key 配對出現,才能起效。 當請求傳送後,請求從APIM的響應(Response)的Header中會包含 ocp-apim-trace-location,它的值就是該請求的Trace檔案在Stroage Account儲存的URL,下載到本地後即可檢視Trace內容。

Request Header:

Ocp-Apim-Subscription-Key: 【需要替換為您使用APIM的訂閱Key,附錄中介紹如何獲取】
Ocp-Apim-Trace: true

Response Hader:

ocp-apim-apiid: echo-api
ocp-apim-operationid: create-resource
ocp-apim-subscription-key: 1c29xxxxxxxxxxxxxxxxxx14
ocp-apim-subscriptionid: master
ocp-apim-trace-location: https://apimstxxxxxxxxxxxxxxxxxyes.blob.core.chinacloudapi.cn/apiinspectorcontainer/hgtE3oZBC-JQDrgxxxxx

 

動畫展示通過Postman設定 Ocp-Apim-Trace 和獲取Trace檔案:

【Azure API 管理】為呼叫APIM的請求啟用Trace -- 除錯APIM Policy的利器

 

附錄一:如何從APIM門戶中獲取到 Ocp-Apim-Subscription-Key

登入Azure APIM門戶 --> 進入左側 Subscriptions目錄,在Subscriptions 列表中選擇與當前使用API對應的Subscription Key

【Azure API 管理】為呼叫APIM的請求啟用Trace -- 除錯APIM Policy的利器

 

 

 

參考資料

教程:使用請求跟蹤除錯 APIhttps://docs.azure.cn/zh-cn/api-management/api-management-howto-api-inspector

Azure API 管理中的訂閱: https://docs.azure.cn/zh-cn/api-management/api-management-subscriptions

 

相關文章