

# 启用无线资源的事件
<a name="iot-wireless-control-events"></a>

在保留主题的订阅者能够接收消息之前，您必须启用事件通知。要做到这一点，您可以使用 AWS 管理控制台，或者 AWS IoT Wireless API 或 AWS CLI。

## 事件配置
<a name="iot-wireless-control-events-config"></a>

您可以将事件配置为向属于特定类型的所有资源或针对单独的无线资源发送通知。资源类型可以是无线网关、Sidewalk 合作伙伴账户或无线设备（可以是 LoRaWAN 或 Sidewalk 设备）。有关可以为无线设备启用的事件类型的信息，请参阅 [LoRaWAN 资源的事件类型](iot-lorawan-events.md#iot-lorawan-event-types) 和 [Sidewalk 资源的事件类型](iot-sidewalk-events.md#iot-sidewalk-event-types)。

**所有资源**  
您可以启用事件，以便您的 AWS 账户 中属于特定资源类型的所有资源收到通知。例如，您可以启用一个事件，以向您通知已登记到 适用于 LoRaWAN 的 AWS IoT Core 的所有 LoRaWAN 网关的连接状态所发生的更改。监控这些事件将帮助您在如下情况下获得通知：资源实例集中的某些 LoRaWAN 网关断开连接或者您 AWS 账户 中的一些 Sidewalk 设备的信标丢失。

**单独的资源**  
您还可以将单独的 LoRaWAN 和 Sidewalk 资源添加到您的事件配置中，并为它们启用通知。这将帮助您监控特定类型的单独资源。例如，您可以将选定的 LoRaWAN 和 Sidewalk 设备添加到配置中，并接收这些资源的加入或设备注册状态事件的通知。

## 先决条件
<a name="iot-wireless-control-events-prereq"></a>

您的 LoRaWAN 或 Sidewalk 资源必须具有允许其接收事件通知的适当策略。有关更多信息，请参阅[用于接收无线事件通知的策略](iot-wireless-events.md#iot-wireless-events-policy)。

## 使用 AWS 管理控制台 启用通知
<a name="iot-wireless-control-events-console"></a>

要从控制台启用事件消息，请转到 AWS IoT 控制台的 [Settings](console.aws.amazon.com/iot/home/settings/)（设置）选项卡，然后转至 **LoRaWAN and Sidewalk event notification**（LoRaWAN 和 Sidewalk 事件通知）部分。

您可以为您的 AWS 账户 中属于特定资源类型的所有资源启用通知，并对其进行监视。

**针对所有资源启用通知**

1. 在 **LoRaWAN and Sidewalk event notification**（LoRaWAN 和 Sidewalk 事件通知）部分，转到 **All resources**（所有资源）选项卡，选择 **Action**（操作），然后选择 **Manage events**（管理事件）。

1. 启用要监控的事件，然后选择 **Update events**（更新事件）。如果您不再要监视某些事件，请依次选择 **Action**（操作）和 **Manage events**（管理事件），然后禁用这些事件。

您还可以为您的 AWS 账户 中属于特定资源类型的单独资源启用通知，并对其进行监视。

**针对单独的资源启用通知**

1. 在 **LoRaWAN and Sidewalk event notification**（LoRaWAN 和 Sidewalk 事件通知）部分，选择 **Action**（操作），然后选择 **Add resources**（添加事件）。

1. 选择要接收通知的资源和事件：

   1. 选择是否要监视 **LoRaWAN resources**（LoRaWAN 资源）或 **Sidewalk resources**（Sidewalk 资源）的事件。

   1. 根据资源类型，您可以选择要为资源启用的事件。然后，您可以订阅这些事件并接收通知。如果您选择...
      + **LoRaWAN resources**（LoRaWAN 资源）：您可以为您的 LoRaWAN 设备启用 **join**（加入）事件，或为您的 LoRaWAN 网关启用 **connection status**（连接状态）事件。
      + Sidewalk 资源：您可以为您的 Sidewalk 合作伙伴账户和 Sidewalk 设备启用 **device registration state**（设备注册状态）和/或 **proximity**（邻近）事件。

1. 根据您选择的资源类型和事件，选择要监控的无线设备或网关。对于所有组合的资源，您可以选择最多 250 个资源。

1. 选择 **Submit**（提交）以添加您的资源。

您添加的资源将与它们的 MQTT 主题一起出现在控制台的 **LoRaWAN and Sidewalk event notification**（LoRaWAN 和 Sidewalk 事件通知）部分中对应于资源类型的选项卡中。
+ **LoRaWAN join**（LoRaWAN 加入）事件和 Sidewalk 设备的事件将出现在控制台的 **Wireless devices**（无线设备）部分。
+ LoRaWAN 网关的 **Connection status**（连接状态）事件将显示在 **Wireless gateways**（无线网关）部分。
+ Sidewalk 账户的 **Device registration state**（设备注册状态）和 **proximity**（邻近）事件将出现在 **Sidewalk accounts**（Sidewalk 账户）选项卡中。

**使用 MQTT 客户端订阅主题**  
根据您是针对所有资源还是针对单独资源类型启用了事件，启用的事件将显示在控制台中，其 MQTT 主题将显示在 **All resources**（所有资源）选项卡或指定资源类型的选项卡中。
+ 如果您选择其中一个 MQTT 主题，您可以前往 MQTT 客户端订阅这些主题并接收消息。
+ 如果您添加了多个事件，则可以订阅多个事件主题并接收有关它们的通知。要订阅多个主题，请选择主题，然后依次选择 **Action**（操作）和 **Subscribe**（订阅）。

## 使用 AWS CLI 启用通知
<a name="iot-wireless-control-events-cli"></a>

您可以使用 AWS IoT Wireless API 或 AWS CLI 配置事件并将资源添加到配置中。

**针对所有资源启用通知**  
您可以使用 [UpdateEventConfigurationByResourceTypes](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_UpdateResourceEventConfiguration.html) API 或 [cli/latest/reference/iotwireless/update-event-configuration-by-resource-types.html](cli/latest/reference/iotwireless/update-event-configuration-by-resource-types.html) CLI 命令，为您 AWS 账户中属于特定资源类型的所有资源启用通知并对其进行监视。例如：

```
aws iotwireless update-event-configuration-by-resource-types \ 
   --cli-input-json input.json
```

**input.json 的内容**

```
{   
   "DeviceRegistrationState": { 
      "Sidewalk": { 
         "AmazonIdEventTopic": "Enabled"
      }
   },
   "ConnectionStatus": { 
      "LoRaWAN": { 
         "WirelessGatewayEventTopic": "Enabled"
      }
   }
}
```

**注意**  
使用反斜杠 (\\) 转义所有双引号 (")。

您可以通过调用 [GetEventConfigurationByResourceTypes](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_GetResourceEventConfiguration.html) API 或通过使用 [cli/latest/reference/iotwireless/get-event-configuration-by-resource-types.html](cli/latest/reference/iotwireless/get-event-configuration-by-resource-types.html) CLI 命令获取当前事件配置。例如：

```
aws iotwireless get-event-configuration-by-resource-types
```

**针对单独的资源启用通知**  
要将单独的资源添加到事件配置中并控制使用 API 或 CLI 发布的事件，请调用 [UpdateEventConfigurations](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_UpdateResourceEventConfiguration.html) API 或使用 [cli/latest/reference/iotwireless/update-resource-event-configuration.html](cli/latest/reference/iotwireless/update-resource-event-configuration.html) CLI 命令。例如：

```
aws iotwireless update-resource-event-configuration \ 
   --identifer 1ffd32c8-8130-4194-96df-622f072a315f \ 
   --identifier-type WirelessDeviceId \ 
   --cli-input-json input.json
```

**input.json 的内容**

```
{  
   "Join": { 
      "LoRaWAN": { 
         "DevEuiEventTopic": "Disabled"
      },
      "WirelessDeviceIdEventTopic": "Enabled"
   }
}
```

**注意**  
使用反斜杠 (\\) 转义所有双引号 (")。

您可以通过调用 [GetResourceEventConfiguration](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_GetResourceEventConfiguration.html) API 或通过使用 [cli/latest/reference/iotwireless/get-resource-event-configuration.html](cli/latest/reference/iotwireless/get-resource-event-configuration.html) CLI 命令获取当前事件配置。例如：

```
aws iotwireless get-resource-event-configuration \ 
    --identifier-type WirelessDeviceId \ 
    --identifier 1ffd32c8-8130-4194-96df-622f072a315f
```

**列出事件配置**  
您也可以使用 AWS IoT Wireless API 或 AWS CLI 列出至少启用了一个事件主题的事件配置。要列出配置，请使用 [ListEventConfigurations](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_ListEventConfigurations.html) API 操作或通过使用 [cli/latest/reference/iotwireless/list-event-configurations.html](cli/latest/reference/iotwireless/list-event-configurations.html) CLI 命令。例如：

```
aws iotwireless list-event-configurations --resource-type WirelessDevice
```