Questo documento spiega come configurare le notifiche programmatiche relative al budget e alle anomalie dei costi (anteprima) utilizzando Pub/Sub.
Budget e anomalie dei costi 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 controllare i costi. Puoi configurare e utilizzare le notifiche programmatiche per automatizzare le risposte sul controllo dei costi. Ecco alcuni esempi di risposte automatiche sul controllo dei costi:
- Eseguire l'integrazione con Slack per una risposta più rapida
- Gestire il consumo di risorse per ridurre i costi
- Limitare la spesa disattivando la fatturazione quando raggiungi il budget
Limitazioni
I budget utilizzano dati di fatturazione Cloud stimati, soggetti a modifiche fino alla finalizzazione della fattura.
Se imposti policy dell'organizzazione per limitare la condivisione delle risorse per dominio (in particolare, il vincolo
iam.allowedPolicyMemberDomains), potresti riscontrare un errore quando tenti di configurare o connettere argomenti Pub/Sub. In questa situazione, devi esentare il progetto contenente l'argomento Pub/Sub dal criterio 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, hai bisogno di un insieme diverso di autorizzazioni.
| 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 consentire ai ruoli personalizzati di 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 per la 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 Cloud Billing 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 programmatiche delle anomalie, 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) |
|---|
|
Per ottenere le autorizzazioni necessarie utilizzando i ruoli predefiniti, chiedi all'amministratore di concederti uno dei seguenti ruoli IAM per la 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 correlati alla fatturazione.
Fai clic su Crea argomento.
Nel campo ID argomento, fornisci un nome per l'argomento.
Mantieni le impostazioni predefinite di abbonamento e crittografia e fai clic su Crea.
Collega l'argomento Pub/Sub
Per attivare le notifiche programmatiche per ricevere 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 collegare 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 composte 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 dal 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 dell'avviso di 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 per l'utilizzo a partire da questo momento. Il primo giorno del periodo di tempo del budget (mese, trimestre, anno o un 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 alcuna 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 in questa valuta. |
Notifiche di anomalie
Attributi
Gli attributi sono coppie chiave-valore contenute in tutte le notifiche inviate da fatturazione Cloudg all'argomento Pub/Sub. Le notifiche contengono sempre il seguente set di coppie chiave-valore, indipendentemente dal payload della notifica.
| Nome attributo | Esempio | Descrizione |
|---|---|---|
| ambito |
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 dell'avviso 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 dell'importo 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. |
Invio delle notifiche a 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 di budget.
- Le notifiche Pub/Sub vengono inviate anche se l'account fatturazione Cloud non ha 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 in ordine sparso.
- Se la pubblicazione non riesce a causa di una configurazione errata dell'argomento Pub/Sub, non riceverai alcuna notifica.
La pubblicazione potrebbe non andare a buon fine per uno dei seguenti motivi:
- L'argomento Pub/Sub non esiste più.
- La fatturazione Cloud non è più autorizzata a pubblicare nell'argomento Pub/Sub.
- Hai superato la quota di notifiche.
- Sono in vigore policy dell'organizzazione che limitano la condivisione delle risorse per dominio (in particolare, il vincolo
iam.allowedPolicyMemberDomains).
Notifiche di anomalie
- Le notifiche di anomalia vengono inviate all'argomento Pub/Sub solo quando viene raggiunta la soglia.
- Pub/Sub garantisce solo la consegna "at-least-once". Potresti ricevere un messaggio più volte e i messaggi potrebbero arrivare in ordine sparso.
- Se la pubblicazione non riesce a causa di una configurazione errata dell'argomento Pub/Sub, non riceverai alcuna notifica.
La pubblicazione potrebbe non andare a buon fine per uno dei seguenti motivi:
- L'argomento Pub/Sub non esiste più.
- L'account di fatturazione Cloud non è più autorizzato a pubblicare nell'argomento Pub/Sub.
- Hai superato la quota di notifiche.
- Sono in vigore policy dell'organizzazione che limitano la condivisione delle risorse per dominio (in particolare, il vincolo
iam.allowedPolicyMemberDomains).
Per ulteriori informazioni, consulta la pagina Pubblica e ricevi messaggi in Pub/Sub.
Passaggi successivi
Per scoprire di più su come utilizzare le notifiche programmatiche, consulta i seguenti esempi di risposte programmatiche per il controllo dei costi:
- Ascoltare le notifiche
- Inviare notifiche a Slack
- Controllare l'utilizzo delle risorse con le notifiche
- Disattivare l'utilizzo della fatturazione con le notifiche