我用websocket创建了一个API网关。然后,我在$ connect路由中向我的lambda添加了请求/响应集成。然后,我将API部署到登台,可以看到在登台页面上生成了wss
和https
URL。
然后,我使用wscat
命令测试websocket连接:
wscat -c wss://xxxx.execute-api.ap-southeast-2.amazonaws.com/dev
但是我收到一个错误响应:error: Unexpected server response: 500
。
我在API上没有任何身份验证。而且我已经检查了我的lambda日志,它没有被调用。这意味着请求在API网关上失败。我的API网关可能是什么错误?
答案 0 :(得分:0)
您将 $connect 路由集成到的 lambda 需要 apigateway 调用的权限。
添加以下权限:
负责人:apigateway.amazonaws.com
效果:允许
操作:lambda:InvokeFunction
还要为 API Gateway 启用 Cloudwatch 日志,以便在命中 lambda 之前更好地了解发生了什么情况。
阶段 -> 日志/跟踪 -> CloudWatch 设置 -> 启用 CloudWatch 日志