尝试调用 websocket 时出现 403
Getting a 403 when trying to call a websocket
嘿,我有一个 Web 套接字部署到 AWS API 网关,带有自定义域和 lambda 支持它。尝试通过我的 angular 应用与其交互时,我在网络控制台中不断收到此错误:
WebSocket connection to 'wss://customDomain/' failed: Error during WebSocket handshake: Unexpected response code: 403
我在 API 网关的日志中没有看到任何东西试图攻击它,并且在 lambda 端没有函数调用。
我有一个网关部署,我能确定的是一切都设置正确。我正在尝试使用 AWS-CDK 将这个 apigateway 从一个共享的遗留 AWS 帐户移动到一个新帐户,这样我就可以从代码级别确认设置应该是正确的。
这里的错误是由于需要部署API网关导致的。添加自定义域后,我为分配给自定义域的阶段创建了一个新部署。
使用 CDK 时,您还可以通过在 CfnStage
定义中设置 autoDeploy: true
来将阶段设置为根据更改自动部署。这就是我最终所做的。
除了 Jared 的回答(我很感激,因为我被难住了好几天)这是一个例子,说明如果使用 @aws-cdk/aws-apigatewayv2-alpha
中的 WebSocketStage
,它在你的代码中会是什么样子:
new WebSocketStage(scope, 'WebSocketStage', {
webSocketApi,
stageName: 'your-env-name',
autoDeploy: true,
});
嘿,我有一个 Web 套接字部署到 AWS API 网关,带有自定义域和 lambda 支持它。尝试通过我的 angular 应用与其交互时,我在网络控制台中不断收到此错误:
WebSocket connection to 'wss://customDomain/' failed: Error during WebSocket handshake: Unexpected response code: 403
我在 API 网关的日志中没有看到任何东西试图攻击它,并且在 lambda 端没有函数调用。
我有一个网关部署,我能确定的是一切都设置正确。我正在尝试使用 AWS-CDK 将这个 apigateway 从一个共享的遗留 AWS 帐户移动到一个新帐户,这样我就可以从代码级别确认设置应该是正确的。
这里的错误是由于需要部署API网关导致的。添加自定义域后,我为分配给自定义域的阶段创建了一个新部署。
使用 CDK 时,您还可以通过在 CfnStage
定义中设置 autoDeploy: true
来将阶段设置为根据更改自动部署。这就是我最终所做的。
除了 Jared 的回答(我很感激,因为我被难住了好几天)这是一个例子,说明如果使用 @aws-cdk/aws-apigatewayv2-alpha
中的 WebSocketStage
,它在你的代码中会是什么样子:
new WebSocketStage(scope, 'WebSocketStage', {
webSocketApi,
stageName: 'your-env-name',
autoDeploy: true,
});