如何为 Alexa 技能调用配置 MQTT (AWS IoT) 测试控制台?

How do configure the MQTT (AWS IoT) test console for an Alexa skill invocation?

除了使用 AWS IoT Core 进行测试(订阅主题)外,我已成功遵循以下指南

Implement a Connected Building with Amazon Alexa and AWS IoT

在文档末尾,它说转到 AWS IoT Core,然后选择“测试”选项卡。订阅 setTemp 主题。

我这样做了,但我看不到来自 Alexa 控制台的消息(导航回 AWS IoT Core 测试控制台以查看消息)

我了解配置 AWS IoT 涉及创建对象和添加策略,但同样不起作用。

我的印象是文档不完整,还有一些事情我必须做。

欢迎大家提出意见或建议

(1) 第一步是查看 Cloud Watch 日志。调用失败的地方会有线索

(2) 不知您是否开启了lambda授权器的自定义逻辑功能。如果你有,你引用的教程的代码中有一个错误:在声明自定义逻辑函数的行之后,应该有一个 return 语句或至少一个 'pass' 语句。如果没有这个,如果您启用该功能,程序将崩溃。

def customLogicFunction(token):
    return True

(3) 教程混淆了 Python 和 JavaScript 代码。发送 MQTT 消息的 lambda 函数在 JS 中,而所有其他部分在 Python 中。您在创建 lambda 时是否正确配置了语言?!

(4) 验证您的 AWS 区域。智能家居技能仅适用于某些地区。如果存在区域不匹配,调用将静默失败。请参阅此 link 了解允许的区域:

https://developer.amazon.com/en-US/docs/alexa/smarthome/develop-smart-home-skills-in-multiple-languages.html