Используйте оператор let

Завершено

Пусть операторы привязывают имена к выражениям. Для остальной части области, где отображается оператор let, имя ссылается на его привязанное значение. Операторы let улучшают модульность и повторное использование, так как они позволяют разбить потенциально сложное выражение на несколько частей. Каждая часть привязана к имени с помощью инструкции let, и вместе они составляют все. Пусть операторы позволяют создавать определяемые пользователем функции и представления. Представления — это выражения, результаты которых выглядят как новая таблица.

Объявление и повторное использование переменных

Операторы let позволяют создавать переменные, которые будут использоваться в последующих выражениях. В этом примере timeOffSet и discardEventId создаются и используются в предложении where SecurityEvent.

Замечание

Возможно, потребуется увеличить timeOffset и временные диапазоны, чтобы просмотреть результаты в среде демонстрационного сайта Logs. Мы рекомендуем использовать > 30 дней, если вы не видите результаты.

let timeOffset = 7d;
let discardEventId = 4688;
SecurityEvent
| where TimeGenerated > ago(timeOffset*2) and TimeGenerated < ago(timeOffset)
| where EventID != discardEventId

Подсказка

"ago()" — это функция, которая принимает текущую дату и время и вычитает указанное значение.

Объявление динамических таблиц или списков

Операторы "let" позволяют создавать динамические таблицы или списки.

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"