1 Answer
- Newest
- Most votes
- Most comments
0
【以下的回答经过翻译处理】 嗨,
使用DynamoDB存储每个无线设备ID的解码器,并在Lambda中使用此DynamoDB表可能是可行的方法。特别是如果您需要在DynamoDB中存储任何其他每个设备的信息(例如某些元数据),那么这种方法是有意义的。您还可以在一个规则中使用get dynamod()和aws_lambda()。
但是,也有一种替代方法,可以消除需要DynamoDB表来存储每个WirelessDeviceId的解码器的需要:
- 为每种设备(即每个解码器)创建一个单独的Wireless Destination。例如,如果您有解码器A和B,则创建Wireless Destinations Dest_A和Dest_B。现在,如果您有类型为A的设备D1、D2和类型为B的设备D3、D4,您需要确保每个设备都分配了适当的无线目的地(即D1、D2的Dest_A和D3、D4的Dest_B)。
- 所有无线目的地都应指向相同的IoT规则。但是,在无线目的地的主题字段中(单击控制台中的“高级”下拉菜单),您需要指定解码器的名称(例如,对于解码器A,您指向IoT规则“ProcescLoRaWANUplink”并使用主题名称“A”)。
- 现在,在IoT规则中,您可以使用以下表达式:
select topic() as DecoderName, ....
- 现在您的Lambda函数可以访问DecoderName。
这种方法将一部分复杂性移到管理单个LoRaWAN设备与正确的Wireless Destination之间的关系上。如果解码器名称是您希望每个设备额外存储的唯一信息,符合您用例的要求,那么这是有意义的。
如果对您有所帮助或
Relevant content
- asked a year ago
- asked a year ago
- asked 10 months ago
- AWS OFFICIALUpdated a year ago
- AWS OFFICIALUpdated 3 years ago
- AWS OFFICIALUpdated a year ago
- AWS OFFICIALUpdated a year ago