本页面介绍了如何解决载荷解封方面的问题。
HTTP 状态代码错误
使用载荷解封时,可能会发生常见的 HTTP 状态代码错误。
您可以使用 push_request_count
指标监控错误。
400 错误请求
当 Pub/Sub 无法处理请求时,会出现以下错误 或数据缺失问题导致的
400 Bad Request
导致此错误的原因有很多。以下是一些最常见的 导致错误的常见原因:
- 载荷(消息数据)与指定的预期请求格式不匹配 通过 HTTP 端点发送
- 缺少处理请求所需的标头。
- 为订阅配置的 HTTP 端点不正确。
如需解决此问题,请尝试以下解决方案:
- 检查载荷(消息数据)的格式。请确保其与 HTTP 端点指定的预期请求格式。
- 检查请求是否包含所需的标头。如果缺少标头
您可能需要在消息属性中添加这些属性例如
Content-Type
,但可能还需要其他属性。 - 确认为订阅配置的 HTTP 端点有效。
- 启用死信队列 (DLQ) 。这会重定向 。如果您看到少量 400 错误,则启用 DLQ 会很有帮助 您想要检查的数据。
401 未授权 / 403 已禁止
当 Pub/Sub 无法处理请求时,会出现以下错误 或由于凭据不正确或无效而引发的。
401 unauthorized / 403 forbidden
出现此错误的原因是推送订阅未经身份验证。
如需解决此问题,请尝试以下解决方案:
启用推送身份验证。使用推送 与 Google Kubernetes Engine 集成 Cloud Run 或 App Engine
如果您的解决方案无法推送身份验证,您可能需要 在发布消息属性中添加您自己的授权密钥或 API 密钥。
415 不支持的媒体类型
当 Pub/Sub 无法处理请求时,会出现以下错误 因为载荷格式不受支持。
415 Unsupported Media Type
导致此错误的原因有很多。下面是一些 导致错误的常见原因:
- 端点缺少必需的媒体类型标头。
如需解决此问题,请尝试以下解决方案:
- 您的端点可能需要
Content-Type
标头。默认情况下 解封装,不会设置媒体类型标头。您 您可以设置Content-Type
标头,只需将其附加为发布消息属性即可。
431 请求标头字段过大 / 413 内容过大
当 Pub/Sub 无法处理请求时,会出现以下错误 因为请求中发送的内容过大。
431 request header fields too Large / 413 content too large
如果 Pub/Sub 中的属性 邮件超出了邮件的标头限制大小 服务器。
如需解决这些问题,请尝试以下解决方案:
- 关闭写入元数据。
- 启用死信队列 (DLQ) 。这会重定向 。此后,您的订阅将继续有效, 将有错误重定向到单独的主题以供进一步分析。
检查是否已启用载荷解封
在 Google Cloud 控制台中,进入订阅页面。
点击您的服务名称。
系统会打开服务详情页面。
在配置表中,找到以下值:邮件数据 解封装和写入消息元数据。
载荷封装的状态(启用或停用)显示在 相应的表格行。
后续步骤
- 如果您仍然遇到载荷解封方面的问题,请参阅获取支持。