将目标添加到适用于 LoRaWAN 的 Amazon IoT Core - Amazon IoT Core
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

将目标添加到适用于 LoRaWAN 的 Amazon IoT Core

适用于 LoRaWAN 的 Amazon IoT Core 目标描述了 Amazon IoT 规则,该规则用于处理设备数据以供Amazon服务采用。

因为大多数 LoRaWAN 设备不会将数据以Amazon能够使用的格式发送到适用于 LoRaWAN 的 Amazon IoT Core,因为 Amazon IoT 规则必须先行处理。Amazon IoT 规则包含解释设备数据的 SQL 语句和主题规则操作,这些操作会将 SQL 语句的结果发送到将要使用它的服务。

如果您是首次添加目标,我们建议您使用控制台。

使用控制台添加一个目标

如果您正在按照 使用控制台将您的无线设备规范添加到 Amazon IoT Core for LoRaWAN 中所述使用控制台添加无线设备,则当您将无线设备规范和配置文件按前述操作添加到 Amazon IoT Core for LoRaWAN 之后,您可以继续添加目标。

您还可以从 Amazon IoT 控制台的 Destinations(目标)页面添加一个 Amazon IoT Core for LoRaWAN 目标。

要处理设备的数据,请在创建适用于 LoRaWAN 的 Amazon IoT Core 目标时指定以下字段,然后选择 Add destination(添加目标)。

  • 目标详细信息

    输入 Destination name(目标名称)以及您的目标描述(可选)。

  • 规则名称

    被配置为评估设备发送的消息并处理设备数据的 Amazon IoT 规则。规则名称将映射到您的目标。目标要求规则来处理收到的消息。您可以通过调用 Amazon IoT 规则或通过发布到 Amazon IoT 消息代理。

    • 如果选择 Enter a rule name(输入规则名称),请输入名称,然后选择 Copy(复制)以复制创建 Amazon IoT 规则时要输入的规则名称。您可以选择 Create rule(创建规则)以立即创建规则,或导航到 Amazon IoT 控制台的 Rule(规则)中心并使用该名称创建规则。

      您也可以输入规则并使用高级设置以指定主题名称。主题名称是在规则调用期间提供的,可通过使用 topic 规则中的表达式访问。有关Amazon IoT规则的更多信息,请参阅Amazon IoT 规则

    • 如果选择 Publish to Amazon IoT message broker(发布到消息代理),输入主题名称。然后,您可以复制 MQTT 主题名称,多个订阅者可以订阅此主题以接收发布到该主题的消息。有关更多信息,请参阅MQTT 主题

    有关目标的 Amazon IoT 规则的更多信息,请参阅 创建规则以处理 LoRaWAN 设备消息

  • 角色名称

    IAM 角色,该角色授予设备数据权限以访问在 Rule name(规则名称)中命名的规则。在控制台中,您可以创建新的服务角色或选择现有的服务角色。如果要创建新的服务角色,可以输入角色名称(例如,IoTWirelessDestinationRole),或将其留白 Amazon IoT Core for LoRaWAN 以生成新的角色名称。然后 Amazon IoT Core for LoRaWAN 将代表您自动创建具有适当权限的 IAM 角色。

    有关 IAM 角色的更多信息,请参阅使用 IAM 角色

使用 API 添加目标

如果要改为使用 CLI 添加目标,必须先为目标创建规则和 IAM 角色。有关角色中目标所需的详细信息,请参阅 为您的目标创建 IAM 角色

以下列表包括执行与添加、更新或删除目标相关任务的 API 操作。

有关可用于创建和管理 Amazon IoT Core for LoRaWAN 资源的操作和数据类型的完整列表,请参阅 Amazon IoT Wireless API 参考

如何使用 Amazon CLI 添加一个目标

您可以使用 Amazon CLI 添加目标,方法是使用 create-destination 命令。下面的示例演示如何通过输入规则名称创建目标,并将 RuleName 用作 expression-type 参数的值。如果要指定用于发布或订阅消息代理的主题名称,请将 expression-type 参数值更改为MqttTopic

aws iotwireless create-destination \ --name IoTWirelessDestination \ --expression-type RuleName \ --expression IoTWirelessRule \ --role-arn arn:aws:iam::123456789012:role/IoTWirelessDestinationRole

运行此命令可创建带有指定目标名称、规则名称和角色名称的目标。有关目标的规则和角色名称的信息,请参阅 创建规则以处理 LoRaWAN 设备消息为您的目标创建 IAM 角色

有关您可以使用的 CLI 的信息,请参阅 Amazon CLI 参考

为您的目标创建 IAM 角色

Amazon IoT Core for LoRaWAN 目标需要 IAM 角色为 Amazon IoT Core for LoRaWAN 提供将数据发送到 Amazon IoT 规则所需的权限。如果尚未定义此类角色,必须对其进行定义,以便出现在角色列表中。

如本主题之前所述,当您使用控制台添加目标时,Amazon IoT Core for LoRaWAN 自动为您创建 IAM 角色。使用 API 或 CLI 添加目标时,必须为目标创建 IAM 角色。

要为您的 Amazon IoT Core for LoRaWAN 目标角色创建 IAM policy

  1. 打开 IAM 控制台中的 Policies(策略)中心

  2. 选择 Create policy(创建策略),然后选择 JSON 选项卡。

  3. 在编辑器中,删除编辑器中的所有内容并粘贴此策略文档。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:DescribeEndpoint", "iot:Publish" ], "Resource": "*" } ] }
  4. 选择 Review policy(查看策略),并在 Name(名称)中输入此策略的名称。在下一流程中,您将需要使用此名称。

    如有需要,您还可以在 Description(说明)中描述此策略。

  5. 选择 Create policy(创建策略)

要为 Amazon IoT Core for LoRaWAN 目标创建 IAM 角色

  1. 开启 IAM 控制台的角色中心,然后选择 Create role(创建角色)。

  2. Select type of trusted entity(选择受信任实体的类型)下,选择 Another Amazon Web Services 账户(另一个亚马逊云科技账户)。

  3. Account ID(账户 ID),请输入您的Amazon Web Services 账户 ID,然后选择 Next: Permission(下一步:权限)。

  4. 在搜索框中,输入您在上一流程中创建的 IAM policy 名称。

  5. 在搜索结果中,检查您在上一个流程中创建的 IAM policy。

  6. 依次选择 Next: Tags(下一步:标签)和 Next: Review(下一步:查看)。

  7. Role name(角色名称),输入此角色的名称,然后选择 Create role(创建角色)。

  8. 在确认消息中,选择您创建的角色的名称以编辑新角色。

  9. Summary(摘要)页面上,选择 Trust relationships(信任关系),然后选择 Edit trust relationship(编辑信任关系)。

  10. Policy Document(策略文档)中,更改 Principal 属性以使其类似于此示例。

    "Principal": { "Service": "iotwireless.amazonaws.com" },

    在您更改 Principal 属性后,完整的策略文档应该如此示例所示。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "iotwireless.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": {} } ] }
  11. 要保存更改并退出,请选择 Update Trust Policy(更新信任策略)。

定义了此角色后,您可以在配置 Amazon IoT Core for LoRaWAN 目标时在角色列表中找到它。