我正在尝试在 API网关上设置 WebSocket API 。我正在遵循基本教程,并且一切都已启动并正在运行-> $connect
,$disconnect
,"test"
,$default
的路由。我可以连接到API,将connectionId存储在Redis中,并在从测试路由访问时检索它。
问题是当我尝试从lambda(单个lambda处理所有路由)发回邮件时。我正在使用以下代码
const apigwManagementApi = new AWS.ApiGatewayManagementApi({
apiVersion: '2018-11-29',
endpoint: `https://${event.requestContext.domainName}/${event.requestContext.stage}`
});
然后我打电话
await apigwManagementApi.postToConnection({
ConnectionId: connectionId,
Data: `Echo: ${data}`
}).promise()
这仅在“测试”路线上被调用。
所有这些均按照其指南进行。根据他们的教程,我不得不添加patch
才能使postConnection
正常工作。问题是调用上述方法时,我从API网关收到一条Internal Server Error
消息,而lambda在3秒后超时。
关于此方法的信息很少。我不确定是什么原因导致内部服务器错误。我已经检查了端点和connectionId,两者都是正确的。 我究竟做错了什么?有什么建议吗?
答案 0 :(得分:0)
因此问题不是实际的lambda,而是不是在可以访问Internet的VPC中设置的事实。因此,如果您为lambda启用了VPC,请确保已设置了NAT网关和Internet网关。