繁体   English   中英

`aws iot-data` 命令和 AWS 保留主题 ($)

[英]`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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM