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:
- Integration mit Slack für eine schnellere Reaktion
- Ressourcenverbrauch verwalten, um Kosten zu senken
- Ausgaben begrenzen, indem Sie die Abrechnung deaktivieren, wenn Sie Ihr Budget erreichen
Beschränkungen
Budgets basieren auf geschätzten Cloud Billing-Daten. Diese können sich bis zur Erstellung der Rechnung noch ändern.
Wenn Sie Organisationsrichtlinien zum Beschränken der Ressourcenfreigabe nach Domain festgelegt haben (z. B.
enforceInTransit
für Pub/Sub-Themen aktiviert haben), wird möglicherweise ein Fehler beim Einrichten oder Verbinden von Pub/Sub-Themen angezeigt. In diesem Fall müssen Sie möglicherweise den Kontozugriff erzwingen, um ein Pub/Sub-Thema mit einem Budget zu verbinden. So erzwingen Sie den Kontozugriff:- Entfernen Sie die Organisationsrichtlinie mit der Domaineinschränkung. Nutzen Sie dazu eine der folgenden Methoden:
- Führen Sie die Schritte unter Pub/Sub-Thema verbinden aus.
- Reaktivieren Sie die Organisationsrichtlinie für die Organisation oder das Projekt (optional).
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.
Rufen Sie in der Google Cloud Console die Seite Pub/Sub auf.
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.
Klicken Sie auf
Thema erstellen.Geben Sie im Feld Themen-ID einen Themennamen ein.
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) |
---|---|
|
|
So verbinden Sie ein Pub/Sub-Thema mit einer Kostenanomalie:
Nutzer mit Berechtigungen für Cloud-Rechnungskonten (Vorabversion) |
---|
|
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:
|
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
|
{
|
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:
- 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 beschränken.
- 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:
- Das Pub/Sub-Thema existiert nicht mehr.
- Das Cloud Billing-Konto 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 beschränken.
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:
- Benachrichtigungen anhören
- Benachrichtigungen an Slack senden
- Ressourcennutzung mit Benachrichtigungen steuern
- Abrechnung der Nutzung mit Benachrichtigungen deaktivieren