amazon-web-services - `aws iot-data` 命令和 AWS 保留主题 ($)
问题描述
我是 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 服务主题发送直接消息有什么问题?我错过了什么吗?因为对于常规(手动创建的)主题,它运行良好。
解决方案
正如文件所说,
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'
推荐阅读
- mongodb - 如何纠正 Mongodb 中的文档验证失败?
- c# - ASP.Net Core API 将模型 int Id 绑定到自定义 Id 对象
- c# - UWP:如何从内存中删除图像?
- javascript - 使用jquery从第一次单击到第二次单击检查多个复选框
- python - Python 测试文件类型和标识符是什么?
- c# - 无法从程序集“mscorlib,版本=4.0.0.0”加载类型“System.Security.Cryptography.SHA256Managed”
- c++ - 将 std::auto_ptr 存储在容器中
- reactjs - 如何在反应选择中不允许重复
- linux - 如何为文件的每一行创建文件夹?
- git - 执行`git log --graph`时如何折叠分支?