首页 > 解决方案 > 如何将 AWS API Gateway(处理 REST 调用)与 AWS IoT 核心接口

问题描述

我需要通过 AWS API 网关(不支持 MQTT)连接一些传感器,并且我想使用 AWS IoT Core 服务提供的规则,以便在 DynamoDB 中插入新设备、存储数据等......系统的通用架构将是这样的。 在此处输入图像描述

问题:

  1. 这种架构是最佳实践吗?
  2. 我如何实际将 API 网关与 IoT 核心接口?我知道有 lambda,但正如您在此处看到的,网关和 IoT 核心之间没有 lambda 连接,所以我很迷失在这里。

标签: amazon-web-servicesrestmqtt

解决方案


这种架构是最佳实践吗?

这种架构很有意义,类似于 AWS 的 Well Architected IOT Lens。根据您的流量,最好先将数据摄取到 firehose,然后聚合到 DDB。 https://docs.aws.amazon.com/wellarchitected/latest/iot-lens/welcome.html

我如何实际将 API 网关与 IoT 核心接口?我知道有 lambda,但正如您在此处看到的,网关和 IoT 核心之间没有 lambda 连接,所以我很迷失在这里。

有两种处理这种交互
的方法。将请求和响应建模为主题

设备调用:cmd/application/getSomething/deviceId/req
服务发布:cmd/application/getSomething/deviceId/res

由于您没有 MQTT 支持,我认为这不会起作用。

湾。使用 AWS IOT 承担角色功能。在这里,您将设置一个有权访问受 IAM 保护的 ApiGW 的角色。您将担任该角色,然后像往常一样调用 ApiGW。https://docs.aws.amazon.com/iot/latest/developerguide/authorizing-direct-aws.html

或者,您可以探索 ApiGW 的双向 TLS,并使用设备证书对 ApiGW 进行身份验证。
https://aws.amazon.com/blogs/compute/introducing-mutual-tls-authentication-for-amazon-api-gateway/


推荐阅读