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:
- Slack für schnellere Antworten einbinden
- Ressourcenverbrauch verwalten, um Kosten zu senken
- Ausgaben begrenzen, indem Sie die Abrechnung deaktivieren, wenn Sie Ihr Budget erreichen
Beschränkungen
Für Budgets werden geschätzte Cloud Billing-Daten verwendet, die sich bis zum Abschluss Ihrer Rechnung ändern können.
Wenn Sie Organisationsrichtlinien zum Beschränken der Ressourcenfreigabe nach Domain (insbesondere die Einschränkung
iam.allowedPolicyMemberDomains) festgelegt haben, wird möglicherweise ein Fehler beim Einrichten oder Verknüpfen von Pub/Sub-Themen angezeigt. In diesem Fall müssen Sie das Projekt, das Ihr Pub/Sub-Thema enthält, von der Organisationsrichtlinie ausnehmen. So nehmen Sie das Projekt aus:- Überschreiben Sie die Organisationsrichtlinie für das Projekt, das das Pub/Sub-Thema enthält.
- Folgen Sie der Anleitung, um Ihr Pub/Sub-Thema zu verbinden.
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:
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.
Rufen Sie in der Google Cloud Console die Seite Pub/Sub auf.
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.
Klicken Sie auf Thema erstellen.
Geben Sie im Feld Themen-ID einen Themennamen ein.
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) |
|---|---|
|
|
Anomalie-Benachrichtigungen
So verbinden Sie ein Pub/Sub-Thema mit einer Kostenanomalie:
| Nutzer mit Berechtigungen für Cloud-Rechnungskonto (Vorschau) |
|---|
|
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:
|
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
|
{
|
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: