如何排查 API Gateway WebSocket API 连接错误?

2 分钟阅读
0

我尝试连接到我的 Amazon API Gateway WebSocket API,但我收到了错误消息。如何排查我的 WebSocket API 连接问题?

简短描述

API Gateway WebSocket API 连接错误可能由于以下原因而发生:

  • 权限不足,无法向后端发出请求
  • API ID、AWS 区域和 API 阶段的字段不正确
  • 后端集成错误
  • AWS Identity and Access Management (IAM) 身份验证错误

解决方法

请按照您的使用案例执行以下排查步骤。

确认 WebSocket API 具有向后端发出请求所需的权限

API Gateway 使用 IAM 角色、策略、标签和 AWS Lambda Authorizer 来控制对 WebSocket API 的访问。有关更多信息,请参阅在 API Gateway 中控制和管理对 WebSocket API 的访问

此外,请确保 WebSocket API 集成请求配置正确。

确认请求已发送到正确的 API ID、AWS 区域和 API 阶段

在此请求 URL 示例中,确保以下字段正确:

wss://a1b2c3d4e5.execute-api.us-east-1.amazonaws.com/production
  • The WebSocket API ID "a1b2c3d4e5"。
  • AWS 区域 "us-east-1"。
  • API 阶段名称 "production" 存在。

查看 CloudWatch 日志是否有错误

按照说明开启 Amazon CloudWatch Logs,对 API Gateway WebSocket API 进行问题排查。如果为后端集成了 Lambda 函数,请检查 CloudWatch Logs 中是否有错误。有关更多信息,请参阅访问 AWS Lambda 的 CloudWatch Logs

如果 API 方法已启用 IAM 身份验证,请确认 API 请求是否已签名

如果启用了 IAM 身份验证,请确保使用签名版本 4(SigV4)对 API 请求进行签名。有关更多信息,请参阅使用签名版本 4 对 AWS 请求进行签名

要为您的 API Gateway API 启用 IAM 身份验证,请按照以下步骤操作:

  1. API Gateway 控制台中,选择您的 API 的名称。
  2. 资源窗格中,选择您想要用于激活 IAM 身份验证的方法(例如 GETPOST)。
  3. 方法执行窗格中,选择方法请求
  4. 设置下,对于授权,选择铅笔图标(编辑)。从下拉列表中选择 AWS_IAM,然后选择复选标记图标(更新)。
  5. (可选)对您想要用于激活 IAM 身份验证的每个 API 方法重复步骤 2-4。
  6. 部署您的 WebSocket API 以使更改生效。

相关信息

使用 CloudWatch 指标监控 WebSocket API 的执行

使用 API Gateway Lambda Authorizer

如何排查使用 Lambda Authorizer 与 API Gateway REST API 时遇到的 HTTP 403 禁止访问错误?

如何排查连接至 API Gateway 私有 API 端点时出现的问题?

AWS 官方
AWS 官方已更新 1 年前