Inhalt

AzureSimpleREST Module

Obwohl Microsoft einen tollen Job mit ihrem AzureRM Modul macht, gibt es immer wieder Gründe diese cmdlets nicht zu nutzen. In den meisten Fällen weil Sie langsamer sind als direkte Anfragen gegen die Azure REST API sind. In anderen Fällen weil bestimme Funktionalitäten noch nicht implementiert wurden.

In diese Lücke positioniert sich das von mir geschriebene Modul AzureSimpleREST

Das Modul beinhaltet z.B. Funktionen wie “Get-AzSRVMProtectionStatus” die zwar einen offiziell dokumentierten REST Call nutzt, mir aber kein AzureRM cmdlet bekannt ist, dass diese Funktion zu Verfügung stellt. So ist es mittels

Get-AzSRVMByName -SubscriptionId nnnnnnnn -VMName "vmname" | Get-AzSRVMProtectionStatus

möglich zu prüfen ob eine bestimmte virtuelle Maschine mittels Azure Backup gesichert wird.
Wie ich auf diese REST Methode gekommen bin, habe ich in einem anderen Blogeintrag beschrieben.

Warum ein eigenes Modul

Für ein eigenes Modul habe ich mich entschieden da es Vieles einfacher macht. So konnte ich z.B. die tolle Funktion Get-AzureRmCachedAccessToken’ von Stéphane Lapointe und Get-SubnetAddress von Dave Wyatt direkt mit einbinden.
Beide haben Ihren Code unter der MIT Lizenz veröffentlicht.

Diese Funktionen erleichtert z.B. den Loginprozess da kein Service Principal benötigt wird. Das Modul nutzt die Login Funktionen des offiziellen AzureRM Moduls. Das macht den Einstieg einfacher.

Installation

Das Modul findet Ihr in der PowerShell Gallery und könnt es mittels Install-Module AzureSimpleREST -Scope Current User einfach installieren.

/azuresimplerest-module/images/InstallAzureSimpleREST.gif

Benutzen

Alle Kommandos beginnen mit der Abkürzung AzSR für Azure Simple REST.
Außerdem gibt es für jedes cmdlet eine Hilfe mit Beispielen.
Viele der cmdlets bauen aufeinander auf und können mittels Pipeline verbunden werden

Subscription Management

Anders als die offiziellen AzureRM cmdlets kennen diese cmdlets alle keinen Subscription Kontext. Die Subscription muss, wenn erforderlich, als ID mit übergeben werden. Solltet Ihr nur mit einer Subscription arbeiten und diese nicht jedes Mal mit angeben wollen könnt Ihr euch mit PSDefaultParameterValues behelfen.

$PSDefaultParameterValues=@{"*-AzSR*:SubscriptionId"="SubscriptionID"}

Der Befehl setzt bei allen cmdlets die den Parameter ‘SubscriptionId’ erwarten, die von euch definierte als Standardwert. Wollt Ihr diesen überschreiben müsst Ihr den Parameter nur angeben.

$PSDefaultParameterValues=@{"*-AzSR*:SubscriptionId"="SubscriptionId#1"}
# Liefert alle VMs der SubscriptionId#1
Get-AzSRVMBySubscription

# Liefert alle VMs der SubscriptionId#2
Get-AzSRVMBySubscription -SubscriptionId SubscriptionId#2

Mitarbeiten

Das komplette Modul ist ebenfalls unter der MIT Lizenz auf GitHub veröffentlicht. Jeder kann also einen Pull Request erstellen und dabei helfen das Modul zu erweitern.

Nächste Schritte

Aktuell bin ich dabei für alle Funktionen Pester Tests zu schreiben. Ziel ist es nur Funktionen aufzunehmen die auch mit einem Pester Test auf Funktion geprüft werden können.
Dazu mehr in einem weiteren Blogeintrag.