Dávkové dotazy
Rozhraní API služby Azure Monitor Log Analytics podporuje dávkové dotazy společně. Dávkové dotazy v současné době vyžadují ověřování Microsoft Entra.
Formát požadavku
K dávkovému dotazování použijte koncový bod rozhraní API a na konec adresy URL přidejte $batch: https://api.loganalytics.azure.com/v1/$batch
.
Pokud není zahrnuta žádná metoda, dávkování ve výchozím nastavení metody GET. U požadavků GET rozhraní API ignoruje základní parametr objektu požadavku.
Dávkový požadavek zahrnuje běžné hlavičky pro jiné operace:
Content-Type: application/json
Authorization: Bearer <user token>
Tělo požadavku je pole objektů obsahujících následující vlastnosti:
id
headers
body
method
path
workspace
Příklad:
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"
}
]
}
Formát odpovědi
Formát odpovědi je podobné pole objektů. Každý objekt obsahuje:
- The ID
- Stavový kód HTTP konkrétního dotazu
- Tělo vrácené odpovědi pro tento dotaz.
Pokud se dotaz úspěšně nevrátí, text odpovědi obsahuje chybové zprávy. Chybové zprávy se vztahují pouze na jednotlivé dotazy v dávce; samotná dávka vrátí stavový kód nezávislý na návratových hodnotách jejích členů. Dávka se úspěšně vrátí, pokud je dávka:
- Správně formátované a správně formátované
- Ověřeno
- Autorizovaný
Dávka se úspěšně vrátí i v případě, že výsledky dotazů členů můžou být kombinací úspěchů a selhání.
Příklad:
{
"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
]
]
}
]
}
}
]
}
Chování a chyby
Pořadí odpovědí uvnitř vráceného objektu nesouvisí s pořadím v požadavku. Doba, která trvá, určuje dokončení jednotlivých dotazů. Pomocí ID namapujte objekty odpovědi dotazu na původní požadavky. Nepředpokládáme, že odpovědi na dotazy jsou v pořadí.
Celá dávková žádost selže pouze v případě, že:
- Formát JSON vnější datové části není platný.
- Ověřování selže: Uživatel nezadá ověřovací token nebo je neplatný.
- Jednotlivé objekty požadavku v dávce nemají požadované vlastnosti nebo existují duplicitní ID.
Za těchto podmínek se tvar odpovědi liší od normálního kontejneru. Objekty obsažené v dávkovém objektu můžou být neúspěšné nebo úspěšné nezávisle, viz následující ukázkové chyby.
Příklady chyb
Tento seznam je neexhausivní seznam příkladů možných chyb a jejich významů.
400 - Poškozený požadavek. Vnější objekt požadavku nebyl platný 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 - Zakázáno. Zadaný token nemá přístup k prostředku, ke kterém se pokoušíte získat přístup. Ujistěte se, že váš požadavek na token má správný prostředek a že jste udělili oprávnění pro vaši aplikaci 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 - Není umístěn. Nemáte žádná data, která by rozhraní API mohlo načíst do záložního úložiště. Jedná se o technicky úspěšnou žádost jako chybu 2xx. V dávce je ale užitečné si tuto chybu poznamenat.
{ "responses": [ { "id": "2", "status": 204, "body": { "error": { "code": "WorkspaceNotPlacedError" } } } ] }
404 - Nenalezena. Cesta dotazu neexistuje. K této chybě může dojít také v dávce, pokud v individuálním požadavku zadáte neplatnou metodu HTTP.
{ "responses": [ { "id": "1", "status": 404, "body": { "error": { "message": "The requested path does not exist", "code": "PathNotFoundError" } } } ] }
400 – Nepodařilo se přeložit prostředek. Identifikátor GUID představující pracovní prostor je nesprávný.
{ "responses": [ { "id": "1", "status": 400, "body": { "error": { "code": "FailedToResolveResource", "message": "Resource identity could not be resovled" } } } ] }