【问题标题】:`aws iot-data` command and AWS reserved topics ($)`aws iot-data` 命令和 AWS 保留主题 ($)
【发布时间】:2021-02-02 05:43:01
【问题描述】:

我是 AWS IoT 的新手,现在尝试利用现有资源来了解主要概念。 在使用 aws iot-data 命令尝试将数据发布到 AWS 保留主题之一时,我遇到了一种奇怪的行为。 假设我想更新一些名为 stubShadow 的名为 Shadow 的 stub 事物(我在 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 服务主题发送直接消息时此命令有什么问题?我错过了什么吗?因为对于常规(手动创建的)主题,它运行良好。

【问题讨论】:

    标签: amazon-web-services aws-iot aws-iot-core


    【解决方案1】:

    正如document 所说,

    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'

    【讨论】:

    • 您是否能够观察到 AWS IoT Test 环境中的变化,因为在我的情况下结果相同 - 没有任何反应。
    • 是的,我可以看到变化,你也可以查看事物活动页面而不是客户端
    猜你喜欢
    • 2017-11-28
    • 1970-01-01
    • 2018-03-27
    • 2018-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-23
    相关资源
    最近更新 更多