Lekérdezési paraméterek deklarációs utasítása
A Kusto-nak küldött lekérdezések tartalmazhatnak név- vagy értékpárokat. A párokat lekérdezési paramétereknek nevezzük, a lekérdezés szövegével együtt. A lekérdezés nevek és típus megadásával hivatkozhat egy vagy több értékre a lekérdezési paraméterek deklarációs utasításában.
A lekérdezési paramétereknek két fő felhasználási módja van:
- Az injektálási támadások elleni védelmi mechanizmusként.
- Lekérdezések paraméterezésének módjaként.
Különösen azok az ügyfélalkalmazások, amelyek a felhasználó által megadott bemeneteket kombinálják a Kusto-nak küldött lekérdezésekben, a mechanizmust kell használniuk az SQL-injektálási támadások Kusto-megfelelője elleni védelemhez.
Lekérdezési paraméterek deklarálása
A lekérdezési paraméterekre való hivatkozáshoz a lekérdezés szövegének vagy függvényeinek először deklarálniuk kell, hogy melyik lekérdezési paramétert használja. A deklaráció minden paraméterhez megadja a nevet és a skaláris típust. Opcionálisan a paraméter alapértelmezett értékkel is rendelkezhet. Az alapértelmezett érték akkor használatos, ha a kérés nem ad meg konkrét értéket a paraméterhez. A Kusto ezután elemzi a lekérdezési paraméter értékét az adott típushoz tartozó szokásos elemzési szabályok szerint.
Syntax
declare
query_parameters
(
Név1:
Type1 [=
DefaultValue1] [,
...] );
További információ a szintaxis konvenciókról.
Paraméterek
Név | Típus | Kötelező | Leírás |
---|---|---|---|
Név1 | string |
✔️ | A lekérdezésben használt lekérdezési paraméter neve. |
Típus1 | string |
✔️ | A megfelelő típus, például string vagy datetime . A felhasználó által megadott értékek sztringekként vannak kódolva. A megfelelő elemzési metódust alkalmazza a rendszer a lekérdezési paraméterre egy erős típusú érték lekéréséhez. |
DefaultValue1 | string |
A paraméter alapértelmezett értéke. Ennek az értéknek a megfelelő skaláris típusú literálnak kell lennie. |
Megjegyzés
- A felhasználó által definiált függvényekhez hasonlóan a típusú
dynamic
lekérdezési paramétereknek nem lehetnek alapértelmezett értékei. - A táblázatos utasítások összefűzhetők vagy pontosvesszővel elválaszthatók, ellenkező esetben nem lesznek ugyanannak a lekérdezésnek a részei.
Példa
declare query_parameters(maxInjured:long = 90);
StormEvents
| where InjuriesDirect + InjuriesIndirect > maxInjured
| project EpisodeId, EventType, totalInjuries = InjuriesDirect + InjuriesIndirect
Kimenet
EpisodeId | EventType | totalInjuries |
---|---|---|
12459 | Téli időjárás | 137 |
10477 | Túlzott hő | 200 |
10391 | Hő | 187 |
10217 | Túlzott hő | 422 |
10217 | Túlzott hő | 519 |
Lekérdezési paraméterek megadása ügyfélalkalmazásban
A lekérdezési paraméterek neveit és értékeit a lekérdezést végző alkalmazás adja meg értékként string
. A név nem ismétlődhet.
Az értékek értelmezése a lekérdezési paraméterek deklarációs utasítása alapján történik. Minden érték úgy lesz elemezve, mintha egy lekérdezés törzsében konstans lenne. Az elemzés a lekérdezési paraméterek deklarációs utasítása által megadott típusnak megfelelően történik.
REST API
A lekérdezési paramétereket az ügyfélalkalmazások a properties
kérelemtörzs JSON-objektumának tárolóhelyén keresztül, egy nevű beágyazott tulajdonságcsomagban Parameters
biztosítják. Íme például a Kustóhoz irányuló REST API-hívás törzse, amely kiszámítja egy felhasználó életkorát, feltehetően azzal, hogy az alkalmazás kéri a felhasználó születésnapját.
{
"ns": null,
"db": "myDB",
"csl": "declare query_parameters(birthday:datetime); print strcat(\"Your age is: \", tostring(now() - birthday))",
"properties": "{\"Options\":{},\"Parameters\":{\"birthday\":\"datetime(1970-05-11)\",\"courses\":\"dynamic(['Java', 'C++'])\"}}"
}
Kusto SDK-k
Ha meg szeretné tudni, hogyan adhatja meg a lekérdezési paraméterek nevét és értékeit a Kusto-ügyfélkódtárak használatakor, olvassa el a Lekérdezési paraméterek használata a felhasználói bemenet védelméhez című témakört.
Kusto.Explorer
A szolgáltatásnak küldött kérések során küldött lekérdezési paraméterek beállításához használja a Lekérdezési paraméterek "csavarkulcs" ikont (ALT
+ P
).
Ez a képesség nem támogatott az Azure Monitorban
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: