設定高級計費警報和邏輯

雖然簡單的預算提醒電子郵件是接收帳單更新的相對簡單的方法,但有時您可能想要建立包含更多自訂邏輯的更複雜的提醒。這裡有兩種需要考慮的方法:

  • 使用雲端監控創建更複雜、更及時的警報

  • 使用計費 Pub/Sub 通知以及相應的 Cloud Function 建立自訂行為以回應支出變化

雖然這兩種技術都需要您做更多的工作,但它們使您能夠準確控制您收到的警報類型以及如何回應它們。

本頁概述了每種方法。

使用 Cloud Monitoring 建立更複雜的警報

當您的整體帳單達到特定門檻時,簡單的預算提醒電子郵件會讓您知道。然而,您可能還想知道個別服務是否意外增加——在它們有機會顯著影響您的預算之前。對於此類更複雜的用例,我們建議您了解 Cloud Monitoring,這是一個可用於您的 Firebase 專案的 Google Cloud 工具。

Cloud Monitoring 對於多種不同類型的警報很有用:

  • 如果您的專案所依賴的資源不可用(對於 Firebase 和 Google Cloud 服務,甚至對於 AWS 等外部服務)

  • 如果 Cloud Functions 等服務的回應時間比預期長

  • 如果您的 Cloud Storage 儲存桶、即時資料庫執行個體或 Cloud Firestore 執行個體會拒絕太多要求(這表示您的 Firebase 安全規則可能不正確)。

  • 如果您的某些 Firebase 產品使用的資源量已增加到超過特定閾值

透過 Cloud Monitoring 建立的警報通常比簡單的預算警報電子郵件發送得更快,簡單的預算警報電子郵件通常每天發送一次。警報可以採用 SMS 訊息、Slack 通道訊息、PagerDuty 通知、Webhook 等形式。這些選項使您能夠發送具有更高、更可操作的可見性等級的警報。

使用雲端監控

要開始使用 Cloud Monitoring,我們建議從Metrics Explorer開始,它允許您在 Firebase/Google Cloud 專案中建立自訂指標圖表並視覺化其使用情況。

具體來說,您可以查看 Cloud Firestore、即時資料庫或 Cloud Function 執行個體等資源。您可以查看這些產品的使用資訊(例如文件讀取數、傳送位元組數或函數呼叫數),這些資訊會對您的帳單產生影響。

當您在 Metrics Explorer 中輕鬆視覺化資源使用後,我們建議您針對最關心的指標建立警報策略。以下是一些警報策略範例:

  • 若30分鐘內文檔讀取次數大於特定值

  • 如果特定資源(如函數呼叫)的使用量在特定時間範圍內似乎增加得太快

建立額外的計費邏輯

當您的預算達到特定閾值時,預算提醒會自動發送電子郵件,但對於更複雜的提醒或對支出增加的程式反應,您可以考慮基於 Google Cloud Pub/Sub 訊息設定額外的自訂邏輯。

例如,您可以向 Slack 頻道或透過簡訊發送提醒,或根據支出等級對您的應用程式或項目進行程式設計變更。

Pub/Sub 是一種訊息傳遞服務,允許其他服務透過稱為 Pub/Sub 主題的通道以非同步方式傳送訊息(通常以 JSON 資料的形式)。您可以設定授權服務(例如 Cloud Functions)來偵聽這些主題中的訊息並對資料採取適當的操作。

請注意,無論您的計費使用情況是否發生變化,計費的 Pub/Sub 通知大約每 20 分鐘發送一次,並且它們是無狀態的(意味著它們不提供有關先前內容的上下文)。如果您想追蹤一段時間內支出的異常成長,或將您的支出與上一個週期進行比較,您將需要使用 Cloud Firestore 或即時資料庫等資料庫自行管理歷史資料。

將 Pub/Sub 主題與 Cloud Functions 結合使用

您可以為結算資料設定 Pub/Sub 主題,方法是在 Google Cloud 控制台中存取與您的 Firebase 專案關聯的預算(在「結算」 > 「預算與提醒」下),然後點擊「將Pub/Sub 主題連接到此預算」的複選框。這將創建一個您可以稍後收聽的 Pub/Sub 主題。有關詳細步驟,請參閱完整文件

建立 Pub/Sub 計費主題後,您可以編寫一個 Cloud Function 來偵聽該主題並對資料採取對應的操作。資料以 JSON 資料形式發送,並包含有用的信息,例如您到目前為止已花費的金額、預算金額以及當前計費週期的開始日期。

Google Cloud 文件提供了有關如何使用 Cloud Function 接收此資料的完整詳細資訊。但是,如果您使用 Cloud Functions for Firebase 來部署函數,則一般流程會更簡單一些(請查看Firebase 文件)。您還可以參考此視頻,以了解該過程的範例演練。

收到此數據後,您可以透過多種不同的方式對其做出回應。以下是一些選項: