Programmatische Benachrichtigungen einrichten

In diesem Dokument wird erläutert, wie Sie Benachrichtigungen zu programmatischen Budget- und Kostenanomalien (Vorabversion) mit Pub/Sub einrichten.

Budgets und Kostenanomalien werden in der Regel so konfiguriert, dass E-Mail-Benachrichtigungen gesendet werden. Wenn Sie Budgets oder die Erkennung von Kostenanomalien als Tool zur Kostenkontrolle verwenden, sind E-Mail-Benachrichtigungen möglicherweise nicht die beste Methode, um für eine zeitnahe Aktion in Sachen Steuerung Ihrer Kosten zu sorgen. Sie können programmatische Benachrichtigungen einrichten und verwenden, um Antworten auf Kostenkontrollen zu automatisieren. Beispiele für automatisierte Antworten zur Kostenkontrolle:

Beschränkungen

Erforderliche Berechtigungen für diese Aufgabe

Wenn Sie programmatische Budgetbenachrichtigungen einrichten möchten, benötigen Sie Berechtigungen zum Erstellen oder Ändern von Budgets und Pub/Sub-Themen. Je nach Zugriffsebene sind unterschiedliche Berechtigungen erforderlich.

Nutzer mit Berechtigungen für Cloud-Rechnungskonten Nutzer mit Berechtigungen nur auf Projektebene (Vorabversion)

Wenn Ihre Organisation benutzerdefinierte Rollen für die Authentifizierung verwendet, benötigen Sie die folgenden Berechtigungen in den benutzerdefinierten Rollen:

Für benutzerdefinierte Rollen benötigen Sie zum Ändern eines vorhandenen Cloud Billing-Budgets, um es mit einem vorhandenen Pub/Sub-Thema zu verbinden, folgende Berechtigungen:

Bitten Sie Ihren Administrator, Ihnen eine der folgenden vordefinierten Cloud Billing-IAM-Rollen in Ihrem Cloud-Rechnungskonto zu gewähren, um die erforderlichen Berechtigungen über vordefinierte Rollen zu erhalten:

Bitten Sie Ihren Administrator, Ihnen die folgende Rolle für das Zielprojekt zuzuweisen, das die Pub/Sub-Themen enthält:

Wenn Ihre Organisation benutzerdefinierte Rollen für die Authentifizierung verwendet, benötigen Sie die folgenden Berechtigungen in den benutzerdefinierten Rollen:

Bitten Sie Ihren Administrator, Ihnen eine der folgenden vordefinierten Cloud Billing-IAM-Rollen für das Projekt zu gewähren, um die erforderlichen Berechtigungen über vordefinierte Rollen zu erhalten:

Bitten Sie Ihren Administrator, Ihnen die folgende Rolle für das Zielprojekt zuzuweisen, das die Pub/Sub-Themen enthält:

Wenn Sie programmatische Anomaliebenachrichtigungen einrichten möchten, benötigen Sie Berechtigungen zum Erstellen oder Ändern von Anomalien und Pub/Sub-Themen. Sie benötigen Berechtigungen für das Cloud-Rechnungskonto.

Nutzer mit Berechtigungen für Cloud-Rechnungskonten (Vorabversion)

Bitten Sie Ihren Administrator, Ihnen eine der folgenden vordefinierten Cloud Billing-IAM-Rollen in Ihrem Cloud-Rechnungskonto zu gewähren, um die erforderlichen Berechtigungen über vordefinierte Rollen zu erhalten:

Bitten Sie Ihren Administrator, Ihnen die folgende Rolle für das Zielprojekt zuzuweisen, das die Pub/Sub-Themen enthält:

Pub/Sub-Thema erstellen

Wenn Sie programmatische Budget- oder Anomaliebenachrichtigungen einrichten möchten, müssen Sie zuerst ein Pub/Sub-Thema erstellen. Wenn Sie bereits ein Pub/Sub-Thema für Budgets oder Kostenabweichungen konfiguriert haben, können Sie diesen Schritt überspringen.

  1. Rufen Sie in der Google Cloud Console die Seite Pub/Sub auf.

    Bei Pub/Sub in der Google Cloud Console anmelden

  2. Wählen Sie ein Projekt aus, das das Pub/Sub-Thema enthält.

    Wenn Sie Pub/Sub-Themen für Abrechnungsbenachrichtigungen konfigurieren, empfehlen wir Ihnen, ein FinOps-Verwaltungsprojekt zu verwenden, das Ihre abrechenbaren Pub/Sub-Themen enthält.

  3. Klicken Sie auf Thema erstellen.

  4. Geben Sie im Feld Themen-ID einen Themennamen ein.

  5. Behalten Sie die Standardeinstellungen für Abos und Verschlüsselung bei und klicken Sie auf Erstellen.

Pub/Sub-Thema verknüpfen

Wenn Sie programmatische Benachrichtigungen für den Empfang von Pub/Sub-Nachrichten mit dem aktuellen Status Ihres Budgets oder Ihrer Anomalie aktivieren möchten, müssen Sie Ihr Budget oder Ihre Anomalie mit Ihrem Pub/Sub-Thema verknüpfen.

So verbinden Sie ein Pub/Sub-Thema mit einem Cloud Billing-Budget:

Nutzer mit Berechtigungen für Cloud-Rechnungskonten Nutzer mit Berechtigungen nur auf Projektebene (Vorabversion)
  1. Melden Sie sich in der Google Cloud Console auf der Seite Budgets und Benachrichtigungen an.

    „Budgets & Benachrichtigungen“ öffnen
  2. Wählen Sie an der Eingabeaufforderung das Cloud-Rechnungskonto aus, für das Sie Budgets verwalten möchten.

    Die Seite Budgets & Benachrichtigungen wird für das ausgewählte Rechnungskonto geöffnet.

  3. Wählen Sie das Budget aus, das Sie verknüpfen möchten, oder erstellen Sie ein neues Budget.
  4. Wählen Sie im Bereich Aktionen unter Benachrichtigungen verwalten die Option Pub/Sub-Thema mit diesem Budget verbinden aus.
  5. Klicken Sie im Feld Projekt auf Projekt auswählen und wählen Sie das Projekt aus, das die von Ihnen eingerichteten Pub/Sub-Themen enthält.
  6. Wählen Sie unter Pub/Sub-Thema auswählen ein vorhandenes Thema aus oder klicken Sie auf Thema erstellen, um ein neues Thema zu erstellen.
    • Wenn Sie ein neues Thema erstellen, geben Sie im Feld Themen-ID einen Themennamen ein und klicken Sie auf Thema erstellen.
    • Nachdem Sie das Thema erstellt haben, wird es automatisch ausgewählt.
  7. Klicken Sie auf Speichern.
  1. Melden Sie sich dazu im Google Cloud Console-Dashboard an und wählen Sie ein Projekt aus.

    Google Cloud Console öffnen
  2. Wählen Sie das Projekt aus, für das Sie Budgets verwalten möchten.
  3. Rufen Sie den Bereich Abrechnung auf: Öffnen Sie das Navigationsmenü der Google Cloud Console und wählen Sie Abrechnung aus.

    Wenn Sie aufgefordert werden, das gewünschte Rechnungskonto auszuwählen, klicken Sie auf Zum verknüpften Rechnungskonto, um das Rechnungskonto aufzurufen, das mit dem ausgewählten Projekt verknüpft ist.

    Die Seite Übersicht des Rechnungskontos wird für das ausgewählte Rechnungskonto geöffnet.

  4. Wählen Sie im Bereich Kostenverwaltung des Navigationsmenüs „Abrechnung“ die Option Budgets & Benachrichtigungen aus.
  5. Wählen Sie das Budget aus, das Sie verknüpfen möchten, oder erstellen Sie ein neues Budget.
  6. Wählen Sie im Bereich Aktionen unter Benachrichtigungen verwalten die Option Pub/Sub-Thema mit diesem Budget verbinden aus.
  7. Klicken Sie im Feld Projekt auf Projekt auswählen und wählen Sie das Projekt aus, das die von Ihnen eingerichteten Pub/Sub-Themen enthält.
  8. Wählen Sie unter Pub/Sub-Thema auswählen ein vorhandenes Thema aus oder klicken Sie auf Thema erstellen, um ein neues Thema zu erstellen.
    • Wenn Sie ein neues Thema erstellen, geben Sie im Feld Themen-ID einen Themennamen ein und klicken Sie auf Thema erstellen.
    • Nach der Erstellung wird das Thema ausgewählt.
  9. Klicken Sie auf Speichern.

So verbinden Sie ein Pub/Sub-Thema mit einer Kostenanomalie:

Nutzer mit Berechtigungen für Cloud-Rechnungskonten (Vorabversion)
  1. Melden Sie sich in der Google Cloud Console auf der Seite Anomalien an.

    Offene Anomalien
  2. Wählen Sie an der Eingabeaufforderung das Cloud-Rechnungskonto aus, für das Sie Anomalien verwalten möchten.

    Die Seite Anomalien wird für das ausgewählte Rechnungskonto geöffnet.

  3. Klicken Sie auf  und dann auf Anomalien verwalten.
  4. Geben Sie für Auswirkungen auf die Kosten einen Wert für den Anomaliegrenzwert ein. Dieser Betrag ist der Schwellenwert, der Benachrichtigungen auslöst. Wenn Sie keinen Wert angeben, wird der Grenzwert auf null gesetzt und es werden Benachrichtigungen für alle Anomalien gesendet.
  5. Wählen Sie im Bereich Pub/Sub-Benachrichtigungen die Option Pub/Sub-Thema verbinden, um programmatische Aktualisierungen zu Anomalien zu erhalten aus.
  6. Wählen Sie im Drop-down-Menü das Pub/Sub-Thema aus, mit dem Sie eine Verbindung herstellen möchten, um Benachrichtigungen zu erhalten.
    • Die Themen sind nach Projekt aufgelistet. Möglicherweise müssen Sie das angezeigte Projekt wechseln, um das gewünschte Thema zu finden.
    • Wenn Sie ein neues Thema erstellen möchten, wechseln Sie zu dem gewünschten Projekt, bevor Sie auf Thema erstellen klicken.
  7. Klicken Sie auf Speichern.

Benachrichtigungsformat

Benachrichtigungen, die an ein Pub/Sub-Thema gesendet werden, bestehen aus zwei Teilen:

  • Attribute: Eine Reihe von Schlüssel/Wert-Paaren, die das Ereignis beschreiben.
  • Daten: Ein String, der ein JSON-Objekt enthält, das die Details der Budgetbenachrichtigung beschreibt.

Attribute

Attribute sind Schlüssel/Wert-Paare, die in allen Benachrichtigungen enthalten sind, die von Cloud Billing an Ihr Pub/Sub-Thema gesendet werden. Benachrichtigungen enthalten immer die folgenden Schlüssel/Wert-Paare, unabhängig von der Nutzlast der Benachrichtigung.

Attributname Beispiel Beschreibung
billingAccountId 01D4EE-079462-DFD6EC Die Kennung für das Cloud-Rechnungskonto, zu dem das Budget gehört.
budgetId de72f49d-779b-4945-a127-4d6ce8def0bb Die Kennung für die Budgetbenachrichtigung innerhalb des Cloud-Rechnungskontos.
schemaVersion 1.0 Die Schemaversion der Benachrichtigung

Daten

Details zu Budgetbenachrichtigungen werden in einem base64-codierten UTF-8-String zurückgegeben, der ein JSON-Objekt mit den folgenden Attributen enthält:

Daten Beispiel Beschreibung
budgetDisplayName "My Personal Budget" Für Menschen lesbarer Name, der dem Budget zugewiesen wurde.
costAmount 140.321 Die Höhe der angefallenen Kosten; die Art der verfolgten Kosten hängt von den Budgetfiltern und -einstellungen ab.
costIntervalStart "2021-02-01T08:00:00Z" Der Beginn des Zeitraums der Budgetbenachrichtigung; "costAmount" enthält die Kosten für die Nutzung ab diesem Zeitpunkt. Dies ist der erste Tag des Zeitraums (Monat, Quartal, Jahr oder ein benutzerdefinierter Zeitraum), in dem die Budgetnutzung stattgefunden hat.
budgetAmount 152.557 Der im Budget zugewiesene Betrag
budgetAmountType "SPECIFIED_AMOUNT" Der Budgetbetragstyp; Dies kann einer der folgenden Werte sein:
  • SPECIFIED_AMOUNT“: Ein fester Betrag.
  • LAST_MONTH_COST“: Gesamtkosten, die während des letzten Kalendermonats angefallen sind.
  • LAST_PERIODS_COST“: Die Kosten, die während des letzten, nicht monatlichen Kalenderzeitraums angefallen sind, z. B. ein Quartal oder ein Jahr.
alertThresholdExceeded 0.9 Die höchste konfigurierte Schwellenwertbenachrichtigung für tatsächliche Gesamtkosten wurde überschritten. Der Wert wird als Prozentzahl im Dezimalformat angegeben (z. B. ist 0,9 gleich 90 %). Dieser Schlüssel ist nicht vorhanden, wenn die Kosten keinen Schwellenwert überschreiten.
forecastThresholdExceeded 0.2 Die höchste Obergrenze für Benachrichtigungen zu prognostizierten Kosten wurde überschritten. Der Wert wird als Prozentzahl im Dezimalformat angegeben (z. B. ist 0,2 gleich 20 %). Dieser Schlüssel ist nicht vorhanden, wenn die prognostizierten Kosten keinen Schwellenwert überschreiten.
currencyCode "USD" Die Währung der Budgetbenachrichtigung; alle Kosten und Beträge der Budgetbenachrichtigung werden in dieser Währung angegeben.

Attribute

Attribute sind Schlüssel/Wert-Paare, die in allen Benachrichtigungen enthalten sind, die von Cloud Billing an Ihr Pub/Sub-Thema gesendet werden. Benachrichtigungen enthalten immer die folgenden Schlüssel/Wert-Paare, unabhängig von der Nutzlast der Benachrichtigung.

Attributname Beispiel Beschreibung
scope scope_project Den Umfang der Anomalie.
billingAccountName billingAccounts/01D4EE-079462-DFD6EC Die Kennung des Cloud-Rechnungskontos, in dem die Anomalie aufgetreten ist.
resourceDisplayName My project Der Anzeigename der Ressource, in der die Anomalie aufgetreten ist.
resourceName projects/123456 Die Kennung der Ressource, in der die Anomalie aufgetreten ist.
SchemaVersion 1.0 Die Pub/Sub-Schemaversion.

Daten

Details zu Anomaliebenachrichtigungen werden in einem base64-codierten UTF-8-String zurückgegeben, der ein JSON-Objekt mit den folgenden Attributen enthält:

Daten Beispiel Beschreibung
anomalyName billingAccounts/01D4EE-079462-DFD6EC/anomalies/aaa Der Ressourcenname für die Anomalie.
billingAccountName billingAccounts/01D4EE-079462-DFD6EC Die Kennung des Rechnungskontos.
resourceName "projects/12345" Die Kennung der Ressource, in der die Anomalie aufgetreten ist.
resourceDisplayName "My project" Der Anzeigename der Ressource, in der die Anomalie aufgetreten ist.
detectionDate "2024-02-01T08:00:00Z" Das Datum, an dem die Kostenanomalie erkannt wurde.
Scope SCOPE_PROJECT Gibt den Umfang der Anomalie an.
expectedSpendAmount {
"currencyCode": "USD",
"units": "8",
"nanos": 988106832
}
Die erwarteten Ausgaben für die Ressource.
actualSpendAmount 196.22 Die tatsächlichen Ausgaben für die Ressource.
deviationAmount 31.01 Die Differenz zwischen den tatsächlichen und den erwarteten Ausgaben.
deviationPercentage 18.77 Der prozentuale Wert der Abweichung von den erwarteten Ausgaben.
Root cause
root_causes {
resource: "services/XXX-XXXX-XXX"
display_name: "BigQuery"
cause_type: CAUSE_TYPE_SERVICE
deviation {
  expected_spend {
    currency_code: "USD"
    units: "5000"
  }
  actual_spend {
    currency_code: "USD"
    units: "5000"
  }
  deviation_amount {
    currency_code: "USD"
    units: "5000"
  }
  deviation_percentage: "Infinity"
}
sub_causes {
  resource: "locations/us-west1",
  display_name: "us-west1",
  cause_type: CAUSE_TYPE_LOCATION,
  deviation {
    expected_spend {
      currency_code: "USD",
    }
    actual_spend {
      currency_code: "USD",
      units:"5000"
    }
    deviation_amount {
      currency_code: "USD",
      units: "5000"
    }
    deviation_percentage: "Infinity"
  }
  sub_causes {
    resource: "services/XXXX-XXXX-XXXX/skus/XXXX-XXXX-XXXX"
    display_name: "Some display name"
    cause_type: CAUSE_TYPE_SKU
    deviation {
      expected_spend {
        currency_code: "USD"
      }
      actual_spend {
        currency_code: "USD"
        units: 5000
      }
      deviation_amount {
        currency_code: "USD"
        units: 5000
      }
      deviation_percentage: "Infinity"
    }
  }
  sub_causes {
    resource: "services/XXXX-XXXX-XXXX/skus/XXXX-XXXX-XXXX"
    display_name: "Some display name"
    cause_type: CAUSE_TYPE_SKU
    deviation {
      expected_spend {
        currency_code: "USD"
        units: "1"
        nanos: 5413077
      }
      actual_spend {
        currency_code: "USD"
        units: "1",
        nanos: 122606000
      }
      deviation_amount {
        currency_code: "USD"
        nanos: 117192923
      }
      deviation_percentage:11.656196419841217
    }
  }
}
}
Ein wiederholbares Feld mit Informationen zur Grundursache der Anomalie.

Garantien für die Nachrichtenübermittlung an Pub/Sub

Nachdem Sie Ihr Budget oder Ihre Anomalie mit einem Pub/Sub-Thema verknüpft haben, können Sie davon ausgehen, dass programmatische Benachrichtigungen so gesendet werden:

  • Budgetbenachrichtigungen werden mehrmals täglich mit dem aktuellen Status Ihres Budgets an das Pub/Sub-Thema gesendet. Dieser Rhythmus unterscheidet sich von dem für Budgetbenachrichtigungen, die nur gesendet werden, wenn ein Budgetschwellenwert erreicht wurde.
  • Pub/Sub-Benachrichtigungen werden auch dann gesendet, wenn das Cloud Billing-Konto nicht verwendet wird.
  • Es kann einige Stunden dauern, bis Sie die erste Pub/Sub-Benachrichtigung erhalten.
  • Pub/Sub garantiert eine mindestens einmalige Übermittlung. Unter Umständen empfangen Sie eine Nachricht mehrmals. Benachrichtigungen können auch in falscher Reihenfolge ankommen.
  • Wenn die Übermittlung aufgrund einer falschen Konfiguration des Pub/Sub-Themas fehlschlägt, werden Sie nicht benachrichtigt.

Die Zustellung kann aus einem der folgenden Gründe fehlschlagen:

  • Anomaliebenachrichtigungen werden nur an das Pub/Sub-Thema gesendet, wenn der Schwellenwert erreicht wird.
  • Pub/Sub garantiert nur eine mindestens einmalige Zustellung. Unter Umständen empfangen Sie eine Nachricht mehrmals. Benachrichtigungen können auch in falscher Reihenfolge ankommen.
  • Wenn die Übermittlung aufgrund einer falschen Konfiguration des Pub/Sub-Themas fehlschlägt, werden Sie nicht benachrichtigt.

Die Zustellung kann aus einem der folgenden Gründe fehlschlagen:

Weitere Informationen finden Sie unter Nachrichten in Pub/Sub veröffentlichen und empfangen.

Nächste Schritte

Weitere Informationen zur Verwendung programmatischer Benachrichtigungen finden Sie in den folgenden Beispielen für programmatische Antworten zur Kostenkontrolle: