Programmatische Benachrichtigungen einrichten

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

Budgets und Kostenanomalien sind in der Regel so konfiguriert, dass E-Mail-Benachrichtigungen gesendet werden. Wenn Sie Budgets oder die Anomalieerkennung als Tool zur Kostenkontrolle verwenden, sind E‑Mail-Benachrichtigungen möglicherweise nicht die beste Methode, um rechtzeitig Maßnahmen zur Kostenkontrolle zu ergreifen. 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

Budgetbenachrichtigungen

Zum Einrichten programmatischer Budgetbenachrichtigungen benötigen Sie Berechtigungen zum Erstellen oder Ändern von Budgets und Pub/Sub-Themen. Je nach Zugriffsebene benötigen Sie unterschiedliche Berechtigungen.

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

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 für Ihr 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 zuzuweisen, 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:

Anomalie-Benachrichtigungen

Wenn Sie programmatische Benachrichtigungen zu Anomalien 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-Rechnungskonto (Vorschau)

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

  • billing.accounts.get für das Cloud-Rechnungskonto.
  • billing.accounts.getIamPolicy für das Cloud-Rechnungskonto.
  • billing.anomalies.get für das Cloud-Rechnungskonto.
  • billing.anomalies.list für das Cloud-Rechnungskonto.
  • pubsub.topics.setIamPolicy für das Zielprojekt, das die Pub/Sub-Themen enthält, die Sie verwenden möchten.
  • pubsub.topics.list für das Zielprojekt, das die Pub/Sub-Themen enthält, die Sie verwenden möchten.
  • pubsub.subscriptions.consume für das Zielprojekt (oder das Abo), das die Pub/Sub-Abos enthält, die Sie verwenden möchten.

Bitten Sie Ihren Administrator, Ihnen eine der folgenden vordefinierten Cloud Billing-IAM-Rollen für Ihr 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 Kostenanomalien konfiguriert haben, können Sie diesen Schritt überspringen.

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

    In Pub/Sub in der Google Cloud Console anmelden

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

    Wenn Sie Pub/Sub-Themen für Abrechnungsbenachrichtigungen konfigurieren, empfehlen wir, ein FinOps-Verwaltungsprojekt für Ihre abrechnungsbezogenen Pub/Sub-Themen zu verwenden.

  3. Klicken Sie auf Thema erstellen.

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

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

Pub/Sub-Thema verbinden

Wenn Sie programmatische Benachrichtigungen aktivieren möchten, um Pub/Sub-Nachrichten mit dem aktuellen Status Ihres Budgets oder Ihrer Anomalie zu erhalten, müssen Sie Ihr Budget oder Ihre Anomalie mit Ihrem Pub/Sub-Thema verbinden.

Budgetbenachrichtigungen

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 (Vorschau)
  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.

    Für das ausgewählte Rechnungskonto wird dann die Seite Budgets & Benachrichtigungen 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 im Navigationsmenü „Abrechnung“ die Option Budgets und 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.

Anomalie-Benachrichtigungen

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

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

    Anomalien öffnen
  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 Anomalien verwalten.
  4. Geben Sie einen Wert für den Anomalieschwellenwert für Auswirkungen auf die Kosten ein. Dieser Betrag ist der Schwellenwert, der Benachrichtigungen auslöst. Wenn Sie keinen Wert angeben, wird der Schwellenwert 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, das Sie verbinden 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 Ihrem bevorzugten 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.

Budgetbenachrichtigungen

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 ID des Cloud-Rechnungskonto, zu dem das Budget gehört.
budgetId de72f49d-779b-4945-a127-4d6ce8def0bb Die Kennung für die Budgetbenachrichtigung im Cloud-Rechnungskonto.
schemaVersion 1.0 Die Schemaversion der Benachrichtigung

Daten

Die Details der Budgetbenachrichtigung 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" Der menschenlesbare Name, der dem Budget zugewiesen ist.
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 im letzten Kalendermonat angefallen sind.
  • „LAST_PERIODS_COST“: Die Kosten, die im letzten, nicht monatlichen Kalenderzeitraum angefallen sind, z. B. in einem Quartal oder einem 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 tatsächlichen 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.

Anomalie-Benachrichtigungen

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 Der Bereich der Anomalie.
billingAccountName billingAccounts/01D4EE-079462-DFD6EC Die Kennung des Cloud-Rechnungskonto, 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 ID 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 Die Abweichung von den erwarteten Ausgaben in Prozent.
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 wiederkehrendes Feld, das Informationen zur Ursache der Anomalie enthält.

Zustellung von Benachrichtigungen an Pub/Sub

Nachdem Sie Ihr Budget oder Ihre Anomalie mit einem Pub/Sub-Thema verbunden haben, erhalten Sie programmatische Benachrichtigungen wie folgt:

Budgetbenachrichtigungen

  • 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 mehrere Stunden dauern, bis Sie die erste Pub/Sub-Benachrichtigung erhalten.
  • Pub/Sub bietet nur eine mindestens einmalige Zustellung. Unter Umständen empfangen Sie eine Nachricht mehrmals. Benachrichtigungen können auch in falscher Reihenfolge ankommen.
  • Wenn die Zustellung aufgrund einer Fehlkonfiguration des Pub/Sub-Themas fehlschlägt, werden Sie nicht benachrichtigt.

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

  • Das Pub/Sub-Thema existiert nicht mehr.
  • Cloud Billing ist nicht mehr berechtigt, im Pub/Sub-Thema zu veröffentlichen.
  • Sie haben Ihr Benachrichtigungskontingent überschritten.
  • Sie haben Organisationsrichtlinien eingerichtet, die die Ressourcenfreigabe nach Domain einschränken (insbesondere die Einschränkung iam.allowedPolicyMemberDomains).

Anomalie-Benachrichtigungen

  • Anomaliebenachrichtigungen werden nur dann an das Pub/Sub-Thema gesendet, wenn der Schwellenwert erreicht ist.
  • Pub/Sub sorgt nur für eine mindestens einmalige Zustellung. Unter Umständen empfangen Sie eine Nachricht mehrmals. Benachrichtigungen können auch in falscher Reihenfolge ankommen.
  • Wenn die Zustellung aufgrund einer Fehlkonfiguration des Pub/Sub-Themas fehlschlägt, werden Sie nicht benachrichtigt.

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

  • Das Pub/Sub-Thema existiert nicht mehr.
  • Das Cloud-Rechnungskonto hat keine Berechtigung mehr, im Pub/Sub-Thema zu veröffentlichen.
  • Sie haben Ihr Benachrichtigungskontingent überschritten.
  • Sie haben Organisationsrichtlinien eingerichtet, die die Ressourcenfreigabe nach Domain einschränken (insbesondere die Einschränkung iam.allowedPolicyMemberDomains).

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 Kostenkontrollantworten: