0

我是 AWS IoT 的新手,现在尝试使用现有资源来了解主要概念。aws iot-data在使用命令尝试将数据发布到 AWS 保留主题之一时,我遇到了一种奇怪的行为。假设我想更新名为 ShadowstubShadow的某些stub东西(我在 中使用Test选项卡AWS IoT Dashboard):

 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 服务主题发送直接消息有什么问题?我错过了什么吗?因为对于常规(手动创建的)主题,它运行良好。

4

1 回答 1

0

正如文件所说,

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'

于 2020-10-20T21:57:22.847 回答