批次查詢
Azure 監視器 Log Analytics API 支援批次處理查詢。 批次查詢目前需要 Microsoft Entra 驗證。
要求格式
若要批次處理查詢,請使用 API 端點,並在 URL 結尾新增 $batch:https://api.loganalytics.azure.com/v1/$batch
。
如果未包含任何方法,則批次處理會預設為 GET 方法。 在 GET 要求上,API 會忽略要求物件的 body 參數。
批次要求包含其他作業的一般標頭:
Content-Type: application/json
Authorization: Bearer <user token>
要求的本文是包含下列屬性的物件陣列:
- id
- 標題
- 本文
- method
- path
- 工作區
範例:
POST https://api.loganalytics.azure.com/v1/$batch
Content-Type: application/json
Authorization: Bearer <user token>
Cache-Control: no-cache
{
"requests":
[
{
"id": "1",
"headers": {
"Content-Type": "application/json"
},
"body": {
"query": "AzureActivity | summarize count()",
"timespan": "PT1H"
},
"method": "POST",
"path": "/query",
"workspace": "workspace-1"
},
{
"id": "2",
"headers": {
"Content-Type": "application/json"
},
"body": {
"query": "ApplicationInsights | limit 10",
"timespan": "PT1H"
},
"method": "POST",
"path": "/fakePath",
"workspace": "workspace-2"
}
]
}
回應格式
回應格式是物件的類似陣列。 每個物件包含:
- 識別碼
- 特定查詢的 HTTP 狀態碼
- 該查詢所傳回回應的本文。
如果查詢未成功傳回,回應本文會包含錯誤訊息。 錯誤訊息只適用於批次中的個別查詢;批次本身會傳回的狀態碼會與其成員傳回的值無關。 批次會成功傳回,前提是批次:
- 語式正確且正確格式化
- 已驗證
- 已授權。即使批次的成員查詢結果可能混合成功和失敗,批次仍會傳回成功。
範例
{
"responses":
[
{
"id": "2",
"status": 404,
"body": {
"error": {
"message": "The requested path does not exist",
"code": "PathNotFoundError"
}
}
},
{
"id": "1",
"status": 200,
"body": {
"tables": [
{
"name": "PrimaryResult",
"columns": [
{
"name": "Count",
"type": "long"
}
],
"rows": [
[
7240
]
]
}
]
}
}
]
}
行為和錯誤
傳回物件內的回應順序與要求中的順序無關。 這是由每個個別查詢完成所需的時間決定。 使用識別碼將查詢回應物件與原始要求對應。 請勿假設查詢回應會依序排列。
只有在下列條件成立時,整個批次要求才會失敗:
- 外部承載的 JSON 格式無效。
- 驗證失敗:使用者未提供驗證權杖,或權杖無效。
- 批次中的個別要求物件沒有必要的屬性,或有重複的識別碼。
在這些情況下,回應的形狀會與一般容器不同。 批次物件內包含的物件可能會各自失敗或成功。 如需範例,請參閱下方內容。
範例錯誤
此清單是可能的錯誤及其意義範例的非詳盡清單。
- 400 - 要求格式錯誤。 外部要求物件不是有效的 JSON。
{
"error": {
"message": "The request had some invalid properties",
"code": "BadArgumentError",
"innererror": {
"code": "QueryValidationError",
"message": "Failed parsing the query",
"details": [
{
"code": "InvalidJsonBody",
"message": "Unexpected end of JSON input",
"target": null
}
]
}
}
}
- 403 - 禁止。 提供的權杖無法存取您嘗試存取的資源。 請確定您的權杖要求具有正確的資源,而且您已獲授與 Microsoft Entra 應用程式的權限。
{
"error": {
"message": "The provided authentication is not valid for this resource",
"code": "InvalidTokenError",
"innererror": {
"code": "SignatureVerificationFailed",
"message": "Could not validate the request"
}
}
}
- 204 - 未放置。 您沒有可讓 API 提取至備份存放區的任何資料。 就 2xx,這嚴格來說是成功的要求。 不過,在批次中,記下錯誤很有用。
{
"responses": [
{
"id": "2",
"status": 204,
"body": {
"error": {
"code": "WorkspaceNotPlacedError"
}
}
}
]
}
- 404 - 找不到。 查詢路徑不存在。 如果您在個別要求中指定無效的 HTTP 方法,則也會在批次中發生此錯誤。
{
"responses": [
{
"id": "1",
"status": 404,
"body": {
"error": {
"message": "The requested path does not exist",
"code": "PathNotFoundError"
}
}
}
]
}
- 400 - 無法解析資源。 代表工作區的 GUID 不正確。
{
"responses": [
{
"id": "1",
"status": 400,
"body": {
"error": {
"code": "FailedToResolveResource",
"message": "Resource identity could not be resovled"
}
}
}
]
}
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應