RainMaker 部署相关的问题
我已经完成了 RainMaker 服务的部署,但未收到任何关于部署详情的邮件。我该怎么办?
-
请检查邮件是否被归类到垃圾邮件文件夹中。
-
如果邮件不在垃圾邮件文件夹中,则需要进一步排查。确保已正确配置 RainMaker 区域的邮件发送服务,参考指南:配置简单电子邮件服务。
-
在 CloudFormation 控制台中,检查所有必要的 RainMaker 组件是否成功部署,具体操作请参考部署指南:后端部署验证。
-
如果所有必要的堆栈均已成功部署,可以通过 RainMaker 管理面板重置超级管理员密码。
密码重置步骤:
-
进入 RainMaker 管理面板的登录页面,点击
Forgot Password。 -
输入注册的超级管理员邮箱地址,系统会发送一个验证码到你的邮箱。
-
输入验证码,并设置新密码。
-
使用新密码登录 RainMaker 管理面板。
-
获取 RainMaker API URL(基础 URL)
-
使用管理员账号登录 RainMaker 管理面板。
-
进入
Deployment Settings标签页。
-
确定 API 网关类型:
-
REST 网关:默认的传统网关,适用于所有部署。
-
HTTP 网关:新推出的低成本网关(成本降低约 70%)。
注意:该网关需要用户迁移至新用户池,迁移步骤参考用户池迁移指南。
警告选择 HTTP 网关时,ESP API Rate Limiter不可用,这可能导致 API 被恶意用户滥用。
OAuth-only RainMaker 部署 只能使用 HTTP 网关。
-
-
选择所需的 API 端点。
-
如有任何疑问,请联系 ESP RainMaker 支持团队,邮箱地址为 esp-rainmaker-support@espressif.com。
ESP-RainMaker-Core 部署失败,如何解决 ?

-
登录 AWS 控制台。
-
在 AWS 控制台搜索
CloudFormation,然后选择serverlessrepo-ESP-RainMaker-Core。 -
进入
Resources标签页,搜索espstatsinfo,然后点击相关的堆栈链接。
-
打开
Events标签页,查找CREATE_FAILED状态信息。
-
如果错误信息与上图类似,则问题可能与 Lambda 并发数配额相关。请向 AWS 提交支持请求以解决此问题。
提交支持请求的步骤:
-
打开 AWS 控制台,搜索
Support。
-
点击
Create case。
-
选择
Service limit increase(请求增加服务使用配额),然后在Limit Type(配额类型)中选择Lambda,如下所示:
-
填写详细信息:

-
添加以下信息:
- 选择你的部署区域
- Limit: 并发请求数(预期持续时间 × 每秒预期请求数)
- New Limit Value: 1000

-
添加请求描述:
我们正在部署我们的产品:https://rainmaker.espressif.com/。 由于当前并发数配额设为 10,无法完成部署。 请将并发数配额提高到 1000。
-
提交请求。
在 CloudFormation 中找不到 ESP-RainMaker-Base-API 堆栈。
- ESP-RainMaker-Base-API 堆栈在 RainMaker 的初始部署后被禁用。
- 如果你需要清理并重新部署 RainMaker,请联系 Espressif RainMaker 团队申请访问权限,邮箱地址为 esp-rainmaker-support@espressif.com。
- 如果仅进行 RainMaker 升级,无需更新 ESP-RainMaker-Base-API 堆栈。
如何确认 v3.1.0 升级停机结束后系统是否正常运行?
-
登录 AWS 管理控制台。
-
打开
IoT Core AWS服务。 -
从左侧菜单中,展开
Security,点击Policies,然后选择esp-rainmaker-iot-policy。
-
如果
Active策略如下所示:
则表示系统正常运行,没有 MQTT 停机,并且设备已连接。
-
如果
Active策略看起来可能是仅连接策略:
请检查是否有任何
Inactive版本如下所示:
选择该
Inactive版本并点 击Set as Active。
如何恢复丢失的管理员节点组映射?
Issue Description
A node reset issue was present in all past releases, which incorrectly removed nodes from admin groups. If you are using OTA intended for any admin groups, such nodes will not receive the OTA update. This is fixed in v3.6.1. This issue occurred when:
- A node is reset to factory settings while connected to MQTT
- A new user onboards a node that was previously mapped to another user
Due to the long timeframe and manual operations that may have occurred since, it's infeasible to do a complete historical data correction with certainty about what was affected.
Recovery Scope
Node registration based groups (from v2.8.0 onwards):
- We can recover admin node group mappings from node registrations that occurred approximately 1 year ago, starting from release 2.8.0.
Dynamic groups:
- We will recover dynamic group mappings by regrouping all existing active nodes according to their
group_querycriteria (based onnode_type,node_model,node_fw_version).
Limitations
- Manual group modifications made during the 5-year period are not recoverable.
Recovery Script
Download the script:
Admin Node Group Mappings Recovery Script
How to Run (AWS CloudShell)
# 1. Download the script in CloudShell
wget https://esp-rainmaker-generic-315787942180.s3.us-east-1.amazonaws.com/scripts/restore_admin_node_group_mappings.py
# 2. Run in DRY RUN mode first (no changes made)
python3 restore_admin_node_group_mappings.py --region <your-region>
# 3. Run in LIVE mode to restore mappings
python3 restore_admin_node_group_mappings.py --region <your-region> --live
Output
- Console shows summary only
- Detailed log file:
restore_mappings_<admin_id>_<timestamp>.log - CSV report:
missing_mappings_<admin_id>_<timestamp>.csv
When Should I Run This Script?
- After upgrading to v3.6.1 or later: If you've been running RainMaker since v3.6.0 or earlier and have admin groups with nodes which you use for providing OTA updates, you should run this script once to restore any missing node-group mappings.
- If you notice missing nodes in admin groups: Run this script to check and restore the mappings.
The script runs in DRY RUN mode first to see what changes would be made. To apply the changes, run the script in LIVE mode with --live flag.