如何使用 Amazon API Gateway WebSocket API 对 410 GoneException 错误进行故障排除?

1 分钟阅读
0

我想对在向我的 Amazon API Gateway WebSocket API 发布消息时出现的“410 GoneException”错误进行故障排除。

简短描述

由于以下原因,您可能会收到“410 GoneException”错误:

  • 在建立连接之前向 WebSocket API 发布了一条消息
  • 连接已终止或不存在
  • 客户端断开连接,然后尝试使用相同的 connectionId 重新连接
  • 连接 ID 无效

**注意:**对于 WebSocket API,需要使用 connectionId 才能从后端发送回调响应。

解决方法

要对 WebSocket API 错误进行故障排除,请开启 Amazon CloudWatch Logs。对于 Log level(日志级别),选择 Info(信息)以针对所有请求生成执行日志。执行日志包含可用于识别多数 API 错误和对其进行故障排除的信息。例如:

有关详细信息,请参阅用于 API Gateway 的 CloudWatch 日志格式

要建立连接,请在向 WebSocket API 发布消息之前,使用 AWS SDK ApiGatewayManagementApi 调用 getConnection 操作。

请勿从与您的 $connect 路由集成的 Lambda 函数发出 postToConnection 请求。要在建立客户端连接后发布消息,请完成以下步骤:

  1. 创建由父函数异步调用的 Lambda 子函数。
  2. 启动新连接。然后,$connect 路由被调用,父函数调用传递 connectionId 的子函数。
  3. Lambda 子函数接收 connectionId 并调用 getConnection 操作来验证连接是否有效。
  4. 使用 postToConnection 方法发送消息。

相关信息

API Gateway 中的 WebSocket API 概览

如何将 connectionId 或自定义令牌作为 API Gateway WebSocket API 的标头传递给 VPC 链接集成?

AWS 官方
AWS 官方已更新 2 个月前