我正在尝试使API Gateway WebSocket与某些IoT Web套接字一起使用。目前,数据以如下数组的形式提供给我们:
[2, messageId (string), action (string), payload (object)]
我想基于action
值(一个字符串)选择一条路由。在我的template.yaml
文件中,添加了以下内容来定义我的API:
StationWebSocketApi:
Type: AWS::ApiGatewayV2::Api
Properties:
Name: StationWebSocketApi
ProtocolType: WEBSOCKET
RouteSelectionExpression: '$request.body[2]'
但是,每发送一个请求,都会出现以下错误:
{"message": "Forbidden", "connectionId":"xxx", "requestId":"xxx"}
如果我将RouteSelectionExpression
更改为request.body.action
之类并发送以下内容:
{"action": "test"}
一切正常。即使API网关是有效的JSON,它也无法处理JSON数组吗?