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. Neben der Verwendung der Budget-API, um E-Mail-Benachrichtigungen zu senden, wenn ein Budgetschwellenwert erreicht wird, können Sie auch Azure Monitor-Aktionsgruppen verwenden. Aktionsgruppen lösen eine koordinierte Gruppe von Aktionen als Reaktion auf ein Budgetereignis aus.

Ein typisches Budgetszenario für einen Kunden, der eine nicht kritische Workload ausführt, besteht darin, Ausgaben anhand eines Budgets zu verwalten und bei der Überprüfung der monatlichen Rechnung vorhersehbare Kosten zu erzielen. 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 %, der alle virtuellen Computer (Virtual Machines, VMs) in der Ressourcengruppe Optional beendet. Dann werden bei einem Kostenschwellenwert von 100 % alle VM-Instanzen beendet.

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

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, das VMs beendet. Sie verwenden das grafische Runbook Azure V2-VMs beenden aus dem Azure Automation-Katalog, 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.

Hinweis

Sie können ein Budget in Azure Cost Management + Billing erstellen und mit einem Azure Automation-Runbook verknüpfen, um Ressourcen automatisch zu beenden, wenn ein angegebener Schwellenwert erreicht ist.

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 Übersichtsbereich des Runbook wird angezeigt.
  7. Sobald das Runbook den Importvorgang abgeschlossen hat, wählen Sie Bearbeiten aus, 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 haben Sie noch keine veröffentlichte Version, 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. Führen Sie dann die vorangegangene Schritte aus, um einen zweiten Webhook mit dem Namen Vollständig zu erstellen.

    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

Sie haben das Azure Automation-Setup abgeschlossen. Sie können die Webhooks mit einem einfachen API-Test testen, um zu überprüfen, dass der Webhook funktioniert. Einige gängige Methoden zum Abfragen der API sind:

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 Aufruf des von Ihnen erstellten Automatisierungswebhooks.

Budgets können so eingerichtet werden, dass sie eine Benachrichtigung auslösen, wenn ein angegebener Schwellenwert erreicht wird. Sie können mehrere Schwellenwerte bereitstellen, bei denen Sie benachrichtigt werden, und die Logik-App demonstriert 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 mehrere Benachrichtigungen erhalten. Die erste Benachrichtigung erhalten Sie, wenn 80 % des Budgets erreicht sind. Die zweite Benachrichtigung erhalten Sie, wenn 100 % des Budgets erreicht sind. Die Logik-App wird zum Herunterfahren aller VMs in der Ressourcengruppe verwendet. Zuerst wird der Schwellenwert Optional bei 80 % erreicht, dann wird der zweite Schwellenwert erreicht, an dem alle VMs 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. Sie verwenden die Parsen-Aktion und geben ihr Beispielnutzdaten mit.

Erstellen der Logik-App

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

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

Die folgenden Schritte sind erforderlich, um die Logik-App zu erstellen, welche die vorherigen 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 Aktion Datenvorgä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 angezeigt als:
    Screenshot: JSON-Beispielnutzdaten
  8. Wählen Sie Fertig aus.

Hinzufügen der ersten bedingten Aktion

Verwenden einer Bedingungsanweisung, um zu überprüfen, ob der Schwellenwert von mindestens 80% des Budgetbereichs erreicht wurde, aber nicht 100% oder mehr ist. Wenn dieser Schwellenwert erreicht wird, senden Sie einen HTTP POST unter Verwendung des Webhooks mit dem Namen Optional. Diese Aktion beendet die VMs in der Gruppe Optional.

  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:
    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, mit der optionale VMs heruntergefahren werden.
    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 sendet, die dem Empfänger mitteilt, dass die optionalen VMs 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. Wenn Sie noch keine Verbindung haben, 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 erlauben.
    Screenshot: Zugriffsbenachrichtigung

  21. Fügen Sie den Text für An, Betreff und Textkörper 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

Verwenden Sie eine Bedingungsanweisung, um zu überprüfen, ob der Schwellenwert 100% des Budgetwertes erreicht oder überschritten hat. Wenn der Schwellenwert erreicht ist, senden Sie einen HTTP POST unter Verwendung des Webhooks mit dem Namen Vollständig. Diese Aktion fährt alle verbleibenden VMs 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 ähnelt Folgendem:
    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 VMs 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 sendet, die den Empfänger benachrichtigt, dass die verbleibenden VMs 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 Textkörper 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

Hier sehen Sie, wie Ihre Logik-App aussieht, 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

Als Sie Ihre Logik-App gespeichert haben, wurde 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 vielen Kanälen einrichten, aber für dieses Szenario konzentrieren Sie sich auf die Logik-App, die Sie früher in diesem Tutorial erstellt haben.

Erstellen einer Aktionsgruppe in Azure Monitor

Wenn Sie die Aktionsgruppe erstellen, verweisen Sie auf die Logik-App, die Sie früher 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>Überwachen 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 haben alle unterstützenden Komponenten abgeschlossen, 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 Ihre 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>

    Wenn Sie den vorherigen Schritt 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 erstellen Sie ein Budget, indem Sie die REST-APIs für Azure-Verbrauch aufrufen. Sie benötigen eine Möglichkeit, mit APIs zu interagieren. Einige gängige Methoden zum Abfragen der API sind:

Sie müssen sowohl Umgebungs- als auch Sammlungsdateien in Ihren API-Client importieren. 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. Erstellen Sie in Ihrem API-Client eine neue Anforderung.

  2. Speichern Sie die neue Anforderung, damit sie nichts enthält.

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

  4. Ä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.

  5. Wählen Sie „Kopfzeilen“ in Ihrem API-Client aus.

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

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

  8. Wählen Sie „Textkörper“ in Ihrem API-Client aus.

  9. Wählen Sie die Option unformatiert in Ihrem API-Client aus.

  10. Fügen Sie im Textbereich ihres API-Clients die folgende Beispielbudgetdefinition ein. Sie müssen die Parameter subscriptionID, resourcegroupname und actiongroupname durch Ihre Abonnement-ID, einen eindeutigen Namen für Ihre Ressourcengruppe und den Namen der Aktionsgruppe ersetzen, die Sie sowohl in der URL als auch im 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}"
                       ]
                   }
               }
            }
        }
    
  11. Senden Sie die Anforderung.

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 herunterfährt, wenn Sie Ihre konfigurierten Budgetschwellenwerte erreichen.

Nächste Schritte