排查推送订阅问题

推送订阅者是一种 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-SC 边界内推送订阅的限制

如果项目中启用了 VPC Service Controls (VPC-SC) 保护,则创建推送订阅会受到限制。现有推送订阅会继续正常运行,但当您创建新的推送订阅时,会看到以下错误:Request is prohibited by organization's policy。具体来说,只有在推送端点是使用默认 run.app 网址的 Cloud Run 服务时,才能创建新的推送订阅。如需了解详情和具体限制,请参阅 Pub/Sub 文档VPC-SC 文档