繁体   English   中英

如何将 AWS API 网关(处理 REST 调用)与 AWS IoT 核心接口

[英]How to interface AWS API Gateway (handling REST calls) with AWS IoT core

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

问题:

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

这种架构是最佳实践吗?

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

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

有两种处理这种交互的方法
一种。 Model 请求和响应作为主题

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

由于您没有 MQTT 支持,我认为这行不通。

b. 使用 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/

我建议使用AWS IoT HTTPS 端点,而不是提供您自己的 API 网关。

https://<iot-endpoint>/topics

iot-endpoint与您在 MQTT 中使用的相同,但现在使用 HTTPS 协议。

协议 支持的操作 验证 港口 ALPN 协议名称
HTTPS 仅发布 签名版本 4 443 不适用
HTTPS 仅发布 X.509 客户端证书 443† x-amzn-http-ca
HTTPS 仅发布 X.509 客户端证书 8443 不适用
HTTPS 仅发布 自定义认证 443 不适用

†使用 X.509 客户端证书身份验证连接到端口 443 的客户端必须实施应用层协议协商 (ALPN) TLS 扩展,并使用客户端发送的 ALPN ProtocolNameList 中列出的ALPN 协议名称作为ClientHello消息的一部分。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM