使用AWS SAM的API网关中的request.body数组

时间:2020-09-10 01:50:38

标签: node.js websocket aws-lambda aws-api-gateway aws-sam

我正在尝试使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数组吗?

0 个答案:

没有答案