AzPseudoGUI – łatwiejsza praca z commandletami Az
trochę GUI dla commandline’a
pracując z linii poleceń braqje możliwości szybkiej weryfikacji nazw i list. ponieważ nie ma GUI, co chwile trzeba listować obiekty, wybierać odpowiednie właściwości (properites) i dopiero w ten sposób wykorzystać nazwę dalej. jest to denerwujące zwłaszcza w połowie pisania jakiegoś długiego oneliner’a i nagle 'o rety, ale jak była nazwa tej resorsgrupy?’ … i ctrl+c, listing wszystkich Resource Group i dopiero od nowa pisanie komendy…
żeby sobie ułatwić życie, oraz pisanie prostych skryptów, przydatny jest moduł AzPseugdoGUI, który obudowuje popularne funkcje Az i dodaje do niech out-gridView. w ten sposób, bez konieczności pamiętania nazw, często dość długich i pokrętnych można np.:
$ctx=select-subscription
co pozwoli wybrać konkretną subskrypcję i zwróci obecny kontext pracy, który można potem wykorzystać.
jak szybko wybrać maszynę wirtualną? po prostu
$vm=select-VM
za dużo maszyn w subskrypcji ale pamiętasz o którą resource group chodzi?
$vm=select-RG -isCritical | select-VM
ułatwia życie i nie trzeba ciągle sięgać do Azure Portal czy listować w kółko… moduł można łatwo zainstalować
install-module AzPseudoGUI
nowy destroy-AzureVM
wykorzystując ten moduł, poprawiłem destroy-AzureVM – który teraz również wykrywa backup maszyny i pozwala wybrać które zasoby mają zostać usunięte a które nie.
przy okazji ciekawostka:
- W Azure (niemal) wszystko jest zasobem (resource) a dowolny zasób można usunąć uniwersalną funkcją 'remove-AzResource’.
to bardzo wygodnie i nawet złożone konstrukty takie, jak VM można potencjalnie usunąć jedną komendą… niestety zasobem (resource) nie jest kontener Storage Account. ale i tak można zoptymalizować skrypt, tworząc tabelę URI zasobów i wrzucając je do niszczarki:
foreach($resource in $resourcesForDeletion) { write-log "removing $resource" -type info $resourceSplited=$resource.split('/') try{ remove-AzResource -ResourceID $resource -force write-log "$($resourceSplited[-2]): $($resourceSplited[-1]) removed." -type ok } catch { write-log "error removing $($resourceSplited[-2]): $($resourceSplited[-1])." -type error write-log $_.exception -type error } }