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

问题描述

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

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)