Uso de la instrucción Let
Las instrucciones Let enlazan nombres a expresiones. Para el resto del ámbito en el que aparece la instrucción Let, el nombre hace referencia a su valor enlazado. Las instrucciones Let mejoran la modularidad y la reutilización, ya que permiten dividir una expresión potencialmente compleja en varias partes. Cada elemento está enlazado a un nombre a través de la instrucción Let y juntos constituyen un todo. Las instrucciones Let permiten crear vistas y funciones definidas por el usuario. Las vistas son expresiones cuyos resultados se parecen a una nueva tabla.
Declaración y reutilización de variables
Las instrucciones Let permiten crear variables para que se usen en instrucciones posteriores. En este ejemplo, timeOffSet y discardEventId se crean y usan como parte de la cláusula "where" de SecurityEvent.
let timeOffset = 7d;
let discardEventId = 4688;
SecurityEvent
| where TimeGenerated > ago(timeOffset*2) and TimeGenerated < ago(timeOffset)
| where EventID != discardEventId
Sugerencia
"ago()" es una función que adoptará la fecha y hora actuales y restará el valor proporcionado.
Declaración de tablas o listas dinámicas
Las instrucciones Let permiten crear tablas o listas dinámicas.
let suspiciousAccounts = datatable(account: string) [
@"\administrator",
@"NT AUTHORITY\SYSTEM"
];
SecurityEvent | where Account in (suspiciousAccounts)
let LowActivityAccounts =
SecurityEvent
| summarize cnt = count() by Account
| where cnt < 1000;
LowActivityAccounts | where Account contains "SQL"