常见问题与解答
为什么私有部署中无法使用 Claiming?
解答:
以下是私有 RainMaker 部署无法使用 Claiming 的主要原因:
- Self Claiming 需要单独的认证服务,仅能用于 ESP32-S2 芯片,所有 ESP32-S2 芯片的 eFuse 在制造过程中都编有密钥信息。但在私有部署中很难使用该认证服务。
- 在主机驱动或 Assisted Claiming 中,使用 Claiming 获取凭证的用户将被赋予管理权限,这并不适用于商业部署。
RainMaker 私有部署中不使用 Claiming(即在配网过程中注册),而使用预先烧录至模组上的凭证,并使用 RainMaker Admin CLI 在云后端服务中注册公共凭证。有多种生成和烧录凭证的方法:
- 从乐鑫购买预先配置好的模组,用 Admin CLI 注册凭证文件。
- 使用 Admin CLI 生成唯一的二进制文件并注册凭证。使用 esptool 将二进制文件逐一烧录至模组,或使用编程器一次烧录多个模组。
想要了解更多信息,请联系乐鑫销售人员。
我已经完成 RainMaker 部署,但并没有收到任何关于部署细节的邮件,我该怎么做?
解答:
请检查该邮件是否被归入您的垃圾邮件箱中。 如果在垃圾邮件箱中找不到该邮件,请参考以下解决方案:
请参考 设置邮件发送服务 小节,检查是否所有步骤都已完成,并确保与 RainMaker 部署在同一区域。
在控制台中打开 CloudFormation 并确保所需 RainMaker 组件均已成功部署,请参考 部署验证。
如果所有堆栈都已成功部署,您可以在 RainMaker 管理面板重置超级管理员的登录密码。
如何重置密码:
在 RainMaker 管理面板登录界面,选择
Forgot Password
。接着,您需要输入相关的电子邮件 ID。请输入超级管理员的电子邮件 ID,此邮箱将会收到一封包含验证码的电子邮件。
接着输入新密码和验证码。
完成后,您即可用新的凭证登录 RainMaker 管理面板。
为什么我在移动应用中无法使用谷歌登录?
解答:
为了正常使用谷歌登录,请确保您已在移动应用和 Cognito 或 RainMaker 管理面板中正确配置回调 URL。
在 Cognito 或 RainMaker 管理面板中配置的回调 URL(参考 配置 Cognito 回调 URL)应与移动应用中的配置相一致(参考 安卓配置、iOS 配置)。
例如,如果您的应用 ID 为 com.espressif.rainmaker,您用于安卓应用的回调 URL 应该为 rainmaker://com.espressif.rainmaker/success,用于 iOS 应用的回调 URL 应该为 com.espressif.rainmaker.app://success。
为什么我在移动应用中无法使用苹果登录?
解答:
为了正常使用苹果登录,请确保您已在移动应用和 Cognito 或 RainMaker 管理面板中正确配置回调 URL。
在 Cognito 或 RainMaker 管理面板中配置的回调 URL(参考 配置 Cognito 回调 URL)应与移动应用中的配置相一致(参考 iOS 配置)。
例如,如果您的应用 ID 为 com.espressif.rainmaker,您的回调 URL 应该为 com.espressif.rainmaker.app://success。
哪里可以找到第三方集成的回调 URL?
解答:
使用第三方登录需要使用回调 URL。
如果您尚未配置 Cognito 回调 URL,请参考 配置 Cognito 回调 URL。
要使用安卓应用第三方登录,请参考 设置重定向 URI。
要使用 iOS 应用第三方登录,请参考 添加 URL 方案。
您可以在 RainMaker 管理面板中找到每个应用客户端的回调 URL,具体步骤如下。
用超级管理员账号登录 RainMaker 管理面板。
在左侧菜单中,选择
Deployment Settings
。
- 打开
Cognito Configurations
。
- 您可以在
Cognito App Client Configurations
部分找到每个应用的回调 URL。
哪里可以找到用于手机应用配置的认证 URL?
解答: Alexa 的第三方登录和 App to App 账号关联需要使用认证 URL。要创建认证 URL,首先需要配置 Cognito 域。
如果您还未配置 Cognito 域,请参考 配置自定义域名。
您可以在 RainMaker 管理面板上查看您配置的域名,请参考以下步骤:
用超级管理员账号登录 RainMaker 管理面板。
打开
Deployment Settings
标签页。打开
Cognito Configurations
标签页。您可以在此处查看您的 Cognito 域名。
认证 URL 即在您的域名 URL 上添加 /oauth2。 注意,域名 URL 为完整的 HTTPS URL,而非仅仅为您的域名。
认证 URL:
https://<your_company_domain_name>.auth.<aws_region>.amazoncognito.com/oauth2
哪里可以找到手机应用配置的客户端 ID?
解答: 客户端 ID (Client ID) 是 RainMaker 用户池应用程序客户端的唯一标识符。
您可以在 RainMaker 管理面板的用户池应用客户端查看客户端 ID,具体步骤如下:
用超级管理员账号登录 RainMaker 管理面板。
打开
Deployment Settings
标签页。打开
Deployment Details
标签页。
Cognito Details
下App Client Id
字段显示的值即为您的客户端 ID。
哪里可以找到 Alexa 和 GVA 的客户端 ID?
用超级管理员账号登录 RainMaker 管理面板。
在左侧菜单选择
Deployment Settings
。
- 打开
Cognito Configurations
标签页。
- 记下名为
esp-rainmaker-alexa-skill
和esp-rainmaker-google-action
的客户端 ID。
哪里可以找到 Cognito 的自定义邮件模板?
解答:
您可以在 AWS Cognito 控制台找到自定义消息模板,具体步骤如下:
登录 AWS 控制台。
在 AWS 搜索栏中点击
Service
,搜索并打开Cognito
。
- 点击
Manage User Pools
。
- 搜索并点击打开
rainmaker-user-email-mobile-pool
。
- 点击
Message
选项,向下滚动页面找到自定义消息模板。
- 在自定义消息模板页面,您可以找到
SES region
、FROM email address ARN
、Email subject
、Email message
等字段并设置自定义信息的细节。
部署 ESP-RainMaker-Core 的过程中出现以下错误,我该怎么做?
解答:
- 登录 AWS 控制台。
- 在 AWS 控制台,搜索 "CloudFormation" 并点击
serverlessrepo-ESP-RainMaker-Core
。 - 打开
Resources
标签页,搜索 "espstatsinfo",点击espstatsinfo
堆栈链接。 - 打开
Events
标签页,搜索 "CREATE_FAILED"。 - 如果显示的错误信息如上图所示,那么错误与 lambda 并发有关。为了解决这一问题,您可能需要向 AWS 发送支持请求。
向 AWS 发送支持请求,请参阅以下步骤:
登录 AWS 控制台,搜索 "Support"。
点击
Create Case
。选择
Service limit increase
,并在Limit Type
下拉菜单中选择Lambda
,如下图所示:然后填写详细信息,如下图所示:
在
Requests
部分添加请求。Region
:选择您的部署区域。Limit
: 选择Concurrent Requests (Expected Duration * Expected Requests per Second)
New Limit Value
:1000
为您创建的案例添加描述。
We are trying to deploy our product: https://rainmaker.espressif.com/. Since the current limit for concurrency is set to 10 we are not able to deploy our product. Can you please set the concurrency limit to 1000.
(我们正在部署产品:https://rainmaker.espressif.com/ 。 但由于当前的并发数限制为 10,我们无法进行正常部署。 因此,能否请您将并发数限制设置为 1000?)
提交请求。
从 RainMaker 移动应用端链接至 Alexa 账号和 RainMaker 账号时,为什么需要在托管用户界面重新登录?
解答:
Account Linkng 过程需要从 AWS Cognito 获取 RainMaker 认证码。
为了获取认证码,用户需要在托管用户界面重新登录。
在 Alexa 账号关联过程中,如果取消了现有关联,而想用另一个账号进行关联,托管用户界面会使用缓存的浏览器数据重新登录。如何使用新的账号进行 Alexa 账号关联?
解答:
想要在托管用户界面登录新账号,您可以采取以下方式:
iOS 系统:
- 打开
设置
。 - 打开
Safari 浏览器
。 - 打开
高级
。 - 打开
网站数据
。 - 搜索 Oauth URL 的域名(例如 auth.rainmaker.espressif.com)。
- 向右滑动并点击
删除
。
安卓系统:
- 打开 Chrome 浏览器应用(即您正在使用的浏览器应用)。
- 点击
选项
菜单(即三个点组成的图标)。 - 打开
历史记录
。 - 点击
清除浏览数据
。 - 点击
清除数据
。
清除浏览数据后,下一次您使用 Alexa Account Linkng 时,托管用户界面中会显示登录界面,此时您可以登录新账号。
iOS 系统中的应用 Bundle ID 是什么?
解答:
Bundle ID 或捆绑标识符是苹果生态系统中应用的唯一标识符,不同应用的标识符都各不相同。
为避免冲突,苹果鼓励开发者使用反向域名符号 com.espressif.rainmaker.softap 来选择应用程序的捆绑标识符。iOS 系统中的 URL 方案是什么?
解答:
URL 方案 (URL Scheme) 提供了一种在应用中引用资源的方式。例如,用户在电子邮件中点击某一自定义 URL,就可以在指定环境中启动其应用。也可以在其他应用中通过特定的上下文数据来启动您的应用,例如,一个照片库应用可能会显示一个指定的图片。
有关 URL 方案的更多信息,请参考 此处。
iOS 系统中的应用组是什么?
解答:
应用组 (App Groups) 这一标识符用于指定您的应用所属于的组,允许由一个开发团队制作的多个应用程序访问共享容器并相互通信。一个应用可属于一个或多个应用组。
在 iOS 系统中,该标识符的格式如下:
group.<group name>
要为您的应用添加此标识符,请在 Xcode 中启用 App Groups 功能,并将您的应用添加到其所属的组中。
哪里可以找到 iOS Team ID?
解答:
- 前往 苹果开发者账号。
- 点击
Account
。 - 在左侧导航栏,点击
Membership
。 - 在
Membership Information
一栏中即可找到 Team ID。
为什么在 CloudFormation 中找不到 ESP-RainMaker-Base-API 堆栈?
解答:
- 初次部署 RainMaker 后,对 ESP-RainMaker-Base-API 堆栈的访问会被禁用。
- 如果需要清理并重新部署 RainMaker,请向乐鑫 RainMaker 团队 (esp-rainmaker-support@espressif.com) 申请访问 ESP-RainMaker-Base-API 堆栈。
- 如果只需升级 RainMaker,则无需升级 ESP-RainMaker-Base-API 堆栈。
已配置 iOS 推送通知,但移动端通知问题仍有问题,我该怎么做?
解答:
请仔细阅读下列操作,确保已按正确顺序完成所有推送通知配置步骤。
- 检查是否为主应用程序的 Bundle ID 创建了推送通知证书。
- 检查是否在 RainMaker 管理面板中创建了两个平台,即生产平台和沙盒平台。
- 检查 APNS_SANDBOX 通知是否在调试模式下运行。
- 从苹果开发者控制台检查证书是否过期。
- 检查是否在 RainMaker 管理面板中启用了推送通知事件。
尚未开始使用 RainMaker,但收到 AWS 电子邮件称“您的 AWS 免费层级限制已用完,无法使用 SQS 等服务”,我该怎么做?
RainMaker 使用 AWS SQS 队列和 lambdas 来处理队列中的消息,Lambda 会定期检查队列中的新消息。如果尚未开始使用 RainMaker,队列中不会产生消息。此时,lambda 轮询接收空消息,并将其计费为不返回消息的 ReceiveMessage 请求。即使未从 SQS 队列中发送或接收消息,这些接收的空消息也会按照 Amazon SQS 的定价收费。
开始使用 RainMaker 后,这些空消息的计数会自然减少。
AWS 参考链接:https://aws.amazon.com/premiumsupport/knowledge-center/sqs-high-charges/
乐鑫 RainMaker 支持团队要求对 AWS 控制台进行只读访问。如何创建对所有资源具有只读访问权限的 IAM 用户?
解答:
AWS 身份和访问管理 (IAM) 是安全管理 AWS 服务和资源访问的强大工具。请按照以下步骤创建 IAM 用户:
- 登录 AWS 控制台,在搜索框中输入 "IAM"。
- 在界面左侧的 IAM 面板中,前往
Users
并点击Add User
。 - 输入用户名,勾选
AWS Management Console access
复选框,允许用户访问 AWS 控制台。然后点击Next: Permissions
。 - 在
Permissions
页面,选择Attach existing policies directly
并输入ReadOnlyAccess
,筛选出可用策略,然后找到ReadOnlyAccess
策略并勾选旁边的复选框。然后点击Next: Tags
。
- 可以跳过
Tags
页面,点击Next: Review
继续配置。 - 查看只读账户用户的详细信息,确保其符合要求,然后点击
Create User
。 - 创建用户后即可访问他们的账号。点击
Download .CSV
获取必要信息,并确保安全存储密码。注意,秘密访问密钥和密码丢失后将无法恢复,若丢失,需要重置账号。 - 最后,共享用户账号及
Users with AWS Management Console access can sign-in at
下方提供的 URL 链接。
如何更改 RainMaker 超级管理员邮箱 ID?
解答:
不建议超级管理员用户使用个人邮箱 ID,请使用通用邮箱 ID。超级管理员用户是 RainMaker 部署中权限最高的用户,因此只有极少数人可以访问该通用电子邮箱。
例如,service@<company_domain_name>。如需更改 RainMaker 超级管理员邮箱 ID,需要通过 Postman 使用 change_super_admin swagger API。
- 在 Postman 中,使用当前超级管理员账号登录 RainMaker。
在 Postman 中,创建新的 API 请求:
PUT - {{url}}/v1/admin/change_super_admin
Header -
Key Value Authorization {{access_token}} Body -
{
"new_super_admin": "user@domain.com"
}
- 发起超级管理员电子邮箱更改请求后,当前超级管理员和新超级管理员的电子邮箱都将收到验证码,输入并确认验证码后才可以继续进行更改。
使用相同的 API 来确认更改请求。