檢查分析狀態
URL 會做為 Location
標頭的一部分傳回,以回應對 analyze
API 的要求。 這是透過 HTTP GET
用來查詢分析工作的狀態。 完成分析工作時,回應本文將會包含可藉以下載結果輸出的 URL 或 URL 清單。 持續呼叫此 URI,直到傳回 HTTP 狀態碼 200 為止。 當工作仍在執行時,傳回 HTTP 狀態碼 202,其中 Location
標頭包含 analyze
所傳回的相同 URI。 傳回 200 回應之後,resultFileUris
屬性就會包含輸出 (包含在 zip 檔案中) 的單一下載位置或其下載位置清單。 靜態分析結果交換格式 (SARIF) V2 格式的檔案會包含在此 zip 下載中,這是包含分析結果的 JSON
格式檔案。 回應本文會包含 IssueSummary
物件,其中含有找到的問題計數摘要。
Note
建議在狀態檢查之間等待 15 至 60 秒。 分析通常需要 1 到 5 分鐘的時間來執行。
此 API 需要一個 OAuth 令牌,該令牌必須是啟動分析作業的同一用戶端應用程式的令牌。
表頭
姓名 | 類型 | 預期值 | 是必要的嗎? |
---|---|---|---|
授權 | string | OAuth 具有 Microsoft Entra 應用程式 ID 聲明的 1 個持有者令牌。 | yes |
x-ms-tenant-id | GUID | 應用程式的用戶識別碼。 | 是 |
x-ms-correlation-id | GUID | 分析執行的識別碼。 您應該為整段執行 (上傳、分析、狀態) 提供相同的識別碼 | 是 |
預期回應
HTTP 狀態碼 | 案例 | 結果 |
---|---|---|
200 | 已找到一個或多個結果 | 請參閱以下範例。 將會傳回一個結果。 |
202 | 仍在處理中 | 請參閱以下範例。 將會傳回一個結果。 |
403 | 禁止 | 要求者與要求建立者不相同。 |
404 | 找不到 | 無法透過 URL 中提供的參考找到分析要求。 |
預期回應標頭
姓名 | 類型 | 預期值 | 是必要的嗎? |
---|---|---|---|
地點 | uri | 要在查詢目前狀態時使用,以及要取得結果的 URI | 是 |
預期回應本文
下表概述每個要求的回應結構 (僅限 HTTP 200 或 202 回應)。
屬性 | 類型 | 預期值 | 是必要的嗎? |
---|---|---|---|
privacyPolicy | string | 隱私權原則的 URI。 | 是 |
進度 | int | 範圍介於 0-100 完成百分比的值,其中 10 表示處理完成約 10%。 | 是 |
runCorrelationId | GUID | 包含在每個要求中的要求識別碼。 如有需要,這可用來與此要求相互關聯。 | 是 |
狀態 | string | InProgress 在作業仍在處理時返回。 Failed 在伺服器上處理作業時出現災難性問題時返回。 error 屬性中應該會有更多的詳細資料。 Finished 在作業成功完成且沒有問題時返回。 FinishedWithErrors ,但是,一個或多個規則未能完成且沒有錯誤。 這只是讓您知道報表可能未完成的信號。 Microsoft 在後端意識到這些問題,並將努力診斷和解決問題。 |
是 |
resultFileUris | 字串陣列 | 允許直接下載輸出的 URI 清單。 納入原始分析 API 呼叫的每個檔案都應該各有一個。 | 否。 只有在處理已完成時,才會包含此屬性。 |
issueSummary | IssueSummary | 下方列出的屬性 | 否。 只有在處理已完成時,才會包含此屬性。 |
issueSummary.criticalIssueCount | int | 在結果中發現有重大嚴重性的問題計數 | 是 |
issueSummary.highIssueCount | int | 在結果中發現有高嚴重性的問題計數 | 是 |
issueSummary.mediumIssueCount | int | 在結果中發現有中等嚴重性的問題計數 | 是 |
issueSummary.lowIssueCount | int | 在結果中發現有低嚴重性的問題計數 | 是 |
issueSummary.informationalIssueCount | int | 在結果中發現有告知性嚴重性的問題計數 | 是 |
範例:完成時的狀態檢查
此範例會在結果為完成狀態的情況下發出狀態檢查呼叫。
請求
GET [Geographical URI]/api/status/aaaa0000-bb11-2222-33cc-444444dddddd&api-version=1.0
Accept: application/json
Content-Type: application/json; charset=utf-8
x-ms-correlation-id: aaaa0000-bb11-2222-33cc-444444dddddd
x-ms-tenant-id: aaaabbbb-0000-cccc-1111-dddd2222eeee
回覆
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
{
"privacyPolicy":"https://go.microsoft.com/fwlink/?LinkID=310140",
"progress":100,
"resultFileUris":["https://fakeblob.blob.core.windows.net/report-files/mySolution.zip?sv=2017-11-09&sr=b&sig=xyz&se=2019-06-11T20%3A27%3A59Z&sp=rd"],"runCorrelationId":"aaaa0000-bb11-2222-33cc-444444dddddd","status":"Finished","issueSummary":
{
"informationalIssueCount":0,
"lowIssueCount":0,
"mediumIssueCount":302,
"highIssueCount":30,
"criticalIssueCount":0
}
}