16. April 2020 Aleksej Kusnir

PowerShell mit Azure Functions Queue Trigger

Sie nutzen PowerShell Skripte, um IT-Prozesse und Aufgaben in Ihrem Datacenter zu automatisieren?

Sie Nutzen Microsoft Azure und haben dort verschiedene Services, die Sie automatisieren möchten?

Dann werden Sie Azure Functions lieben.

Azure Functions erlaubt es Ihnen PowerShell Skripte aber auch andere Programmiersprachen ohne einen Server in Azure laufen zu lassen.

Microsoft nennt dies "Serverless".

Ich habe in der Praxis einiges an Erfahrung mit Azure Functions gesammelt und möchte dieses Wissen Ihnen hier weitergeben.

Also, viel Spaß beim Durchlesen und ausprobieren.

Lassen Sie uns loslegen!

More...

Was sind Azure Functions?

Azure Functions ist ein Dienst in Azure, der erlaubt das wir PowerShell Skripte ausführen können, ohne dass wir dafür ein System (Windows oder Linux) benötigen.

Dies wird auch Serverless genannt. (Also Serverlose Ausführung)

Denn normalerweise benötigen wir ja zum Ausführen eines PowerShell Skripts z.B. einen Windows Server, auf dem das Skript läuft.

Azure Functions bietet neben der reinen Ausführung eines PowerShell Skripts noch ein Trigger.

Ein Trigger bestimmt wann eine Azure Functions also ein PowerShell Skript ausgeführt werden soll.

Einer dieser Trigger ist der Queue Trigger.

Queue steht für Warteschlange!

Hier ist die Azure Storage Warteschlange, die wir mit Daten füllen können.

Diese Daten können dann in Azure Functions verwendet werden.

Ein Beispiel:

Ich kann Benutzerdaten wie Vorname, Nachname usw. in eine Queue schreiben.

Diese Daten werden dann in der Azure Functions verwendet, um diesen Benutzer dann z.B. in Azure AD anzulegen.

Ok, ich hoffe Sie haben jetzt ein erstes Bild was Azure Functions sind.

Lassen Sie uns ins weiter ins Details einsteigen.

PowerShell VideoKurS

Gratis

Möchten Sie 10 kostenlose Lektionen per E-Mail für die wichtigsten PowerShell Grundlagen erhalten?

Warum PowerShell in Azure Functions?

In den ersten Versionen konnten Sie in Azure Functions nur Skript- bzw. Programmiersprachen wie C#, Python oder JavaScript verwenden.

Viele IT-Fachleute arbeiten aber bereits sehr gerne mit PowerShell und wollten deren existierende Skript auch in Azure Functions nutzen.

Microsoft hat somit ermöglicht das wir auch PowerShell Skripte nun in Azure Functions nutzen können.

Der Vorteil ist, Sie können die PowerShell Skripte mit der PowerShell ISE oder in Visual Studio Code erstellen und diese dann nach Azure Functions kopieren.

So, lass Sie uns nun einmal anschauen wie eine Azure Functions mit einem Queue Trigger den eigentlich funktioniert.

Azure Functions Queue Trigger Übersicht

  1. 1
    Azure Storage Account
  2. 2
    Warteschlange (Queue) mit einem Namen im Storage Account erstellen
  3. 3
    Azure Functions mit einem Queue Trigger erstellen.
  4. 4
    Queue in die Azure Functions angeben die wir vorher erstellt haben in Schritt 2.

Azure Functions Queue Trigger erstellen

Azure Functions Queue Werte übergeben

Sie können in die Queue verschiedene Werte reinschreiben.

Es bietet sich aber an z.B. das JSON Format zu nutzen.

Ein Beispiel für Daten eines Benutzers die wir mit JSON übergeben möchten.

benutzer
[
vorname::"Vorname 01"
name::"Nachname 01"
]

Diese Daten können dann in PowerShell ganz einfach ausgerufen werden.

$benutzer.vorname
$benutzer.nachname

Das ist doch schon mal gut und einfach gemacht.

Ok, lassen Sie mich Ihnen nun einmal ein Skript zeigen das als Azure Functions verwendet werden kann.

Dieses Skript wird eben für die verarbeiten von Queue Daten verwendet.

Azure Functions Queue im PowerShell Skript nutzen

Nehmen wir mal als Beispiel an, das in die Storage Queue die folgenden Daten als JSON Format übergeben werden.

'{"benutzer": [ { "Name": "Test01"}]}'

Dann können wir diese Daten im PowerShell Skript abfragen und damit arbeiten.

# $QueueItem beinhaltet die Daten im JSON Format

param($QueueItem, $TriggerMetadata)

# Wir konvertieren diese Daten aus dem JSON Format in ein PowerShell Objekt

$parsedData = $QueueItem | ConvertFrom-Json

# Wir können nun die einzelnen Eigenschaften dieses Objekts ansprechen die vorher im JSON übergeben wurden.

$parsedData.benutzer.Name

Ok, lassen Sie mich Ihnen ein Beispiel zeigen wie Azure Functions in der Praxis eingesetzt werden kann.

Beispiel: Azure Functions für die Anlage eines Azure AD Benutzer aus einem Self-Service Portal

Die ist ein Beispiel wie Sie ein neuer Mitarbeiter über ein Self Service Portal in Azure AD und Office 365 erstellen können.

  1. 1
    Das Self Service Portal schickt ein Storage Queue an Azure mit den Eingabedaten.
  2. 2
    Diese werden dann in Azure durch die Azure Functions verarbeitet und ein neuer Benutzer im Azure AD wird erstellt.
  3. 3
    Danach wird noch eine Info an die IT oder den Abteilungsleiter gesendet.

PS: Sie können natürlich das gleiche für andere Aufgaben nutzen. Dies ist nur ein Beispiel für Azure AD.

So, ich hoffe ich konnte Ihnen einen kleinen Überblick in Azure Functions von Microsoft geben.

Nehmen Sie sich eine bisschen Zeit und überlegen Sie, wie Sie Azure Functions in Ihren Unternehmen effizient einsetzen können, um z.B. bestehende Prozesse zu verbessern.

Was benötigen Sie, um Azure Functions mit PowerShell nutzen zu können?

  1. 1
    Ein Microsoft Azure Tenant
  2. 2
    Eine Azure Functions die Sie in Azure erstellen.
  3. 3
    PowerShell Know-How, um eine Azure Functions mit PowerShell zu erstellen.

Wo können Sie die wichtigsten PowerShell Techniken lernen?

Ich habe für Sie drei Anlaufstellen, die Sie sich genauer anschauen können.

Wenn Sie sofort mit PowerShell durchstarten möchten dann schauen Sie sich unseren Premium Kurs zu PowerShell an.

PowerShell Premium Online Kurs

  • 7 Stunden Video Content mit Beispielen
  • Strukturiert mit dem wichtigsten Wissen zu PowerShell
  • ++ 60 Minuten Live Online Schulung über ein Videokonferenz Tool (Hier können Sie Ihre Fragen direkt an mich richten und wir klären diese zusammen)

Fazit

In diesem Blogpost haben Sie gelernt wie Azure Functions die Anwendung von Skripten revolutioniert.

Sie wissen nun was Azure Functions sind und wo Sie Azure Functions anwenden können.

Ich wünsche Ihnen viel Erfolg.

Aleksej Kusnir