我已经使用 API Gateway 配置了一个 WebSocket API,并试图为其配置一个自定义域名。这是一个非常简单的 API,用于在连接的客户端之间发送消息,将连接 ID 存储在 DynamoDB 中。本质上,它类似于此处演示的示例:https ://aws.amazon.com/blogs/compute/announcing-websocket-apis-in-amazon-api-gateway/
使用 AWS 生成的 URL 即 wss://.execute-api.us-west-2.amazonaws.com/ 时一切正常。但是,当我按照AWS 的这些说明设置自定义区域域名时,我可以连接但无法在客户端之间发送消息。
我检查了我的 Lambda 函数的 Cloudwatch 日志,没有看到任何错误,并尝试使用我的 CloudFormation 模板启动一个全新的环境,但无济于事。
很清楚,以下连接命令会正确触发我的 Lambda 函数,并使用 AWS 生成的 URL 和我在 Route 53 中的 URL 连接我的客户端。
wscat -c wss://<endpoint> <payload>
以下命令向连接的客户端发送消息,使用 AWS 生成的 URL 但不是我自己的。
{ "message": "sendMessage", "toId": "193818", "data", "a random msg" }