如何通过websocket向API网关发送请求?

时间:2020-05-22 12:00:45

标签: amazon-web-services aws-api-gateway

我用websocket创建了一个API网关。然后,我在$ connect路由中向我的lambda添加了请求/响应集成。然后,我将API部署到登台,可以看到在登台页面上生成了wsshttps URL。 然后,我使用wscat命令测试websocket连接:

wscat -c wss://xxxx.execute-api.ap-southeast-2.amazonaws.com/dev

但是我收到一个错误响应:error: Unexpected server response: 500

我在API上没有任何身份验证。而且我已经检查了我的lambda日志,它没有被调用。这意味着请求在API网关上失败。我的API网关可能是什么错误?

1 个答案:

答案 0 :(得分:0)

您将 $connect 路由集成到的 lambda 需要 apigateway 调用的权限。

添加以下权限:

负责人:apigateway.amazonaws.com

效果:允许

操作:lambda:InvokeFunction

还要为 API Gateway 启用 Cloudwatch 日志,以便在命中 lambda 之前更好地了解发生了什么情况。

阶段 -> 日志/跟踪 -> CloudWatch 设置 -> 启用 CloudWatch 日志