排解推送訂閱問題

推送訂閱者是 Pub/Sub 訂閱者的一種,訊息會從 Pub/Sub 傳送至使用者指定的 HTTPS 端點。使用者會對推送伺服器的要求傳回 HTTP 200 回應,藉此確認已收到推送訊息。本文提供 Pub/Sub 推送訂閱的常見疑難排解提示。如要進一步瞭解推送訂閱,請參閱推送訂閱者指南

如要有效監控 Pub/Sub 訂閱項目,建議先查看傳送延遲健康狀態分數 (subscription/delivery_latency_health_score),確認哪些因素可能導致非預期的延遲。

推送端點失敗或速度緩慢

如果端點傳回錯誤回應代碼,系統會將訊息傳送視為失敗,並在稍後重試。這可能會導致端點收到重複訊息。

您可以使用多項指標監控推送訂閱項目。Cloud Metrics 中的 subscription/push_request_count 指標會依據 response_coderesponse_class,將推送端點的回應分類。這些回應有助於找出潛在的端點故障。如果這項指標的資料包含 response_class 以外的 ack,表示推送端點正在將錯誤傳回 Pub/Sub。常見錯誤包括:

  • deadline_exceeded 回應類別表示推送端點未在必要確認 (ack) 期限內回覆。subscription/push_request_latencies 指標有助於追蹤推送確認延遲。

  • invalid 回應類別表示端點傳回的回應,Pub/Sub 無法理解或正確處理。

  • remote_server_4xx 回應類別通常表示驗證或權限問題。這些是端點傳回的 HTTP 回應代碼,因此請查看傳回此回覆代碼的情境。如果已啟用驗證,請確認您的帳戶在端點上具備適當權限。進一步瞭解如何透過推播訂閱項目進行驗證

  • remote_server_5xx 回應類別表示端點的伺服器端發生問題。端點無法處理要求。這可能是因為系統正在維護或發生中斷。查看代管端點的伺服器狀態。

  • unreachable 回應類別表示完全無法連上端點伺服器。檢查端點網址是否拼寫錯誤。

進一步瞭解 Pub/Sub API 最常見的錯誤代碼

虛擬私有雲服務範圍內的推送訂閱限制

如果專案已啟用 VPC Service Controls (VPC-SC) 保護機制,建立推送訂閱項目時會受到限制。現有的推送訂閱項目仍可正常運作,但建立新的推送訂閱項目時,會看到 Request is prohibited by organization's policy 錯誤。具體來說,只有在推送端點是使用預設 run.app 網址的 Cloud Run 服務時,才能建立新的推送訂閱項目。如需更多詳細資料和具體限制,請參閱 Pub/Sub 說明文件VPC-SC 說明文件