概述
本指南介绍了如何使用 AWS SAM 和 CloudFormation StackSets 部署集成第三方的堆栈,从而集成 Alexa/GVA 和 RainMaker。关键集成内容包括:为 Alexa 和谷歌创建的 Cognito 应用客户端、处理语音助手指令的 Lambda 函数,以及满足认证要求的必要附加组件。
组件说明
该部署主要包括以下堆栈:
-
为 Alexa 和 GVA 创建的 AWS Cognito 应用客户端(ESP-RainMaker-3p-CognitoClients)
- 创建用于 Alexa skill 和 Google Action 的 AWS Cognito 应用客户端。
-
Alexa Smart Home Skill 和谷歌 Smart Home Action 在三个区域的部署(ESP-RainMaker-3P-Integrations)
- 部署处理来自 Alexa 和谷歌语音助手指令的 Lambda 函数。
-
Alexa Smart Home Skill 和 Google Action 的附加扩展模块
-
Google Action:附加模块仓库提供了一个 webhook 处理器,用于主动将节点状态的变更报告至谷歌的 HomeGraph 数据库。详情请参考 Google Smart Home Action 报告状态。必须实现主动报告功能才能通过 Google Action 的认证。
-
Alexa skill:附加模块仓库提供了用于设置 Alexa App-to-App 账号关联的 API 端点。App-to-App 账号关联允许用户从自有应用开始完成账号绑定。详情请参考 Alexa App-to-App 账号关联。必须实现此关联才能为产品获得 Works with Alexa (WWA) 认证。
WWA 认证与 Alexa skill 的认证与发布不同。
-
只有实现上述功能才能通过 Alexa Skill (WWA) 和 Google Action (WWGA) 认证,因此必须部署附加模块仓库。
-
准备工作
ESP-RainMaker-3p-CognitoClients
-
请确保已按照 Cognito 域名配置指南中的步骤创建了 Cognito 域名。

-
记录身份提供商的信息。
- 进入 RainMaker 管理面板,在左侧导航栏点击
Deployment Settings选项卡,获取 RainMaker 部署中已配置的身份提供商列表。 - 然后点击
Identity Providers选项卡。 - 记下列出的身份提供商信息。
- 如果配置了 Google、GitHub 和 SignInWithApple,那么在部署 ESP-RainMaker-3p-CognitoClients 的 SAR 应用时,
SkillIdentityProviders的对应值应为 Google, GitHub、SignInWithApple 和 COGNITO。如果未配置任何身份提供商,则默认值仅为 COGNITO。

- 进入 RainMaker 管理面板,在左侧导航栏点击
-
按照 Alexa skill 创建步骤,记录
AlexaCognitoCallbackURLs和SkillId。 -
按照 Google Action 创建步骤,记录
GVACallbackURLs。
ESP-RainMaker-3P-Integrations
- Alexa 和 GVA 处理器会调用 RainMaker 的 API 接口以获取设备信息。因此,在部署 ESP-RainMaker-3P-Integrations 应用时,需要提供 RainMaker API 的地址。
- 请按照获取 RainMaker API(基础 URL)中的步骤获取
RainmakerAPIUrl。 - RainMaker 后端 API 接口地址格式为:
<RainmakerAPIUrl>/v1/。 - 请记录此值,它将在下一步作为
APIEndPointURL使用。
启用谷歌异步消息传输并获取谷歌消息传输客户端的详细信息
GVA 处理程序将主动向谷歌云的 HomeGraph 服务报告设备状态,因此你需要创建一个谷歌服务账号,并将该账号添加至处理程序中。
如果需要部署 Google Actions,请参考以下步骤以获取账号凭证:
-
在账号中启用 HomeGraph API。以下为详细步骤:
- 前往谷歌 HomeGraph 主页。
- 在顶部下拉菜单中,选择在前几步中创建的智能家居项目。
- 点击
Enable.
-
创建服务账 号密钥文件.
- 前往谷歌服务账号主页。
- 选择在前几步中创建的智能家居项目。
- 点击
Create Service Account选项。 - 在
Service Account Name字段下,输入合适名称。 - 在
Description中,输入 "Service Account for report state token creation"。 - 点击
Create and Continue。 - 在下一步中,选择角色类型 (role type) 为
Service Accounts,并选择角色 (role) 为Service Account token creator。 - 点击
Continue,然后点击Done。 - 服务账号已经创建,现在需要添加使用服务账号的密钥。
- 点击已创建的服务账号电子邮件。
- 打开
Keys选项,点击Add Key。 - 选择
Create Key选项。 - 选择密钥类型为
JSON。 - 系统将为你下载服务账号文件,其中包含所需的账号凭证信息。
- 打开下载的服务账号文件。记下服务账号文件中
GVAClientID(client_id)、GVAClientEmail(client_email)、GVAPrivateKey(private_key)、GVAPrivateKeyID(private_key_id) 和GVAProjectID(project_id) 的值。