Kusto Query Language dla Azure Resource Graph: przewodnik dla początkujących
By Mirko Peters ·
Opanuj język zapytań Kusto (KQL) dla Azure Resource Graph. Poznaj prostą składnię, filtry potokowe, operator pipe oraz zapytania do zarządzania środowiskiem chmurowym.
Automatically translated with AI from the original post. Read the English original

Opanowanie języka zapytań Kusto (KQL) w Azure Resource Graph pozwala administratorom chmury pisać przejrzyste, błyskawiczne zapytania, które bez wysiłku ujawniają inwentarz chmury, zagrożenia bezpieczeństwa i zgodność z zasadami zarządzania w wielu subskrypcjach, bez konieczności klikania w portalu.
Najważniejsze wnioski
- Zapytania KQL czyta się jak przepis: znak potoku (|) łączy kolejne etapy przetwarzania danych.
- Domyślna tabela „resources” zawiera większość danych, których potrzebujesz, by jednocześnie wykonywać zapytania w wielu subskrypcjach Azure.
- Operatory project i extend pomagają uporządkować chaotyczne wyniki i wyodrębnić wartości zagnieżdżonych właściwości bez zbędnego kodu.
- Resource Graph domyślnie ogranicza wyniki do 1000 rekordów jako zabezpieczenie, dlatego w dużych środowiskach potrzebne są tokeny stronicowania.
- Umiejętności KQL zdobyte w Azure Resource Graph przenoszą się bezpośrednio do usług Log Analytics i Azure Data Explorer.
Kusto Query Language w Azure Resource Graph bez tajemnic
Gdy po raz pierwszy spotykasz się z językiem Kusto Query Language (KQL), ten skrót może brzmieć onieśmielająco. Jednak po odrzuceniu technicznego żargonu okazuje się, że składnia jest zaskakująco przystępna i przypomina język angielski, a została zaprojektowana tak, by zapytania o infrastrukturę chmurową były intuicyjne. W przeciwieństwie do pisania złożonych aplikacji czy rozbudowanych skryptów KQL koncentruje się wyłącznie na zadawaniu pytań i pobieraniu ustrukturyzowanych danych.
Każde pytanie zadane w Azure Resource Graph opiera się na KQL. Jeśli kiedykolwiek korzystałeś z Azure Data Explorer lub Log Analytics, ta składnia będzie Ci od razu znajoma. Nawet jeśli zaczynasz od zera, krzywa uczenia się jest zaskakująco łagodna. Podstawowy zakres KQL potrzebny do codziennego zarządzania chmurą można poznać podczas jednej sesji.
Budowa zapytania KQL
Zapytanie KQL czyta się jak przepis krok po kroku. Tajemnica tej czytelności tkwi w znaku potoku (|), który oddziela poszczególne instrukcje. Zaczynasz od tabeli bazowej, a następnie przekazujesz ją do kolejnych poleceń, które zawężają, filtrują lub przekształcają wynik.
Przeczytaj zapytanie KQL od góry do dołu, a zabrzmi niemal jak zwykły angielski. Weź pod uwagę najprostsze przydatne zapytanie, jakie możesz napisać:
resources | summarize countPrzeczytane na głos, to polecenie oznacza: weź wszystkie rekordy z domyślnej tabeli resources i policz je. System zwraca jedną, bardzo cenną liczbę, która przedstawia całkowitą skalę Twojego zasobu w chmurze.
Podstawowe operatory dla administratorów chmury
Gdy opanujesz liczenie zasobów, zechcesz filtrować i formatować dane. Kilka podstawowych operatorów wykonuje najcięższą pracę w niemal każdym zapytaniu administracyjnym:
- where: Filtruje zbiór danych według określonych warunków. Na przykład zmiana zapytania na
resources | where type == "Microsoft.Compute/virtualMachines"ogranicza liczbę wyników wyłącznie do maszyn wirtualnych. - project: Wybiera kolumny, które pojawią się w końcowym wyniku, dzięki czemu możesz wyświetlić tylko nazwę zasobu, lokalizację i identyfikator subskrypcji zamiast ogromnej ściany surowego JSON-a.
- order by: Sortuje wyniki alfabetycznie lub liczbowo, zamieniając przypadkowy zrzut danych w uporządkowaną, łatwą do przeglądania tabelę.
- extend: Tworzy tymczasową kolumnę niestandardową, dzięki której możesz wyodrębniać głęboko zagnieżdżone wartości konfiguracji i nadawać im krótkie, wielokrotnego użytku etykiety.
Unikanie typowych pułapek w KQL
KQL jest w pewnym stopniu wyrozumiały, ale ma ścisłe reguły dotyczące wielkości liter. Operator dopasowania bez rozróżniania wielkości liter (zapisywany jako znak równości z tyldą, np. =~) ignoruje wielkość liter podczas wyszukiwania wartości tekstowych, takich jak typy zasobów. Nazwy właściwości działają jednak zupełnie inaczej. Jeśli błędnie zapiszesz nazwę właściwości lub zmienisz wielkość jej liter, KQL nie zgłosi głośnego błędu składni. Zamiast tego po cichu zwróci puste wartości, przez co będziesz szukać błędu, którego w Twojej logice nie ma.
Wykorzystanie tabel wykraczające poza podstawy
Chociaż tabela resources obsługuje zdecydowaną większość codziennych kontroli administracyjnych, do głębszych zadań związanych z zarządzaniem zasobami istnieją wyspecjalizowane tabele. Gdy chcesz zbadać stan zabezpieczeń, przejrzeć przypisania zasad lub sprawdzić kontenery organizacyjne, takie jak grupy zarządzania, subskrypcje i grupy zasobów, możesz kierować zapytania KQL bezpośrednio do tych dedykowanych tabel.
Ponieważ KQL jest standardem obejmującym wiele usług w ekosystemie Microsoft, opanowanie tych wzorców natychmiast zwiększa Twoją wartość zawodową. Zapytania, które napiszesz dziś, aby posprzątać osierocone grupy zabezpieczeń sieci lub wyszukać maszyny wirtualne bez tagów, będą równie przydatne przy tworzeniu alertów bezpieczeństwa w usłudze Microsoft Defender czy budowaniu pulpitów operacyjnych w usłudze Log Analytics.
Podsumowanie i kolejne kroki
Nauka języka Kusto Query Language zmienia Azure Resource Graph z tajemniczego silnika działającego w tle w Twoje ulubione codzienne narzędzie do zarządzania chmurą. Zastępując żmudne klikanie w portalu i kruche skrypty zwięzłymi, czytelnymi zapytaniami, zyskujesz pełną widoczność środowiska obejmującego wiele subskrypcji.
Aby zgłębić temat upraszczania procesów administrowania chmurą, posłuchaj pełnego odcinka, w którym znajdziesz więcej eksperckich wskazówek, praktycznych przykładów i instrukcji dotyczących wykorzystania Azure Resource Graph w Twojej organizacji.
Często zadawane pytania
Czym jest KQL i dlaczego jest używany w Azure Resource Graph?
KQL to skrót od Kusto Query Language. Jest to lekki, intuicyjny język zapytań służący do zadawania pytań o środowisko Azure w usłudze Resource Graph. Pozwala natychmiast filtrować, sortować i grupować tysiące zasobów chmury, korzystając z czytelnej składni z separatorem potoku.
Jak filtrować zasoby według typu za pomocą KQL?
Zasoby możesz filtrować, dodając klauzulę 'where' po początkowej deklaracji tabeli. Na przykład zapis 'resources | where type =~ "microsoft.keyvault/vaults"' zwróci wyłącznie Twoje magazyny kluczy Azure Key Vault.
Dlaczego moje zapytanie KQL zwraca puste wartości zamiast błędu?
Nazwy właściwości w KQL rozróżniają wielkość liter. Jeśli błędnie zapiszesz nazwę właściwości, Azure Resource Graph nie zgłosi błędu składni, lecz po cichu zwróci puste wartości, co utrudnia debugowanie.
Jaki jest limit 1000 rekordów w Azure Resource Graph?
Domyślnie zapytanie w Resource Graph zwraca maksymalnie 1000 rekordów, aby chronić użytkowników przed przypadkowym pobraniem ogromnych zbiorów danych. Ten limit można obejść lub przeglądać stronami za pomocą tokenów kontynuacji, jeśli Twoje środowisko zawiera tysiące zasobów.