如何将DeviceEUI发布到IoT主题?

0

【以下的问题经过翻译处理】 我有几个具有自己的DeviceId和DevEui标识符的无线/LoRa设备。我让它们将上行路由到一个常规的主题,如devices/lorawan/uplink

但我希望它们可以使用DevEui或DeviceId在自己的子主题中发布上行消息。

例如devices/lorawan/ab123fffe4567890/uplinks

我认为这可以通过无线目标来完成,但在配置目标设置内部的主题时,我不太清楚这个目标该如何设定。类似于devices/lorawan/${WirelessMetadata.DevEui}/uplinks

profile picture
专家
已提问 5 个月前10 查看次数
1 回答
0

【以下的回答经过翻译处理】 你好,

我的建议是按照以下步骤操作:

  1. 将一个无线目标点指向 AWS IoT 规则(假设我们将其称为 ProcessLoRaWANUplink)。
  2. 使用以下 IoT SQL:
SELECT *
  1. 添加“Republish”操作,并指定一个主题,如下所示:
devices/lorawan/${WirelessMetadata.LoRaWAN.DevEui}/uplinks

请注意:

  • 你应该仔细检查在你为 LoRaWAN 设备分配的服务配置文件中是否启用了元数据。
  • 请仔细检查分配给“Republish”操作的 IAM 角色是否允许“iot:Publish”到“devices/lorawan/*”。在这种特定情况下,我建议在创建管理控制台操作时不要使用“创建角色”选项,而是使用 AWS IAM 管理控制台创建角色,并使用以下信任关系:
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "iot.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

和以下策略:

{
    "Version": "2012-10-17",
    "Statement": {
        "Effect": "Allow",
        "Action": "iot:Publish",
        "Resource": "arn:aws:iot:<区域,例如eu-west-1>:<帐户 ID>:topic/devices/lorawan/*"
    }
}

最好的问候,Andrei

profile picture
专家
已回答 5 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则