API网关WebSocket API postConnection超时

时间:2019-02-12 11:41:20

标签: websocket aws-lambda aws-api-gateway

我正在尝试在 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,两者都是正确的。 我究竟做错了什么?有什么建议吗?

1 个答案:

答案 0 :(得分:0)

因此问题不是实际的lambda,而是不是在可以访问Internet的VPC中设置的事实。因此,如果您为lambda启用了VPC,请确保已设置了NAT网关和Internet网关。