[英]`aws iot-data` command and AWS reserved topics ($)
我是 AWS IoT 的新手,现在尝试使用现有资源来理解主要概念。 在使用aws iot-data
命令尝试将数据发布到 AWS 保留主题之一时,我遇到了一个奇怪的行为。 假设我想更新一些stub
事物的名为stubShadow
的命名 Shadow(我正在使用AWS IoT Dashboard
中的Test
选项卡):
aws iot-data update-thing-shadow --thing-name stub --shadow-name stubShadow \
--cli-binary-format raw-in-base64-out \
--payload '{"state":{"desired":{"ColorRGB":[0,11,11]}},"clientToken":"21b21b21-bfd2-4279-8c65-e2f697ff4fab"}' /dev/stdout
它运行良好,我可以观察$aws/things/stub/shadow/name/stubShadow/update/accepted
主题以获取更新。
现在我想使用topic
参数发布消息。 这是一个例子:
aws iot-data publish --topic "$aws/things/stub/shadow/name/stubShadow/update" \
--cli-binary-format raw-in-base64-out \
--payload '{"state":{"reported":{"ColorRGB":[0,11,11]}},"clientToken":"21b21b21-bfd2-4279-8c65-e2f697ff4fab"}'
什么也没有发生……我想知道这个向 AWS 服务主题发送直接消息的命令有什么问题? 我想念什么吗? 因为对于常规(手动创建的)主题,它效果很好。
正如文件所说,
payload
是 stringify json 消息的 base64 编码表示
{"state":{"reported":{"ColorRGB":[0,11,11]}}}
console.log(btoa(JSON.stringify({"state":{"reported":{"ColorRGB":[0,11,11]}}})))
有效载荷: eyJzdGF0ZSI6eyJyZXBvcnRlZCI6eyJDb2xvclJHQiI6WzAsMTEsMTFdfX19
aws iot-data publish --topic "$aws/things/stub/shadow/name/stubShadow/update" --payload 'eyJzdGF0ZSI6eyJyZXBvcnRlZCI6eyJDb2xvclJHQiI6WzAsMTEsMTFdfX19'
使用 CLI 时,如果您发布消息,它不会反映在影子文档中。 当您发出命令更新阴影时-您可以看到阴影的变化。
这是我们最近在使用 AWS 的 MQTT 测试客户端时观察到的。 只需打开 AWS IOT Core 控制台并转到测试客户端并订阅您要发布的主题。
您会观察到 Publish 消息即将到来
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.