Megosztás a következőn keresztül:


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"
                    }
                }
            }
        ]
    }