后端说明
后端组件
ESP RainMaker 部署中的后端组件有哪些?
在 ESP RainMaker 的部署中,后端组件负责提供云连接、设备管理、存储和用户账号服务。以下是主要后端组件的详细介绍。
1. MQTT Broker (AWS IoT Core)
-
作用:使用 MQTT 协议,在 IoT 设备与云端之间提供实时的双向通信。
-
工作原理:基于发布/订阅模型。设备与云服务可以发布消息到某个主题,也可以订阅某个主题以接收消息。
AWS IoT Core 还负责安全地处理身份验证、授权和消息路由。
-
示例:设备将传感器数据发布到主题
device/abc123/status→ AWS IoT Core 接收该消息 → 已订阅的云服务(如 Lambda 函数)处理消息 → 可选择将数据存入数据库或触发警报。
2. Lambda (AWS Lambda)
-
作用:运行后端逻辑或函数,无需管理服务器。
-
工作原理:基于事件驱动。当发生某些事件(如新的 MQTT 消息、API 调用或定时事件)时自动触发执行。
-
示例:用户在 App 中点击按钮打开设备 → 触发 Lambda 函数 → 函数向 MQTT Broker 发送控制命令 → 设备被打开。
3. S3(Amazon 简单存储服务)
-
作用:用于存储固件二进制文件、日志、配置文件或其他静态资源。
-
工作原理:设备或服务可在 S3 中通过安全 API 或签名 URL 上传、下载或读取文件。通常用于在 IoT 系统中托管 OTA 固件更新。
-
示例:后端为 S3 中的
firmware-v2.1.0.bin生成签名下载链接 → 设备使用该链接安全下载并执行 OTA 更新。
4. API 网关
-
作用:作为 App 或 Web 客户端发起的 HTTP 请求的入口。
-
工作原理:接收 API 请求并将其路由到相应的后端服务,通常是 Lambda 函数。
-
示例:移动应用向
/device/123/on发送请求 → API 网关接收请求 → 触发 Lambda → 向设备发送 MQTT 控制命令。
5. DynamoDB
-
作用:高速、可扩展的 NoSQL 数据库,用于存储结构化数据,如设备元数据、用户偏好设置和状态历史记录。
-
工作原理:Lambda 函数或其他后端服务可使用 AWS SDK 读取或写入 DynamoDB 表。支持键值和文档式存储,延迟较低。
-
示例:设备上报当前温度 → Lambda 函数通过 MQTT 接收数据 → 函数将
{device_id: "abc123", temp: 24.5}写入 DynamoDB 中的DeviceStatus表 → 移动应用稍后读取该数据以显示最新状态。
6. Cognito
-
作用:管理用户身份验证和授权,实现安全登录和对移动和网页 App 及 IoT 设备的访问控制。
-
工作原理:用户可通过电子邮件/密码、手机号或第三方平台(如 Google/Facebook)在 Cognito 中登录。Cognito 生成安全令牌 (JWT),用于访问后端 API 或 MQTT 主题。
-
示例:用户使用邮箱和密码登录 → Cognito 验证登录凭证 → 颁发身份令牌 → 移动应用使用该令牌调用 API 网关或订阅安全的 MQTT 主题。
后端配置
ESP RainMaker 是一个灵活且完整的解决方案,具备较高的自由度。用户可以利用各类配置,根据不同使用场景启用或禁用各项功能。在部署指南中,我们已经为部署者提供了推荐的默认配置。
若需咨询或直接修改特定配置项,请联系 esp-rainmaker-support@espressif.com
RainMaker 中的 AWS 服务默认配置与可配置特性
Espressif 的 RainMaker 云平台易于部署与扩展,底层 AWS 服务使用适用于大多数客户场景的默认设置。基于丰富的测试与部署经验,以下提供了一些配置参考建议。
默认 AWS 服务配置
-
AWS Lambda 并发数
建议在部署前将 Lambda 并发限制提升至 1000,以保证设备入网、消息处理和定时任务等操作的性能。如计划部署超过 百万台设备,应根据情况调整此限制。 -
Lambda 内存配置
Lambda 内存配置已根据 Espressif 内部基准测试优化,支持包括百万级设备的部署场景,一般无需额外修改。 -
Amazon DynamoDB 读写容量
默认配置为 40000 单位,足以支持常规使用。如需更高吞吐量,建议启用自动扩展或按需手动调整。 -
Amazon Cognito
默认配置已满足大部分设备身份认证与用户验证需求,一般无需额外更改。 -
AWS IoT Core
默认设置足以满足标准部署需求。如预计连接设备数量达到或超过百万级,建议评估连接数和消息吞吐等相关限制。 -
其他 AWS 服务
RainMaker 还使用了其他 AWS 服务来构建完整平台,通常可使用默认配置。若计划大规模部署,尤其是设备数量达到百万级别时,建议全面检查所有相关服务的限制以确保可扩展性。
RainMaker 支持的可配置功能
RainMaker 提供广泛的可配置项,以满足不同产品与部署需求。以下列出部分可自定义的特性:
- 消息模板
- Device Defender 配置
- API 调用频率限制
- 通知推送设置
- 日志级别
- 语音助手 集成
- API 透传服务
- 内部用户管理
- Webhooks
如有其他具体使用需求,可根据实际情况进一步自定义。
如需获取更详细的文档或大规模部署协助,请联系 esp-rainmaker-support@espressif.com。
中国与全球部署后端的差异
在中国区域部署 RainMaker 平台时,由于部分 AWS 服务在中国区域不可用,与全球云端后端存在一些差异和限制。以下是关键注意事项。
服务可用性与设计考量
-
AWS Cognito
在中国区域不可用。
→ 需要考虑替代方案用于用户身份管理。 -
身份验证协议
中国区域强制使用 OAuth 2.0 作为标准身份验证机制。 -
AWS 简单邮件服 务 (SES)
在中国区域不可用。
→ 若需邮件通知或通信,需考虑可替代的邮件发送服务。 -
AWS SNS 发送短信验证码 (OTP)
在中国区域不支持。
→ 可评估本地短信网关服务或其他替代方案用于 OTP 发送。 -
云对云集成
在中国可用,但不能依赖 AWS Cognito。
→ 若需云对云功能,可探索其他身份联合或集成方案。
针对中国市场的客户,建议在设计初期阶段就评估上述服务差异,并提前规划可替代的实现方式。乐鑫团队可协助制定合适方案并提供架构指导。