Verwalten von Kosten mit Budgets

Kostenkontrolle ist eine wichtige Komponente zur Maximierung des Nutzens Ihrer Investition in der Cloud. Es gibt mehrere Szenarien, in denen Kostensichtbarkeit, Berichterstellung und kostenbasierte Orchestrierung für fortgesetzte Geschäftsvorgänge entscheidend sind. Zur Unterstützung dieser einzelnen Szenarien stehen die Cost Management-APIs zur Verfügung. Die-APIs bieten Nutzungsdetails, mit deren Hilfe Sie die Kosten präzise auf Instanzebene anzeigen können.

Budgets werden häufig als Teil der Kostenkontrolle verwendet. Budgets können in Azure festgelegt werden. Beispielsweise können Sie Ihre Budgetansicht auf Grundlage von Abonnement, Ressourcengruppen oder einer Sammlung von Ressourcen konzentrieren. Sie können jedoch nicht nur die Budget-API verwenden, um sich per E-Mail benachrichtigen zu lassen, wenn ein Budgetschwellenwert erreicht wird, sondern auch die Azure Monitor-Aktionsgruppen nutzen, um einen orchestrierten Satz von Aktionen auszulösen, der aus einem Budgetereignis resultiert.

In einem häufigen Budgetszenario eines Kunden, der eine nicht kritische Workload ausführt, möchte der Kunde die Verwaltung an einem Budget orientieren und auch die Kosten der monatlichen Rechnung prognostizieren. Dieses Szenario erfordert eine kostenbasierte Orchestrierung von Ressourcen, die Teil der Azure-Umgebung sind. In diesem Szenario wird ein Monatsbudget von 1.000 USD für das Abonnement festgelegt. Außerdem werden Benachrichtigungsschwellenwerte festgelegt, um einige Orchestrierungen auszulösen. Dieses Szenario beginnt mit einem Kostenschwellenwert von 80 %, bei dem alle virtuellen Computer (VM) in der Ressourcengruppe Optional beendet werden. Dann werden bei einem Kostenschwellenwert von 100 % alle VM-Instanzen beendet.

Um dieses Szenario zu konfigurieren, führen Sie die folgenden Aktionen mithilfe der Schritte in den einzelnen Abschnitten dieses Tutorials durch.

Die in diesem Tutorial enthaltenen Aktionen ermöglichen Ihnen Folgendes:

  • Erstellen eines Azure Automation-Runbooks, um VMs mithilfe von Webhooks zu beenden.
  • Erstellen einer Azure-Logik-App, die basierend auf dem Budgetschwellenwert ausgelöst wird, und Aufrufen des Runbooks mit den entsprechenden Parametern.
  • Erstellen einer Azure Monitor-Aktionsgruppe, die konfiguriert wird, um bei Erreichen des Budgetschwellenwerts die Azure-Logik-App auszulösen.
  • Erstellen des Budgets mit den gewünschten Schwellenwerten und Verknüpfung mit der Aktionsgruppe.

Erstellen eines Azure Automation-Runbooks

Azure Automation ist ein Dienst, mit dem Sie die meisten Ihrer Ressourcenverwaltungsaufgaben in ein Skript schreiben und diese Aufgaben entweder geplant oder bedarfsgesteuert ausführen können. Im Rahmen dieses Szenarios erstellen Sie ein Azure Automation-Runbook zum Beenden von VMs. Sie verwenden das grafische Runbook Azure V2 VMs beenden aus der Azure Automation Galerie, um dieses Szenario zu erstellen. Wenn Sie dieses Runbook in Ihr Azure-Konto importieren und veröffentlichen, können Sie VMs beenden, wenn ein Budgetschwellenwert erreicht wird.

Erstellen eines Azure Automation-Kontos

  1. Melden Sie sich mit den Anmeldeinformationen Ihres Azure-Kontos beim Azure-Portal an.
  2. Wählen Sie in der linken oberen Ecke von Azure die Schaltfläche Ressource erstellen aus.
  3. Wählen Sie Verwaltungstools>Automatisierung.

    Hinweis

    Falls Sie kein Azure-Konto besitzen, können Sie ein kostenloses Konto erstellen.

  4. Geben Sie Ihre Kontoinformationen ein. Wählen Sie für Ausführendes Azure-Konto erstellen die Option Ja, um automatisch die Einstellungen zu aktivieren, die zum Vereinfachen der Authentifizierung für Azure erforderlich sind.
  5. Wählen Sie nach Abschluss des Vorgangs Erstellen aus, um die Bereitstellung des Automation-Kontos zu starten.

Importieren des „Stop Azure V2 VMs“-Runbooks

Importieren Sie mit einem Azure Automation-Runbook das grafische Runbook Stop Azure V2 VMs aus dem Katalog.

  1. Melden Sie sich mit den Anmeldeinformationen Ihres Azure-Kontos beim Azure-Portal an.
  2. Öffnen Sie Ihr Automation-Konto durch Auswahl von Alle Dienste>Automation-Kontos. Wählen Sie dann Ihr Automation-Konto aus.
  3. Wählen Sie im Abschnitt Prozessautomatisierung die Option Runbookkatalog aus.
  4. Legen Sie für die Katalogquelle den Wert Script Center fest, und wählen Sie OK aus.
  5. Wählen Sie das Katalogelement Stop Azure V2 VMs im Azure-Portal aus.
  6. Wählen Sie Importieren aus, um den Bereich Importieren anzuzeigen, und wählen Sie OK aus. Der Runbookübersichtsbereich wird angezeigt.
  7. Sobald das Runbook den Importvorgang abgeschlossen hat, wählen Sie Bearbeiten, um den grafischen Runbook-Editor und die Veröffentlichungsoption anzuzeigen.
    Screenshot: Grafisches Runbook bearbeiten
  8. Wählen Sie Veröffentlichen aus, um das Runbook zu veröffentlichen, und bestätigen Sie den Vorgang mit Ja. Beim Veröffentlichen eines Runbooks wird die vorhandene veröffentlichte Version durch die Entwurfsversion überschrieben. In diesem Fall ist noch keine veröffentlichte Version vorhanden, da Sie das Runbook gerade erst erstellt haben. Weitere Informationen zum Veröffentlichen eines Runbooks finden Sie unter Mein erstes grafisches Runbook.

Erstellen von Webhooks für das Runbook

Mithilfe des grafischen Runbooks Stop Azure V2 VMs erstellen Sie zwei Webhooks, um das Runbook in Azure Automation über eine einzelne HTTP-Anforderung zu starten. Der erste Webhook ruft das Runbook bei einem Budgetschwellenwert von 80 Prozent mit dem Namen der Ressourcengruppe als Parameter auf und ermöglicht das Beenden der optionalen virtuellen Computer. Dann ruft der zweite Webhook das Runbook (bei 100 Prozent) ohne Parameter auf, wodurch alle verbleibenden VM-Instanzen beendet werden.

  1. Wählen Sie im Azure-Portal auf der Seite Runbooks das Runbook StopAzureV2Vm aus, das den Runbookübersichtsbereich anzeigt.
  2. Wählen Sie oben auf der Seite Webhook aus, um den Bereich Webhook hinzufügen zu öffnen.
  3. Wählen Sie Neuen Webhook erstellen aus, um den Bereich Neuen Webhook erstellen zu öffnen.
  4. Legen Sie als Name des Webhooks Optional fest. Die Eigenschaft Aktiviert muss auf Ja festgelegt sein. Sie müssen den Wert für Gültig bis nicht ändern. Weitere Informationen zu Webhook-Eigenschaften finden Sie unter Details zu einem Webhook.
  5. Wählen Sie neben der URL das Symbol zum Kopieren aus, um die URL des Webhooks zu kopieren.

    Wichtig

    Speichern Sie die URL des Webhooks mit dem Namen Optional an einem sicheren Ort. Sie verwenden die URL später in diesem Tutorial. Nachdem Sie den Webhook erstellt haben, können Sie die URL aus Sicherheitsgründen weder anzeigen noch erneut abrufen.

  6. Wählen Sie OK aus, um den neuen Webhook zu erstellen.
  7. Wählen Sie Parameter und Ausführungseinstellungen konfigurieren aus, um Parameterwerte für das Runbook anzuzeigen.

    Hinweis

    Wenn das Runbook über obligatorische Parameter verfügt, können Sie den Webhook nur erstellen, wenn die entsprechenden Werte bereitgestellt wurden.

  8. Wählen Sie OK aus, um die Webhookparameterwerte zu akzeptieren.
  9. Wählen Sie Erstellen aus, um den Webhook zu erstellen.
  10. Erstellen Sie als Nächstes mit den obigen Schritten einen zweiten Webhook namens Complete.

    Wichtig

    Achten Sie darauf, dass Sie beide Webhook-URLs zur späteren Verwendung in diesem Tutorial speichern. Nachdem Sie den Webhook erstellt haben, können Sie die URL aus Sicherheitsgründen weder anzeigen noch erneut abrufen.

Sie sollten nun über zwei konfigurierte Webhooks verfügen, die jeweils mit den URLs verfügbar sind, die Sie gespeichert haben.

Screenshot: Webhooks

Das Azure Automation-Setup ist nun abgeschlossen. Sie können die Webhooks mit einem einfachen Postman-Test testen, um sicherzustellen, dass sie funktionieren. Als Nächstes müssen Sie die Logik-App für die Orchestrierung erstellen.

Erstellen einer Azure-Logik-App für die Orchestrierung

Logic Apps dient zum Erstellen, Planen und Automatisieren von Prozessen in Form von Workflows, um Apps, Daten, Systeme und Dienste für Unternehmen oder Organisationen zu integrieren. In diesem Szenario macht die Logik-App, die Sie erstellen, ein wenig mehr, als nur den Automatisierungswebhook aufzurufen, den Sie erstellt haben.

Budgets können so eingerichtet werden, dass sie eine Benachrichtigung auslösen, wenn ein angegebener Schwellenwert erreicht wird. Sie können mehrere Schwellenwerte einrichten, bei denen Sie benachrichtigt werden, und die Logik-App zeigt Ihnen die Möglichkeit, basierend auf dem jeweils erreichten Schwellenwert unterschiedliche Aktionen auszuführen. In diesem Beispiel richten Sie ein Szenario ein, in dem Sie eine Reihe von Benachrichtigungen erhalten. Die erste Benachrichtigung erfolgt, wenn 80 Prozent des Budgets erreicht sind, und die zweite Benachrichtigung, wenn 100 Prozent des Budgets erreicht sind. Die Logik-App dient zum Herunterfahren aller virtuellen Computer in der Ressourcengruppe. Zuerst wird der Schwellenwert Optional bei 80% erreicht, und dann wird der zweite Schwellenwert erreicht, bei dem alle virtuellen Computer im Abonnement heruntergefahren werden.

Mit Logik-Apps können Sie ein Beispielschema für den HTTP-Trigger bereitstellen, jedoch müssen Sie den Content-Type-Header festlegen. Da die Aktionsgruppe keine benutzerdefinierten Header für den Webhook aufweist, müssen Sie die Nutzlast in einem separaten Schritt analysieren. Hierfür verwenden Sie die Parse-Aktion mit einer Beispielnutzlast.

Erstellen der Logik-App

Die Logik-App führt mehrere Aktionen aus. Die folgende Liste bietet einen allgemeinen Satz von Aktionen, die die Logik-App ausführt:

  • Erkennen, wenn eine HTTP-Anforderung empfangen wird
  • Analysieren der übergebenen JSON-Daten, um den erreichten Schwellenwert zu bestimmen
  • Überprüfen Sie mit einer Bedingungsanweisung, ob der Schwellenwert von mindestens 80% des Budgets erreicht wurde, aber nicht 100% oder mehr.
    • Wenn dieser Schwellenwert erreicht wurde, senden Sie einen HTTP-POST unter Verwendung des Webhooks mit dem Namen Optional. Diese Aktion fährt die virtuellen Computer in der Gruppe „Optional“ herunter.
  • Überprüfen Sie mit einer Bedingungsanweisung, ob der Schwellenwert 100% des Budgets erreicht oder überschritten hat.
    • Wenn der Schwellenwert erreicht wurde, senden Sie einen HTTP-POST unter Verwendung des Webhooks mit dem Namen Complete. Diese Aktion fährt alle übrigen virtuellen Computer herunter.

Die folgenden Schritte sind erforderlich, um die Logik-App zu erstellen, die die oben genannten Schritte ausführt:

  1. Wählen Sie im Azure-Portal die Option Ressource erstellen>Integration>Logik-App aus.
    Screenshot: Logik-App-Ressource auswählen
  2. Stellen Sie im Blatt Logik-App erstellen die erforderlichen Details zum Erstellen Ihrer Logik-App bereit, und wählen Sie An Dashboard anheften und dann Erstellen aus.
    Screenshot: Logik-App erstellen

Nachdem Ihre Logik-App von Azure bereitgestellt wurde, wird der Designer für Logik-Apps geöffnet, und es wird ein Bereich mit einem Einführungsvideo und häufig verwendeten Triggern angezeigt.

Hinzufügen eines Triggers

Jede Logik-App muss mit einem Trigger beginnen, der ausgelöst wird, wenn ein bestimmtes Ereignis eintritt oder eine bestimmte Bedingung erfüllt wird. Bei jeder Auslösung des Triggers erstellt die Logic Apps-Engine eine Logik-App-Instanz, mit der Ihr Workflow gestartet und ausgeführt wird. Als Aktionen werden alle Schritte bezeichnet, die nach dem Trigger ausgeführt werden.

  1. Wählen Sie unter Vorlagen des Bereichs Designer für Logik-Apps die Option Leere Logik-App aus.
  2. Fügen Sie einen Trigger durch Eingabe von „http request“ im Designer für Logik-Apps-Suchfeld zum Suchen und Auswählen des Triggers mit dem Namen Anforderung – wenn eine HTTP-Anforderung empfangen wird hinzu.
    Screenshot: Trigger „Wenn eine HTTP-Anforderung empfangen wird“
  3. Wählen Sie Neuer Schritt>Aktion hinzufügen.
    Screenshot: Neuer Schritt – Aktion hinzufügen
  4. Suchen Sie im Suchfeld von Designer für Logik-Apps nach „parse JSON“, um die AktionDatenvorgänge – JSON analysieren zu suchen, und wählen Sie diese aus.
    Screenshot: Datenvorgänge – JSON analysieren
  5. Geben Sie „Payload“ als Name für das Analysieren der JSON-Nutzlast ins Feld Inhalt ein, oder verwenden Sie das Body-Tag aus dem dynamischen Inhalt.
  6. Wählen Sie die Option Beispielnutzlast zum Generieren eines Schemas verwenden im Feld JSON analysieren aus.
    Screenshot: Verwenden von JSON-Beispieldaten zum Generieren der Schemanutzdaten
  7. Fügen Sie die folgende JSON-Beispielnutzlast in das Textfeld ein: {"schemaId":"AIP Budget Notification","data":{"SubscriptionName":"CCM - Microsoft Azure Enterprise - 1","SubscriptionId":"<GUID>","SpendingAmount":"100","BudgetStartDate":"6/1/2018","Budget":"50","Unit":"USD","BudgetCreator":"email@contoso.com","BudgetName":"BudgetName","BudgetType":"Cost","ResourceGroup":"","NotificationThresholdAmount":"0.8"}} Das Textfeld wird wie folgt angezeigt:
    Screenshot: JSON-Beispielnutzdaten
  8. Wählen Sie Fertig aus.

Hinzufügen der ersten bedingten Aktion

Überprüfen Sie mit einer Bedingungsanweisung, ob der Schwellenwert von mindestens 80% des Budgets erreicht wurde, aber nicht 100% oder mehr. Wenn dieser Schwellenwert erreicht wurde, senden Sie einen HTTP-POST unter Verwendung des Webhooks mit dem Namen Optional. Diese Aktion fährt die virtuellen Computer in der Gruppe Optional herunter.

  1. Wählen Sie Nächster Schritt>Bedingung hinzufügen aus.
    Screenshot: Bedingung hinzufügen

  2. Wählen Sie im Feld Bedingung das Textfeld mit dem Eintrag Choose a value aus, um eine Liste der verfügbaren Werte anzuzeigen.
    Screenshot: Bedingung „Wert auswählen“

  3. Wählen Sie am oberen Rand der Liste Ausdruck aus, und geben Sie den folgenden Ausdruck im Ausdrucks-Editor ein: float().
    Screenshot: Float-Ausdruck

  4. Wählen Sie Dynamischer Inhalt aus, platzieren Sie den Cursor innerhalb der Klammern (), und wählen Sie NotificationThresholdAmount in der Liste aus, um den vollständigen Ausdruck einzutragen. Der Ausdruck lautet folgendermaßen:
    float(body('Parse_JSON')?['data']?['NotificationThresholdAmount'])

  5. Wählen Sie OK aus, um den Ausdruck festzulegen.

  6. Wählen Sie ist größer als oder gleich im Dropdownlistenfeld der Bedingung aus.

  7. Geben Sie im Feld Wert auswählen der Bedingung .8 ein.
    Screenshot: Dialogfeld „Bedingung“ mit ausgewählten Werten

  8. Wählen Sie im Feld „Bedingung“ die Optionen Hinzufügen>Zeile hinzufügen aus, um einen anderen Teil der Bedingung hinzuzufügen.

  9. Wählen Sie im Feld Bedingung das Textfeld mit dem Eintrag Choose a value aus.

  10. Wählen Sie am oberen Rand der Liste Ausdruck aus, und geben Sie den folgenden Ausdruck im Ausdrucks-Editor ein: float().

  11. Wählen Sie Dynamischer Inhalt aus, platzieren Sie den Cursor innerhalb der Klammern (), und wählen Sie NotificationThresholdAmount in der Liste aus, um den vollständigen Ausdruck einzutragen.

  12. Wählen Sie OK aus, um den Ausdruck festzulegen.

  13. Wählen Sie ist kleiner als im Dropdownlistenfeld Bedingung aus.

  14. Geben Sie im Feld Wert auswählen der Bedingung 1 ein.
    Screenshot: Dialogfeld „Bedingung“ mit zwei Bedingungen

  15. Wählen Sie im Feld Bei TRUE die Option Aktion hinzufügen aus. Sie fügen eine HTTP-POST-Aktion hinzu, die optionale virtuelle Computer herunterfährt.
    Screenshot: Aktion hinzufügen

  16. Geben Sie HTTP ein, um nach der HTTP-Aktion zu suchen, und wählen Sie die HTTP – HTTP-Aktion aus.
    Screenshot: HTTP-Aktion hinzufügen

  17. Wählen Sie post als Wert für Methode aus.

  18. Geben Sie die URL für den Webhook mit dem Namen Optional ein, den Sie zuvor in diesem Tutorial mit dem Wert Uri erstellt haben.
    Screenshot: HTTP-Aktions-URI

  19. Wählen Sie im Feld Bei TRUE die Option Aktion hinzufügen aus. Sie fügen eine E-Mail-Aktion hinzu, die eine E-Mail-Benachrichtigung mit dem Hinweis an den Empfänger sendet, dass die optionalen virtuellen Computer heruntergefahren wurden.

  20. Suchen Sie nach „send email“, und wählen Sie eine E-Mail-Aktion auf Basis des von Ihnen verwendeten E-Mail-Diensts aus.
    Screenshot: Aktion „E-Mail senden“

    Wählen Sie für persönliche Microsoft-Konten die Option Outlook.com. Wählen Sie für Geschäfts-, Schul- oder Unikonten für Azure die Option Office 365 Outlook. Besteht noch keine Verbindung, werden Sie zur Anmeldung bei Ihrem E-Mail-Konto aufgefordert. Logic Apps erstellt eine Verbindung mit Ihrem E-Mail-Konto. Sie müssen der Logik-App den Zugriff auf Ihre E-Mail-Informationen ermöglichen.
    Screenshot: Zugriffsbenachrichtigung

  21. Fügen Sie den Text für An, Betreff und Text für die E-Mail hinzu, die dem Empfänger mitteilt, dass die optionalen VMs heruntergefahren wurden. Verwenden Sie BudgetName und den dynamischen Inhalt NotificationThresholdAmount zum Auffüllen der Felder „Betreff“ und „Text“. Screenshot: E-Mail-Details

Hinzufügen der zweiten bedingten Aktion

Überprüfen Sie mit einer Bedingungsanweisung, ob der Schwellenwert 100% des Budgets erreicht oder überschritten hat. Wenn der Schwellenwert erreicht wurde, senden Sie einen HTTP-POST unter Verwendung des Webhooks mit dem Namen Complete. Diese Aktion fährt alle übrigen virtuellen Computer herunter.

  1. Wählen Sie Nächster Schritt>Bedingung hinzufügen aus.
    Screenshot: Dialogfeld „Wenn true“, in dem „Aktion hinzufügen“ hervorgehoben ist
  2. Wählen Sie im Feld Bedingung das Textfeld mit dem Eintrag Choose a value aus, um eine Liste der verfügbaren Werte anzuzeigen.
  3. Wählen Sie am oberen Rand der Liste Ausdruck aus, und geben Sie den folgenden Ausdruck im Ausdrucks-Editor ein: float().
  4. Wählen Sie Dynamischer Inhalt aus, platzieren Sie den Cursor innerhalb der Klammern (), und wählen Sie NotificationThresholdAmount in der Liste aus, um den vollständigen Ausdruck einzutragen. Der Ausdruck lautet in etwa wie folgt:
    float(body('Parse_JSON')?['data']?['NotificationThresholdAmount'])
  5. Wählen Sie OK aus, um den Ausdruck festzulegen.
  6. Wählen Sie ist größer als oder gleich im Dropdownlistenfeld der Bedingung aus.
  7. Geben Sie im Feld Wert auswählen für die Bedingung 1 ein.
    Screenshot: „Bedingungswert festlegen“
  8. Wählen Sie im Feld Bei TRUE die Option Aktion hinzufügen aus. Sie fügen eine HTTP-POST-Aktion hinzu, die alle verbleibenden virtuellen Computer herunterfährt.
    Screenshot: Dialogfeld „Wenn true“, in dem Sie eine HTTP-POST-Aktion hinzufügen können
  9. Geben Sie HTTP ein, um nach der HTTP-Aktion zu suchen, und wählen Sie die HTTP – HTTP-Aktion aus.
  10. Wählen Sie post als Wert für Methode aus.
  11. Geben Sie die URL für den Webhook mit dem Namen Complete ein, den Sie zuvor in diesem Tutorial mit dem Wert Uri erstellt haben.
    Screenshot: Dialogfeld „HTTP“, in dem Sie den URL-Wert eingeben können
  12. Wählen Sie im Feld Bei TRUE die Option Aktion hinzufügen aus. Sie fügen eine E-Mail-Aktion hinzu, die eine E-Mail-Benachrichtigung mit dem Hinweis an den Empfänger sendet, dass die verbleibenden virtuellen Computer heruntergefahren wurden.
  13. Suchen Sie nach „send email“, und wählen Sie eine E-Mail-Aktion auf Basis des von Ihnen verwendeten E-Mail-Diensts aus.
  14. Fügen Sie den Text für An, Betreff und Text für die E-Mail hinzu, die dem Empfänger mitteilt, dass die optionalen VMs heruntergefahren wurden. Verwenden Sie BudgetName und den dynamischen Inhalt NotificationThresholdAmount zum Auffüllen der Felder „Betreff“ und „Text“.
    Screenshot: E-Mail-Details, die Sie konfiguriert haben
  15. Wählen Sie am oberen Rand des Blatts Logik-App-Designer die Option Speichern aus.

Logik-App-Übersicht

So sieht Ihre Logik-App aus, wenn Sie fertig sind. In den grundlegendsten Szenarien, in denen Sie keine schwellenwertbasierte Orchestrierung benötigen, können Sie das Automatisierungsskript direkt von Monitor aus aufrufen und den Logik-App-Schritt überspringen.

Screenshot: Vollständige Ansicht der Logik-App

Wenn Sie Ihre Logik-App gespeichert haben, wird eine URL generiert, die Sie aufrufen können. Sie verwenden diese URL im nächsten Abschnitt dieses Tutorials.

Erstellen einer Azure Monitor-Aktionsgruppe

Eine Aktionsgruppe ist eine Sammlung von Benachrichtigungseinstellungen, die Sie definieren. Wenn eine Warnung ausgelöst wird, kann eine bestimmte Aktionsgruppe die Warnung mittels einer Benachrichtigung empfangen. Eine Azure-Warnung löst proaktiv basierend auf bestimmten Bedingungen eine Benachrichtigung aus und bietet die Möglichkeit, Maßnahmen zu ergreifen. Eine Warnung kann Daten aus mehreren Quellen einschließlich Metriken und Protokollen nutzen.

Aktionsgruppen sind der einzige Endpunkt, den Sie in Ihr Budget integrieren. Sie können Benachrichtigungen in einer Vielzahl von Kanälen einrichten, aber für dieses Szenario konzentrieren Sie sich auf die Logik-App, die Sie zuvor in diesem Tutorial erstellt haben.

Erstellen einer Aktionsgruppe in Azure Monitor

Bei der Erstellung der Aktionsgruppe verweisen Sie auf die Logik-App, die Sie zuvor in diesem Tutorial erstellt haben.

  1. Wenn Sie noch nicht beim Azure-Portal angemeldet sind, melden Sie sich an, und wählen Sie Alle Dienste>Monitor aus.
  2. Wählen Sie Warnungen und dann Aktionen verwalten aus.
  3. Wählen Sie im Bereich Aktionsgruppen die Option Hinzufügen einer Aktionsgruppe aus.
  4. Fügen Sie folgende Elemente hinzu, und überprüfen Sie sie:
    • Aktionsgruppenname
    • Kurzname
    • Subscription
    • Resource group
      Screenshot: Hinzufügen einer Aktionsgruppe
  5. Fügen Sie im Bereich Aktionsgruppe hinzufügen eine Logik-App-Aktion hinzu. Benennen Sie die Aktion Budget-BudgetLA. Wählen Sie im Bereich Logik-App das Abonnement und die Ressourcengruppe aus. Wählen Sie dann die Logik-App aus, die Sie zuvor in diesem Tutorial erstellt haben.
  6. Wählen Sie OK aus, um die Logik-App festzulegen. Wählen Sie dann OK im Bereich Aktionsgruppe hinzufügen aus, um die Aktionsgruppe zu erstellen.

Sie verfügen nun über alle unterstützenden Komponenten, die erforderlich sind, um Ihr Budget effektiv zu orchestrieren. Jetzt müssen Sie lediglich noch das Budget erstellen und für die Verwendung der von Ihnen erstellten Aktionsgruppe konfigurieren.

Erstellen des Budgets

Im Azure-Portal können Sie mithilfe des Budgetfeatures in Cost Management ein Budget erstellen. Alternativ dazu können Sie ein Budget auch mithilfe von REST-APIs, PowerShell-Cmdlets oder der Befehlszeilenschnittstelle erstellen. Im folgenden Verfahren wird die REST-API verwendet. Vor dem Aufrufen der REST-API benötigen Sie ein Autorisierungstoken. Um ein Autorisierungstoken zu erstellen, können Sie das ARMClient-Projekt verwenden. Mit dem ARMClient können Sie sich beim Azure Resource Manager authentifizieren und ein Token zum Aufrufen der APIs erhalten.

Erstellen eines Authentifizierungstokens

  1. Navigieren Sie auf GitHub zum ARMClient-Projekt.

  2. Klonen Sie das Repository, um eine lokale Kopie zu erhalten.

  3. Öffnen Sie das Projekt in Visual Studio, und erstellen Sie es.

  4. Nachdem der Build erfolgreich erstellt wurde, muss die ausführbare Datei sich im \bin\debug-Ordner befinden.

  5. Führen Sie den ARMClient aus. Öffnen Sie eine Eingabeaufforderung, und navigieren Sie im Stammverzeichnis des Projekts zum \bin\debug-Ordner.

  6. Um sich anzumelden und zu authentifizieren, geben Sie an der Eingabeaufforderung den folgenden Befehl ein:
    ARMClient login prod

  7. Kopieren Sie die Abonnement-GUID aus der Ausgabe.

  8. Um ein Autorisierungstoken in die Zwischenablage zu kopieren, geben Sie den folgenden Befehl an der Eingabeaufforderung ein, aber verwenden Sie unbedingt die kopierte Abonnement-ID aus dem vorherigen Schritt:
    ARMClient token <subscription GUID from previous step>

    Sobald Sie die vorherigen Schritte abgeschlossen haben, sehen Sie Folgendes:
    Token copied to clipboard successfully. (Token wurde erfolgreich in die Zwischenablage kopiert.)

  9. Speichern Sie das Token zur Verwendung für Schritte im nächsten Abschnitt dieses Tutorials.

Erstellen des Budgets

Als Nächstes konfigurieren Sie Postman zum Erstellen eines Budgets durch Aufrufen der Azure-Nutzungs-REST-APIs. Postman ist eine API-Entwicklungsumgebung. Sie importieren Umgebungs- und Sammlungsdateien in Postman. Die Sammlung enthält gruppierte Definitionen von HTTP-Anforderungen, die Azure Consumption-REST-APIs aufrufen. Die Umgebungsdatei enthält Variablen, die von der Sammlung verwendet werden.

  1. Laden Sie den Postman-REST-Client herunter, und öffnen Sie ihn, um die REST-APIs auszuführen.

  2. Erstellen Sie in Postman eine neue Anforderung.
    Screenshot: Neue Anforderung in Postman erstellen

  3. Speichern Sie die neue Anforderung als Sammlung, sodass die neue Anforderung keinen Inhalt hat.
    Screenshot: Neue Anforderung in Postman speichern

  4. Ändern Sie die Anforderung von einer Get- in eine Put-Aktion.

  5. Ändern Sie die folgende URL, indem Sie {subscriptionId} mit der Abonnement-ID ersetzen, die Sie im vorherigen Abschnitt dieses Tutorials verwendet haben. Ändern Sie die URL außerdem so, dass „SampleBudget“ als Wert für {budgetName}: https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Consumption/budgets/{budgetName}?api-version=2018-03-31 einbezogen wird.

  6. Wählen Sie in Postman die Registerkarte Headers aus.

  7. Fügen Sie einen neuen Key (Schlüssel) mit dem Namen „Authorization“ (Autorisierung) hinzu.

  8. Legen Sie für Value (Wert) ein Token fest, das am Ende des letzten Abschnitts mit dem ArmClient erstellt wurde.

  9. Wählen Sie in Postman die Registerkarte Body (Text) aus.

  10. Wählen Sie die Schaltflächenoption raw (unformatiert) aus.

  11. Fügen Sie die unten stehende Beispielbudgetdefinition in das Textfeld ein. Allerdings müssen Sie die Parameter subscriptionID, resourcegroupname und actiongroupnamedurch Ihre Abonnement-ID, einen eindeutigen Namen für Ihre Ressourcengruppe und den Namen der Aktionsgruppe ersetzen, die Sie in URL und Anforderungstext erstellt haben:

        {
            "properties": {
                "category": "Cost",
                "amount": 100.00,
                "timeGrain": "Monthly",
                "timePeriod": {
                "startDate": "2018-06-01T00:00:00Z",
                "endDate": "2018-10-31T00:00:00Z"
                },
                "filters": {},
            "notifications": {
                "Actual_GreaterThan_80_Percent": {
                    "enabled": true,
                    "operator": "GreaterThan",
                    "threshold": 80,
                    "contactEmails": [],
                    "contactRoles": [],
                    "contactGroups": [
                        "/subscriptions/{subscriptionid}/resourceGroups/{resourcegroupname}/providers/microsoft.insights/actionGroups/{actiongroupname}"
                    ]
                },
               "Actual_EqualTo_100_Percent": {
                       "operator": "EqualTo",
                       "threshold": 100,
                       "contactGroups": [
                           "/subscriptions/{subscriptionid}/resourceGroups/{resourcegroupname}/providers/microsoft.insights/actionGroups/{actiongroupname}"
                       ]
                   }
               }
            }
        }
    
  12. Wählen Sie Send (Senden) zum Senden der Anforderung aus.

Sie haben jetzt alle Komponenten, die Sie zum Aufrufen der Budgets-API benötigen. Die Budget-API-Referenz enthält weitere Details zu spezifischen Anforderungen, einschließlich der folgenden:

  • budgetName: Mehrere Budgets werden unterstützt. Budgetnamen müssen eindeutig sein.
  • category: Entweder Kosten oder Nutzung. Die API unterstützt sowohl Kosten- als auch Nutzungsbudgets.
  • timeGrain: Ein Monats-, Quartals- oder Jahresbudget. Der Betrag wird am Ende des Zeitraums zurückgesetzt.
  • filters: Mit Filtern können Sie das Budget auf einen bestimmten Satz von Ressourcen im ausgewählten Bereich eingrenzen. Ein Filter kann beispielsweise eine Sammlung von Ressourcengruppen für ein Budget auf Abonnementebene sein.
  • notifications: Legt die Benachrichtigungsdetails und Schwellenwerte fest. Sie können mehrere Schwellenwerte einrichten und eine E-Mail-Adresse oder Aktionsgruppe angeben, um eine Benachrichtigung zu erhalten.

Zusammenfassung

In diesem Tutorial wurde Folgendes beschrieben:

  • Wie Sie ein Azure Automation-Runbook zum Beenden von VMs erstellen.
  • Wie Sie eine Azure-Logik-App erstellen, die basierend auf den Budgetschwellenwerten ausgelöst wird, und das zugehörige Runbook mit den entsprechenden Parametern aufrufen.
  • Wie Sie eine Azure Monitor-Aktionsgruppe erstellen, die konfiguriert wurde, um bei Erreichen des Budgetschwellenwerts die Azure-Logik-App auszulösen
  • Wie Sie das Budget mit den gewünschten Schwellenwerten erstellen und es mit der Aktionsgruppe verknüpfen.

Sie verfügen nun über ein voll funktionsfähiges Budget für Ihr Abonnement, das Ihre VMs beendet, wenn Sie die konfigurierten Budgetschwellenwerte erreichen.

Nächste Schritte