Questo documento spiega come configurare le notifiche programmatiche relative al budget e alle anomalie di costo (anteprima) utilizzando Pub/Sub.
I budget e le anomalie di costo sono in genere configurati per inviare notifiche via email. Se utilizzi i budget o il rilevamento di anomalie dei costi come strumento di controllo dei costi, le notifiche via email potrebbero non essere il metodo migliore per garantire un'azione tempestiva per il controllo dei costi. Puoi configurare e utilizzare le notifiche programmatiche per automatizzare le risposte sul controllo dei costi. Gli esempi di risposte automatiche sul controllo dei costi includono:
- Integrazione con Slack per una risposta più rapida
- Gestisci il consumo di risorse per ridurre i costi
- Limita la spesa disattivando la fatturazione quando raggiungi il budget
Limitazioni
I budget utilizzano i dati di fatturazione Cloud stimati, che sono soggetti a modifiche fino alla finalizzazione della fattura.
Se imposti le policy dell'organizzazione per limitare la condivisione delle risorse per dominio (in particolare, il vincolo
iam.allowedPolicyMemberDomains), potresti riscontrare un errore quando provi a configurare o connettere gli argomenti Pub/Sub. In questo caso, devi esentare il progetto contenente l'argomento Pub/Sub dalla policy dell'organizzazione. Per esentare il progetto, completa i seguenti passaggi:- Esegui l'override della policy dell'organizzazione per il progetto che contiene l'argomento Pub/Sub.
- Segui i passaggi per collegare l'argomento Pub/Sub.
Autorizzazioni richieste per questa attività
Notifiche relative al budget
Per configurare le notifiche del budget programmatiche, devi disporre delle autorizzazioni per creare o modificare i budget e gli argomenti Pub/Sub. A seconda del livello di accesso, è necessario un insieme di autorizzazioni diverso.
| Utenti con autorizzazioni per l'account di fatturazione Cloud | Utenti con autorizzazioni solo a livello di progetto (anteprima) |
|---|---|
|
Se la tua organizzazione utilizza ruoli personalizzati per l'autenticazione, devi disporre delle seguenti autorizzazioni nei ruoli personalizzati:
Per i ruoli personalizzati per modificare un budget di fatturazione Cloud esistente per collegarlo a un argomento Pub/Sub esistente, devi disporre delle seguenti autorizzazioni:
Per ottenere le autorizzazioni necessarie utilizzando i ruoli predefiniti, chiedi all'amministratore di concederti uno dei seguenti ruoli IAM di fatturazione Cloud predefiniti sul tuo account di fatturazione Cloud: Chiedi all'amministratore di concederti il seguente ruolo nel progetto di destinazione che contiene gli argomenti Pub/Sub: |
Se la tua organizzazione utilizza ruoli personalizzati per l'autenticazione, devi disporre delle seguenti autorizzazioni nei ruoli personalizzati:
Per ottenere le autorizzazioni necessarie utilizzando i ruoli predefiniti, chiedi all'amministratore di concederti uno dei seguenti ruoli fatturazione Cloud IAM predefiniti sul progetto: Chiedi all'amministratore di concederti il seguente ruolo nel progetto di destinazione che contiene gli argomenti Pub/Sub: |
Notifiche di anomalie
Per configurare le notifiche di anomalie programmatiche, devi disporre delle autorizzazioni per creare o modificare anomalie e argomenti Pub/Sub. Devi disporre delle autorizzazioni per l'account di fatturazione Cloud.
| Utenti con autorizzazioni per l'account di fatturazione Cloud (anteprima) |
|---|
|
Se la tua organizzazione utilizza ruoli personalizzati per l'autenticazione, devi disporre delle seguenti autorizzazioni nei ruoli personalizzati:
Per ottenere le autorizzazioni necessarie utilizzando i ruoli predefiniti, chiedi all'amministratore di concederti uno dei seguenti ruoli IAM di fatturazione Cloud predefiniti sul tuo account di fatturazione Cloud: Chiedi all'amministratore di concederti il seguente ruolo nel progetto di destinazione che contiene gli argomenti Pub/Sub: |
Crea un argomento Pub/Sub
Per configurare le notifiche programmatiche del budget o delle anomalie, devi prima creare un argomento Pub/Sub. Se hai già configurato un argomento Pub/Sub per i budget o le anomalie di costo, puoi saltare questo passaggio.
Vai alla pagina Pub/Sub della console Google Cloud .
Seleziona un progetto che contenga l'argomento Pub/Sub.
Quando configuri gli argomenti Pub/Sub per le notifiche di fatturazione, ti consigliamo di utilizzare un progetto di amministrazione FinOps per contenere gli argomenti Pub/Sub relativi alla fatturazione.
Fai clic su Crea argomento.
Nel campo ID argomento, inserisci un nome per l'argomento.
Mantieni le impostazioni di sottoscrizione e crittografia predefinite e fai clic su Crea.
Connetti l'argomento Pub/Sub
Per abilitare le notifiche programmatiche per la ricezione di messaggi Pub/Sub con lo stato attuale del budget o dell'anomalia, devi collegare il budget o l'anomalia all'argomento Pub/Sub.
Notifiche relative al budget
Per connettere un argomento Pub/Sub a un budget di fatturazione Cloud, completa i seguenti passaggi:
| Utenti con autorizzazioni per l'account di fatturazione Cloud | Utenti con autorizzazioni solo a livello di progetto (anteprima) |
|---|---|
|
|
Notifiche di anomalie
Per collegare un argomento Pub/Sub a un'anomalia dei costi, completa i seguenti passaggi:
| Utenti con autorizzazioni per l'account di fatturazione Cloud (anteprima) |
|---|
|
Formato delle notifiche
Le notifiche inviate all'argomento Pub/Sub sono costituite da due parti:
- Attributi: un insieme di coppie chiave-valore che descrivono l'evento.
Data: una stringa contenente un oggetto JSON che descrive i dettagli dell'avviso di budget.
Notifiche relative al budget
Attributi
Gli attributi sono coppie chiave-valore contenute in tutte le notifiche inviate dalla fatturazione Cloud al tuo argomento Pub/Sub. Le notifiche contengono sempre il seguente insieme di coppie chiave/valore, indipendentemente dal payload delle notifiche.
| Nome dell'attributo | Esempio | Descrizione |
|---|---|---|
| billingAccountId |
01D4EE-079462-DFD6EC
|
L'identificatore dell'account di fatturazione Cloud proprietario del budget. |
| budgetId |
de72f49d-779b-4945-a127-4d6ce8def0bb
|
L'identificatore dell'avviso relativo al budget all'interno dell'account di fatturazione Cloud. |
| schemaVersion |
1.0
|
La versione dello schema delle notifiche. |
Dati
I dettagli degli avvisi relativi al budget vengono restituiti in una stringa UTF-8 con codifica base64 contenente un oggetto JSON con le seguenti proprietà:
| Dati | Esempio | Descrizione |
|---|---|---|
budgetDisplayName
|
"My Personal Budget"
|
Il nome leggibile assegnato al budget. |
costAmount
|
140.321
|
L'importo dei costi maturati. Il tipo di costi monitorati dipende dai filtri e dalle impostazioni del budget. |
costIntervalStart
|
"2021-02-01T08:00:00Z"
|
L'inizio del periodo di avviso relativo al budget. "costAmount" include i costi di utilizzo a partire da questo momento. Questo è il primo giorno del periodo di tempo del budget (mese, trimestre, anno o intervallo di date personalizzato) durante il quale si è verificato l'utilizzo del budget. |
budgetAmount
|
152.557
|
L'importo stanziato nel budget. |
budgetAmountType
|
"SPECIFIED_AMOUNT"
|
Il tipo di importo del budget. Può avere uno dei seguenti valori:
|
alertThresholdExceeded
|
0.9
|
È stata superata la soglia di avviso per il costo effettivo più alta configurata. Il valore è una percentuale in formato decimale (ad esempio, 0,9 corrisponde al 90%). Questa chiave non è presente se il costo effettivo non supera nessuna soglia. |
forecastThresholdExceeded
|
0.2
|
È stata superata la soglia di avviso per il costo previsto più alto. Il valore è una percentuale in formato decimale (ad esempio, 0,2 corrisponde al 20%). Questa chiave non è presente se il costo previsto non supera alcuna soglia. |
currencyCode
|
"USD"
|
La valuta dell'avviso relativo al budget. Tutti i costi e gli importi degli avvisi relativi al budget sono espressi in questa valuta. |
Notifiche di anomalie
Attributi
Gli attributi sono coppie chiave-valore contenute in tutte le notifiche inviate dalla fatturazione Cloud al tuo argomento Pub/Sub. Le notifiche contengono sempre il seguente insieme di coppie chiave-valore, indipendentemente dal payload della notifica.
| Nome attributo | Esempio | Descrizione |
|---|---|---|
| scope |
scope_project
|
L'ambito dell'anomalia. |
| billingAccountName |
billingAccounts/01D4EE-079462-DFD6EC
|
L'identificatore dell'account di fatturazione Cloud in cui si è verificata l'anomalia. |
| resourceDisplayName |
My project
|
Il nome visualizzato della risorsa in cui si è verificata l'anomalia. |
| resourceName |
projects/123456
|
L'identificatore della risorsa in cui si è verificata l'anomalia. |
| SchemaVersion |
1.0
|
La versione dello schema Pub/Sub. |
Dati
I dettagli degli avvisi di anomalia vengono restituiti in una stringa UTF-8 con codifica base64 contenente un oggetto JSON con le seguenti proprietà:
| Dati | Esempio | Descrizione |
|---|---|---|
anomalyName
|
billingAccounts/01D4EE-079462-DFD6EC/anomalies/aaa
|
Il nome della risorsa per l'anomalia. |
billingAccountName
|
billingAccounts/01D4EE-079462-DFD6EC
|
L'identificatore dell'account di fatturazione. |
resourceName
|
"projects/12345"
|
L'identificatore della risorsa in cui si è verificata l'anomalia. |
resourceDisplayName
|
"My project"
|
Il nome visualizzato della risorsa in cui si è verificata l'anomalia. |
detectionDate
|
"2024-02-01T08:00:00Z"
|
La data in cui è stata rilevata l'anomalia di costo. |
Scope
|
SCOPE_PROJECT
|
Indica l'ambito dell'anomalia. |
expectedSpendAmount
|
{
|
La spesa prevista per la risorsa. |
actualSpendAmount
|
196.22
|
La spesa effettiva per la risorsa. |
deviationAmount
|
31.01
|
La differenza tra la spesa effettiva e quella prevista. |
deviationPercentage
|
18.77
|
La percentuale di deviazione dalla spesa prevista. |
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
}
}
}
}
|
Un campo ripetuto che contiene informazioni sulla causa principale dell'anomalia. |
Pubblicazione delle notifiche in Pub/Sub
Dopo aver collegato il budget o l'anomalia a un argomento Pub/Sub, puoi aspettarti di ricevere notifiche programmatiche come segue:
Notifiche relative al budget
- Le notifiche relative al budget vengono inviate all'argomento Pub/Sub più volte al giorno con lo stato attuale del budget. Questa cadenza è diversa da quella delle email di avviso relative al budget, che vengono inviate solo quando viene raggiunta una soglia del budget.
- Le notifiche Pub/Sub vengono inviate anche se l'account di fatturazione Cloud non ha un utilizzo.
- Potrebbero essere necessarie diverse ore prima di ricevere la prima notifica Pub/Sub.
- Pub/Sub fornisce solo la distribuzione "at-least-once". Potresti ricevere un messaggio più volte e i messaggi potrebbero arrivare non in ordine.
- Se la pubblicazione non va a buon fine a causa di una configurazione errata dell'argomento Pub/Sub, non riceverai alcuna notifica.
La consegna potrebbe non riuscire per uno dei seguenti motivi:
- L'argomento Pub/Sub non esiste più.
- La fatturazione Cloud non dispone più dell'autorizzazione per pubblicare nell'argomento Pub/Sub.
- Hai superato la quota di notifiche.
- Hai implementato policy dell'organizzazione che limitano la condivisione delle risorse per dominio (nello specifico, il vincolo
iam.allowedPolicyMemberDomains).
Notifiche di anomalie
- Le notifiche di anomalie vengono inviate all'argomento Pub/Sub solo quando viene raggiunta la soglia.
- Pub/Sub garantisce solo la distribuzione "at-least-once". Potresti ricevere un messaggio più volte e i messaggi potrebbero arrivare non in ordine.
- Se l'invio non va a buon fine a causa di una configurazione errata dell'argomento Pub/Sub, non riceverai alcuna notifica.
La consegna potrebbe non riuscire per uno dei seguenti motivi:
- L'argomento Pub/Sub non esiste più.
- L'account di fatturazione Cloud non dispone più dell'autorizzazione per pubblicare nell'argomento Pub/Sub.
- Hai superato la quota di notifiche.
- Hai implementato policy dell'organizzazione che limitano la condivisione delle risorse per dominio (nello specifico, il vincolo
iam.allowedPolicyMemberDomains).
Per saperne di più, consulta Pubblica e ricevi messaggi in Pub/Sub.
Passaggi successivi
Per scoprire di più su come utilizzare le notifiche programmatiche, esamina i seguenti esempi di risposte programmatiche per il controllo dei costi: