雖然預算快訊是接收帳單更新資訊的相對簡單方式,但有時您可能需要建立更複雜的快訊,其中包含更多自訂邏輯。以下是兩種建議做法:
使用 Cloud Monitoring 建立更精細、更即時的快訊
使用帳單 Pub/Sub 通知和對應的 Cloud 函式,建立自訂行為來因應支出變化
雖然這兩種技術都需要您投入更多心力,但您能完全掌控要接收的快訊類型,以及如何回應。
本頁將概略說明這些做法。
使用 Cloud Monitoring 建立更精密的警告
當整體帳單金額達到特定門檻時,系統會傳送簡單的預算快訊電子郵件通知您。不過,您可能也想知道個別服務是否意外增加,以免預算受到重大影響。對於這類更複雜的用途,建議您瞭解 Cloud Monitoring,這是 Firebase 專案可用的 Google Cloud 工具。
Cloud Monitoring 適用於多種不同類型的快訊:
專案依賴的資源無法使用 (包括 Firebase 和 Google Cloud 服務,甚至 AWS 等外部服務)
如果 Cloud Functions 等服務的回應時間超出預期
如果 Cloud Storage bucket、Realtime Database 執行個體或 Cloud Firestore 執行個體拒絕過多要求 (表示 Firebase Security Rules 可能不正確)。
如果部分 Firebase 產品使用的資源量超過特定門檻
透過 Cloud Monitoring 建立的快訊通常會比基本預算快訊電子郵件更快傳送,後者通常每天傳送一次。快訊可以採用簡訊、Slack 頻道訊息、PagerDuty 通知、Webhook 等形式。這些選項可讓您傳送更清楚、更具行動價值的快訊。
正在使用 Cloud Monitoring
如要開始使用 Cloud Monitoring,建議先從Metrics Explorer著手,在 Firebase/Google Cloud 專案中建立自訂指標圖表,並以視覺化方式呈現指標用量。
具體來說,您可以查看 Cloud Firestore、Realtime Database 或 Cloud 函式執行個體等資源。您可以查看這些產品的使用資訊 (例如文件讀取次數、傳送的位元組數或函式叫用次數),這些資訊會影響帳單。
在Metrics Explorer中熟悉資源用量的視覺化呈現後,建議您針對最重視的指標建立警告政策。以下是警告政策範例:
30 分鐘的時間範圍內的文件讀取次數大於特定值
如果特定資源 (例如函式叫用) 的用量在某個時間範圍內似乎增加過快
建立其他計費邏輯
當預算達到特定門檻時,預算快訊會自動傳送電子郵件,但如要針對支出增加設定更複雜的快訊或程式輔助反應,建議您根據 Google Cloud Pub/Sub 訊息設定額外的自訂邏輯。
舉例來說,您可以將快訊傳送至 Slack 頻道或透過簡訊傳送,也可以根據支出層級,以程式輔助方式變更應用程式或專案。
Pub/Sub 是一項訊息傳遞服務,可讓其他服務透過稱為 Pub/Sub 主題的管道,以非同步方式傳送訊息 (通常是 JSON 資料)。您可以設定 Cloud Functions 等授權服務,監聽這些主題中的訊息,並對資料採取適當行動。
請注意,無論帳單用量是否變更,系統大約每 20 分鐘就會傳送一次帳單 Pub/Sub 通知,而且這些通知不含狀態 (也就是說,通知不會提供先前的相關背景資訊)。如要追蹤支出是否異常增加,或與上個週期比較,您必須使用 Cloud Firestore 或 Realtime Database 等資料庫,自行管理歷來資料。
搭配使用 Pub/Sub 主題和 Cloud Functions
如要為帳單資料設定 Pub/Sub 主題,請在 Google Cloud 控制台 (依序前往 「Billing」>「Budgets and alerts」) 中,前往 與 Firebase 專案相關聯的預算,然後勾選 「Connect a Pub/Sub topic to this budget」核取方塊。系統會建立 Pub/Sub 主題,供您稍後聆聽。如需詳細步驟,請參閱完整說明文件。
建立 Pub/Sub 帳單主題後,您可以編寫 Cloud 函式來監聽帳單主題,並據此對資料採取行動。資料會以 JSON 資料的形式傳送,其中包含實用資訊,例如目前已支出的金額、預算金額,以及目前帳單週期的開始日期。
Google Cloud 說明文件詳細說明如何使用 Cloud 函式接收這項資料。不過,如果您使用 Cloud Functions for Firebase 部署函式,一般程序會稍微簡單一些 (請參閱 Firebase 說明文件)。您也可以觀看這部影片,瞭解流程範例。
收到這項資料後,您可以透過多種方式回應。建議的方法如下:
當支出達到特定門檻時,系統會傳送快訊至 Slack 頻道、Discord 頻道,或透過簡訊傳送。
比較支出與歷來資料,並在發現異常時發出警示。
如果帳單金額過高,請使用 Remote Config 變更應用程式。
透過程式輔助方式從帳戶中移除計費服務,徹底停用 Firebase 專案。