创建规则以处理 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 设备并查看上行链路元数据格式