1

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

代码

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

提前感谢您的好建议。

Github问题

4

1 回答 1

1

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

于 2020-12-04T01:24:27.073 回答