問題描述
在APIM中,通過門戶上的 Test 功能,可以非常容易的檢視請求的Trace資訊,幫助除錯 API 對各種Policy,在Inbound,Backend, Outbound部分的耗時問題,對其進行錯誤訊息的排查。
但是,當呼叫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檔案:
附錄一:如何從APIM門戶中獲取到 Ocp-Apim-Subscription-Key
登入Azure APIM門戶 --> 進入左側 Subscriptions目錄,在Subscriptions 列表中選擇與當前使用API對應的Subscription Key
參考資料
教程:使用請求跟蹤除錯 API:https://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