【问题标题】:not able to subscribe dynamic topic. using aws-iot-device-sdk无法订阅动态主题。使用 aws-iot-device-sdk
【发布时间】:2020-12-04 09:24:27
【问题描述】:

当我订阅连接影子的动态主题时。我无法建立连接设备。没有订阅它已连接但无法接收消息负载。

代码

this.thingShadows = new awsiot.thingShadow({
  keyPath: keyPath,
  certPath: certPath,
  caPath: caPath,
  clientId: clientId, //"sdk-nodejs-" + clientId,
  host: host,
  debug: true,
});

this.thingShadows.subscribe(clientId + "/*");

政策

 {
  "Effect": "Allow",
  "Action": [
    "iot:Connect"
  ],
  "Resource": [
    "arn:aws:iot:ap-south-1:453533943651:client/${iot:Connection.Thing.ThingName}"
  ]
},
{
  "Effect": "Allow",
  "Action": [
    "iot:Publish"
  ],
  "Resource": [
    "arn:aws:iot:us-south-1:453533943651:topic/${iot:Connection.Thing.ThingName}/*"
  ]
},
{
  "Effect": "Allow",
  "Action": [
    "iot:Subscribe"
  ],
  "Resource": [
    "arn:aws:iot:us-south-1:453533943651:topicfilter/${iot:Connection.Thing.ThingName}/*"
  ]
},
{
  "Effect": "Allow",
  "Action": [
    "iot:Receive"
  ],
  "Resource": [
    "arn:aws:iot:ap-south-1:453533943651:topic/${iot:Connection.Thing.ThingName}/*"
  ]
}

日志/输出

error 错误:过早关闭 在 onclosenexttick (/Users/murtuzanalawala/Node/RiooNode/node_modules/end-of-stream/index.js:54:86) 在 processTicksAndRejections (internal/process/task_queues.js:75:11) 连接丢失 - 将在 128 秒内尝试重新连接... 关 重新连接/重新注册 连接 离线

提前感谢您的好建议。

Github Question

【问题讨论】:

    标签: node.js aws-iot aws-iot-core


    【解决方案1】:

    是的,您无法订阅动态主题,您必须将策略“arn:aws:iot:ap-south-1:453533943651:topic/${iot:Connection.Thing.ThingName}/*”更改为*..for 允许所有设备。然后您可以订阅.topic/${iot:Connection.Thing.ThingName} 这表示事物名称应该位于主题的末尾。更改为允许您订阅所有内容。

    【讨论】:

      猜你喜欢
      • 2021-11-01
      • 2016-05-07
      • 2018-09-26
      • 2017-11-28
      • 1970-01-01
      • 2016-08-23
      • 2019-01-30
      • 2019-03-30
      • 2018-08-23
      相关资源
      最近更新 更多