我正在尝试在AWS ApiGateway中设置一个非常简单的WebSocket模拟。但是,我尝试过的每一次尝试都会给我一个错误:
13:36:52 (X33uOGUfIAMFq7w=) Extended Request Id: X33uOGUfIAMFq7w=
13:36:52 (X33uOGUfIAMFq7w=) Verifying Usage Plan for request: X33uOGUfIAMFq7w=. API Key: API Stage: redacted/prod
13:36:52 (X33uOGUfIAMFq7w=) API Key authorized because route '$connect' does not require API Key. Request will not contribute to throttle or quota limits
13:36:52 (X33uOGUfIAMFq7w=) Usage Plan check succeeded for API Key and API Stage redacted/prod
13:36:52 (X33uOGUfIAMFq7w=) Starting execution for request: X33uOGUfIAMFq7w=
13:36:52 (X33uOGUfIAMFq7w=) WebSocket Request Route: [$connect]
13:36:52 (X33uOGUfIAMFq7w=) Client [UserAgent: null, SourceIp: redacted] attempts to connect to WebSocket API [redacted].
13:36:52 (X33uOGUfIAMFq7w=) Execution failed due to configuration error: statusCode should be an integer which defined in request template
13:36:52 (X33uOGUfIAMFq7w=) Client [UserAgent: null, SourceIp: redacted] failed to connect to API [redacted].
据我所知,我遵循了最基本的配置。我不需要任何响应或模板,只需一个简单的WebSocket连接,即可使我连接到该连接而无所事事,或者最终用ping
响应pong
请求。
所有授权和API密钥均已禁用。由于我不需要请求模板或集成响应,因此无需设置。同样,目标是仅具有可连接的哑WebSocket。
但是,每当我尝试连接到它时,上面的错误日志都会显示有关状态代码的500错误。
WebSocket connection to 'wss://redacted.execute-api.us-east-1.amazonaws.com/prod' failed: Error during WebSocket handshake: Unexpected response code: 500
答案 0 :(得分:3)
使用以下消息源(如下),我能够获得一个快速且宽松的示例AWS API Gateway连接,该示例使用带有Web套接字的MOCK端点进行工作。我确信可以将其清除掉,以更好地理解不同的请求/响应正文消息和代码。
$request.body.message
用于路由选择表达式 $connect
路线选择路由概述以返回到 $connect
概述页面,然后选择添加集成响应按钮
$disconnect
路线后,请在“ 路线”窗格下选择 $default
路线。
$connect
和 $disconnect
相同(步骤 7-11 )$default
下的 Integration Response ,我们将设置的路由响应与 $connect
略有不同和 $disconnect
,因为这2条路线的响应实际上在各自的集成响应中引用了 $default
响应。 / li>
200
,然后输入模板:{"statusCode" : 200, "connectionId" : "$context.connectionId"}
,然后单击“保存”按钮。
{"connectionId" : "$context.connectionId"}
已添加到响应有效负载中,以显示如何在响应中使用变量来表示连接的实际值。wss://#######.execute-api.us-east-1.amazonaws.com/Test
)wscat
,现在可以连接到我的WebSocket URL(请参见下面的源代码来安装wscat):wscat -c wss://#######.execute-api.us-east-1.amazonaws.com/Test
来源:
答案 1 :(得分:1)
我已经使用CloudFormation自动化了Woodrow描述的步骤,因此现在任何人都可以更轻松地重现它。 可以在以下位置找到模板:https://gist.github.com/maatthc/9d2dfe0448733f0ee1624d658fbac80f。 要使用它创建一个新的堆栈,您应该:
希望对您有帮助。
欢呼