Kötegelt lekérdezések
Az Azure Monitor Log Analytics API támogatja a lekérdezések kötegelését. A Batch-lekérdezésekhez jelenleg Microsoft Entra-hitelesítés szükséges.
Kérelem formátuma
A lekérdezések kötegeléséhez használja az API-végpontot, és adjon hozzá $batch az URL-cím végén: https://api.loganalytics.azure.com/v1/$batch
.
Ha nem tartalmaz metódust, a get metódusra történő kötegelés alapértelmezés szerint történik. GET-kérelmek esetén az API figyelmen kívül hagyja a kérelemobjektum törzsparaméterét.
A kötegkérelem más műveletek szokásos fejléceit is tartalmazza:
Content-Type: application/json
Authorization: Bearer <user token>
A kérelem törzse az alábbi tulajdonságokat tartalmazó objektumok tömbje:
id
headers
body
method
path
workspace
Példa:
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"
}
]
}
Válaszformátum
A válaszformátum objektumok hasonló tömbje. Minden objektum a következőket tartalmazza:
- Az azonosító
- Az adott lekérdezés HTTP-állapotkódja
- A lekérdezés visszaadott válaszának törzse.
Ha egy lekérdezés nem ad vissza sikeresen, a válasz törzse hibaüzeneteket tartalmaz. A hibaüzenetek csak a köteg egyes lekérdezéseire vonatkoznak; maga a köteg a tagok visszatérési értékétől független állapotkódot ad vissza. A köteg sikeres visszaadása, ha a köteg a következő:
- Jól formázott és megfelelően formázott
- Hitelesített
- Engedélyezett
A köteg akkor is sikeresen visszatér, ha a tag-lekérdezések eredményei a sikerek és a hibák keverékei lehetnek.
Példa:
{
"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
]
]
}
]
}
}
]
}
Viselkedés és hibák
A visszaadott objektumon belüli válaszok sorrendje nem kapcsolódik a kérésben szereplő sorrendhez. Az egyes lekérdezések befejezéséhez szükséges idő. Azonosítók használatával képezheti le a lekérdezési válaszobjektumokat az eredeti kérésekhez. Ne feltételezze, hogy a lekérdezési válaszok rendben vannak.
Egy teljes kötegkérés csak akkor meghiúsul, ha:
- A külső hasznos adat JSON-formátuma érvénytelen.
- A hitelesítés sikertelen: A felhasználó nem ad meg hitelesítési jogkivonatot, vagy érvénytelen a jogkivonat.
- A köteg egyes kérelemobjektumai nem rendelkeznek a szükséges tulajdonságokkal, vagy ismétlődő azonosítók találhatók.
Ilyen körülmények között a válasz alakja eltér a normál tárolótól. A kötegobjektumban található objektumok egymástól függetlenül sikertelenek vagy sikeresek lehetnek, lásd az alábbi példahibákat.
Példahibák
Ez a lista a lehetséges hibákra és azok jelentésére vonatkozó példák nem kimerítő listája.
400 – Hibásan formázott kérelem. A külső kérelemobjektum érvénytelen JSON-objektum volt.
{ "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 - Tiltott. A megadott jogkivonat nem rendelkezik hozzáféréssel a elérni kívánt erőforráshoz. Győződjön meg arról, hogy a jogkivonat-kérelem rendelkezik a megfelelő erőforrásokkal, és ön adott engedélyeket a Microsoft Entra-alkalmazáshoz.
{ "error": { "message": "The provided authentication is not valid for this resource", "code": "InvalidTokenError", "innererror": { "code": "SignatureVerificationFailed", "message": "Could not validate the request" } } }
204 - Nincs elhelyezve. Nincs adata az API-nak a háttértárban való lekéréséhez. 2xx hibaként ez gyakorlatilag egy sikeres kérés. A kötegekben azonban hasznos megjegyezni a hibát.
{ "responses": [ { "id": "2", "status": 204, "body": { "error": { "code": "WorkspaceNotPlacedError" } } } ] }
404 – Nem található. A lekérdezési útvonal nem létezik. Ez a hiba akkor is előfordulhat egy kötegben, ha érvénytelen HTTP-metódust ad meg az egyes kérésekben.
{ "responses": [ { "id": "1", "status": 404, "body": { "error": { "message": "The requested path does not exist", "code": "PathNotFoundError" } } } ] }
400 – Nem sikerült feloldani az erőforrást. A munkaterületet képviselő GUID helytelen.
{ "responses": [ { "id": "1", "status": 400, "body": { "error": { "code": "FailedToResolveResource", "message": "Resource identity could not be resovled" } } } ] }