推送订阅者是一种 Pub/Sub 订阅者,其中消息会从 Pub/Sub 发送到用户指定的 HTTPS 端点。用户通过向推送服务器的请求返回 HTTP 200 响应来确认推送的消息。本文档提供了有关 Pub/Sub 推送订阅的一些常见问题排查提示。如需详细了解推送订阅,请参阅推送订阅者指南。
为了有效监控 Pub/Sub 订阅,建议您先查看传送延迟时间运行状况得分 (subscription/delivery_latency_health_score
),了解哪些因素可能会导致意外延迟时间。
推送端点失败或速度缓慢
如果端点返回错误响应代码,则系统会认为消息传送失败,并稍后重试。这可能会导致端点收到重复的消息。
您可以使用多种指标来监控推送订阅。Cloud 指标中的 subscription/push_request_count
指标按 response_code
和 response_class
对来自推送端点的响应进行分类。这些响应对于识别潜在的终端故障非常有用。如果此指标的数据的 response_class
不是 ack
,这表示推送端点向 Pub/Sub 返回错误。最常见的错误包括:
deadline_exceeded
响应类表示推送端点未在所需的确认 (ack) 截止期限内响应。subscription/push_request_latencies
指标有助于跟踪推送 ACK 延迟时间。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 文档。