如何解决`aws iot-data`命令和AWS保留主题$
我是AWS IoT的新手,现在尝试使用现有资源来了解主要概念。
在使用 @RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = MainClass.class)
@WebAppConfiguration
public class TestWebApplication {
@Autowired
private WebApplicationContext webApplicationContext;
private MockMvc mockMvc;
@Before
public void setUp() {
mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).build();
}
@Test
public void testabc() throws Exception{
String[] arr ={"A","B"};
ObjectMapper mapper = new ObjectMapper();
mapper.configure(SerializationFeature.WRAP_ROOT_VALUE,false);
ObjectWriter ow = mapper.writer().withDefaultPrettyPrinter();
String requestJson=ow.writeValueAsString(arr );
mockMvc.perform( post("/1").contentType( MediaType.APPLICATION_JSON).content(requestJson));
}
命令尝试将数据发布到AWS保留主题之一中时,我遇到一个奇怪的行为。
假设我想更新名为aws iot-data
的{{1}}事物的名为Shadow的影子(我正在stubShadow
中使用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
什么也没有发生... 我想知道将此命令发送直接消息到AWS服务主题有什么问题吗?我想念什么吗?因为对于常规(手动创建)主题,它效果很好。
解决方法
正如document所说,
payload
是stringify json消息的base64编码表示形式
{"state":{"reported":{"ColorRGB":[0,11,11]}}}
console.log(btoa(JSON.stringify({"state":{"reported":{"ColorRGB":[0,11]}}})))
有效载荷:eyJzdGF0ZSI6eyJyZXBvcnRlZCI6eyJDb2xvclJHQiI6WzAsMTEsMTFdfX19
aws iot-data publish --topic "$aws/things/stub/shadow/name/stubShadow/update" --payload 'eyJzdGF0ZSI6eyJyZXBvcnRlZCI6eyJDb2xvclJHQiI6WzAsMTEsMTFdfX19'
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。