创建规则以处理 Sidewalk 设备消息 - Amazon IoT Core
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

创建规则以处理 Sidewalk 设备消息

Amazon IoT 规则可以接收来自 Sidewalk 设备的消息并将其路由到其它服务。适用于 LoRaWAN 的 Amazon IoT Core 目标将 Sidewalk 设备与规则相关联,该规则将处理要发送到其他服务的设备消息数据。

您可以将现有规则用于您的目标。在此部分中,我们将创建您在创建 Sidewalk 目标时将会指定的规则 SidewalkRule,如 为您的 Sidewalk 设备添加目标 中所述。在创建规则时,我们将创建一个 Amazon Lambda 操作将消息重新发布到 Amazon IoT 主题。

创建 Sidewalk 目标规则

导航到 Amazon IoT 控制台的规则中心,然后执行下列步骤。

  1. 选择 Create a rule 为目标创建新规则。

  2. Name(名称)输入名称 SidewalkRule,并为规则指定一个可选的 Description(说明),例如 Sidewalk rule for lambda action to republish a topic

  3. 将默认查询语句更改为 SELECT *,以便执行与规则关联的任何操作。将 SQL 版本保留为 2016-03-23

  4. Set one or more actions (设置一个或多个操作) 下,选择 Add action (添加操作)

  5. 在规则操作下,选择 Send a message to a Lambda function(将消息发送到 Lambda 函数),然后选择 Configure action(配置操作)。

  6. 您可以选择现有 Lambda 函数或或创建新的函数。在本示例中,我们将创建 Lambda 函数。选择 Create a new Lambda function(新建 Lambda 函数)。

使用 Amazon Lambda 创建函数

选择 Create a new Lambda function(新建 Lambda 函数)将打开 Lambda 控制台的函数页面。执行以下步骤。

  1. 要创建自己的函数,请选择 Author from scratch(从头开始编写)。

  2. 对于 Function name(函数名称),请输入名称(例如,Sidewalk_Handler),选择 Python 3.8 作为 Runtime(运行时),然后选择 Create function(创建函数)。

  3. 选择控制台中 Code source(代码源)部分的 lambda.py函数。

  4. 在函数正文中,删除函数正文内的任何代码,并为 Lambda 函数添加打印语句。您还可以使用 base64 解码 PayloadData 来接收设备发送到 Amazon IoT 的应用程序数据。以下示例显示 Lambda 函数

    import json import base64 def lambda_handler(event, context): message = json.dumps(event) print (message) payload_data = base64.b64decode(event["PayloadData"]) print(payload_data) print(int(payload_data,16))
  5. 要部署函数代码,请选择 deploy(部署)。

  6. 返回到控制台的规则中心并刷新页面。选择您创建的 Lambda 函数,然后选择 Add action(添加操作)。

将消息重新发布到 Amazon IoT 主题

您可以添加第二个操作以将消息从控制台的规则中心重新发布到 Amazon IoT 主题。

  1. 选择添加操作

  2. 选择 Republish a message to an Amazon IoT topic(将消息重新发布到 IoT 主题),然后选择 Configure action(配置操作)。

  3. Topic(主题)输入 project/sensor/observed 并确保 Quality of Service(服务质量)设置为 0 - The message is delivered zero or more times(0 - 消息将发布零次或多次)。

  4. 选择 Create Role(创建角色)。输入 SidewalkRepublishRole 作为角色名称,然后选择 Create Role(创建角色)。

  5. 选择添加操作

    这两个操作都显示在 Amazon IoT 控制台的 Rules(规则)中心。

  6. 请选择 Create rule (创建规则)

    该规则将在显示规则列表的 Rule(规则)页面显示。

后续步骤

现在,您已经为您的 Sidewalk 设备创建了目标规则,您可以连接设备并观察有关您所订阅主题的消息了。有关更多信息,请参阅连接您的 Sidewalk 设备并查看上行链路元数据格式