Sdílet prostřednictvím


Funkce v dotazech protokolu služby Azure Monitor

Funkce je dotaz protokolu ve službě Azure Monitor, který se dá použít v jiných dotazech protokolu, jako by to byl příkaz. Funkce můžete použít k poskytování řešení různým zákazníkům a také k opakovanému použití logiky dotazů ve vašem vlastním prostředí. Tento článek popisuje, jak používat funkce a jak vytvořit vlastní.

Požadována oprávnění

Akce Požadována oprávnění
Zobrazení nebo použití funkcí Microsoft.OperationalInsights/workspaces/query/*/read oprávnění k pracovnímu prostoru služby Log Analytics, která poskytuje například integrovaná role Čtenář Log Analytics.
Vytváření nebo úpravy funkcí microsoft.operationalinsights/workspaces/savedSearches/write oprávnění k pracovnímu prostoru služby Log Analytics, která poskytuje například předdefinovaná role Přispěvatel Log Analytics.

Typy funkcí

Ve službě Azure Monitor existují dva typy funkcí:

  • Funkce řešení: Předem připravené funkce jsou součástí služby Azure Monitor. Tyto funkce jsou dostupné ve všech pracovních prostorech služby Log Analytics a nedají se upravovat.

  • Funkce pracovního prostoru: Tyto funkce se instalují do konkrétního pracovního prostoru služby Log Analytics. Mohou být upraveny a řízeny uživatelem.

Zobrazit funkce

Funkce řešení a funkce pracovního prostoru můžete zobrazit v aktuálním pracovním prostoru na kartě Funkce v levém podokně pracovního prostoru služby Log Analytics. Pomocí filtru můžete filtrovat funkce zahrnuté v seznamu. Pomocí funkce Seskupit podle změňte jejich seskupení. Zadáním řetězce do vyhledávacího pole vyhledejte konkrétní funkci. Najeďte myší na funkci, abyste zobrazili podrobnosti, včetně popisu a parametrů.

Snímek obrazovky znázorňující zobrazení funkce

Použití funkce

Funkci v dotazu použijte tak, že zadáte její název s hodnotami pro všechny parametry stejné, jako byste zadali v příkazu. Výstup funkce může být vrácen buď jako výsledky, nebo se předá do jiného příkazu.

Přidejte do aktuálního dotazu funkci tak, že dvakrát kliknete na jeho název nebo na něj najedete myší a vyberete Možnost Použít v editoru. Funkce v pracovním prostoru se při psaní dotazu také zahrnou do technologie IntelliSense.

Pokud dotaz vyžaduje parametry, zadejte je pomocí syntaxe function_name(param1,param2,...).

Snímek obrazovky znázorňující použití funkce

Vytvoření funkce

Pokud chcete vytvořit funkci z aktuálního dotazu v editoru, vyberte Uložit>jako funkci.

Snímek obrazovky znázorňující vytvoření funkce

Vytvořte funkci s Log Analytics na webu Azure Portal tak, že vyberete Uložit a pak poskytnete informace v následující tabulce:

Nastavení Popis
Název funkce Název funkce. Název nesmí obsahovat mezeru ani žádné speciální znaky. Také nemusí začínat podtržítkem (_), protože tento znak je vyhrazený pro funkce řešení.
Starší kategorie Uživatelsky definovaná kategorie, která pomáhá filtrovat a seskupovat funkce.
Uložit jako skupinu počítačů Uložte dotaz jako skupinu počítačů.
Parametry Přidejte parametr pro každou proměnnou ve funkci, která při použití vyžaduje hodnotu. Další informace naleznete v tématu Parametry funkce.

Snímek obrazovky znázorňující podrobnosti funkce

Parametry funkce

Do funkce můžete přidat parametry, abyste mohli při volání zadat hodnoty pro určité proměnné. V důsledku toho lze stejnou funkci použít v různých dotazech, přičemž každá z nich poskytuje různé hodnoty parametrů. Parametry jsou definovány následujícími vlastnostmi:

Nastavení Popis
Typ Datový typ pro hodnotu.
Název Název parametru Tento název se musí v dotazu použít k nahrazení hodnotou parametru.
Default value Hodnota, která se má použít pro parametr, pokud není zadaná hodnota.

Parametry jsou seřazené při jejich vytváření. Parametry, které nemají výchozí hodnotu, jsou umístěny před parametry, které mají výchozí hodnotu.

Práce s kódem funkce

Kód funkce můžete zobrazit a získat tak přehled o tom, jak funguje, nebo upravit kód funkce pracovního prostoru. Vyberte Načíst kód funkce a přidejte kód funkce do aktuálního dotazu v editoru.

Pokud přidáte kód funkce do prázdného dotazu nebo do prvního řádku existujícího dotazu, název funkce se přidá na kartu. Funkce pracovního prostoru umožňuje upravit podrobnosti funkce.

Snímek obrazovky znázorňující načítání kódu funkce

Úprava funkce

Upravte vlastnosti nebo kód funkce vytvořením nového dotazu. Najeďte myší na název funkce a vyberte Načíst kód funkce. Proveďte všechny změny, které chcete kód upravit, a vyberte Uložit. Pak vyberte Upravit podrobnosti funkce. Proveďte všechny změny vlastností a parametrů funkce a vyberte Uložit.

Snímek obrazovky znázorňující úpravy funkce

Příklad

Následující ukázková funkce vrátí všechny události v protokolu aktivit Azure od konkrétního data a odpovídají určité kategorii.

Začněte následujícím dotazem pomocí pevně zakódovaných hodnot a ověřte, že dotaz funguje podle očekávání.

AzureActivity
| where CategoryValue == "Administrative"
| where TimeGenerated > todatetime("2021/04/05 5:40:01.032 PM")

Snímek obrazovky znázorňující počáteční dotaz

Dále nahraďte pevně zakódované hodnoty názvy parametrů. Potom funkci uložte výběrem možnosti Uložit>jako funkci.

AzureActivity
| where CategoryValue == CategoryParam
| where TimeGenerated > DateParam

Snímek obrazovky znázorňující uložení funkce

Zadejte následující hodnoty vlastností funkce:

Vlastnost Hodnota
Název funkce AzureActivityByCategory
Starší kategorie Ukázkové funkce

Před uložením funkce definujte následující parametry:

Typ Název Výchozí hodnota
string CategoryParam "Správa"
datetime DateParam

Snímek obrazovky znázorňující vlastnosti funkce

Vytvořte nový dotaz a zobrazte novou funkci tak, že na ni najedete myší. Podívejte se na pořadí parametrů. Při použití funkce je nutné je zadat v tomto pořadí.

Snímek obrazovky znázorňující podrobnosti

Výběrem možnosti Použít v editoru přidáte novou funkci do dotazu. Pak přidejte hodnoty parametrů. Nemusíte zadávat hodnotu CategoryParam , protože má výchozí hodnotu.

Snímek obrazovky znázorňující přidání hodnot pro parametry

Další kroky

Další informace o zápisu dotazů na protokoly služby Azure Monitor najdete v tématu Operace řetězců.