

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用支持 MQTT 的 V3 网关将数据集成到 SiteWise Edge
<a name="integrate_sitewise_edge_mqtt"></a>

本教程将指导您完成将使用 MQTT 消息协议的第三方设备和传感器与 Amazon IoT SiteWise 支持 MQTT 的 V3 网关集成的过程。您将学习如何设置 Amazon IoT SiteWise 边缘网关以收集和监控来自支持 MQTT 的设备的数据。 Amazon IoT SiteWise 使您能够收集、处理和监控工业设备数据。使用 SiteWise Edge 功能优化工业物联网运营，并将原始数据转化为切实可行的见解。

在本教程中，我们使用风力发电场演示中的数据来说明关键概念。熟悉该过程后，您可以使用自己的数据重复本教程。

 完成本教程后，您可以执行以下操作：
+ 设置和配置支持 MQTT 的 V3 网关，以接收来自工业设备的数据
+ 在边缘处理和验证从您的设备传入的 MQTT 消息
+  Amazon IoT SiteWise 使用第三方可视化平台查看设备数据
+ 将处理后的数据从边缘网关发送到 Amazon Web Services 云 ，以实现集中存储和进一步分析

此外，您可以通过连接到其他 Amazon IoT 服务来利用您的 Edge 网关功能来执行以下任务：
+ 配置 Amazon IoT 规则，将数据路由到 [Amazon S3、Amazon](https://www.amazonaws.cn/s3/) [Timestream](https://www.amazonaws.cn/timestream/) 和等服务。[Amazon Lambda](https://www.amazonaws.cn/lambda/)
+ [Amazon IoT Device Defender](https://www.amazonaws.cn/iot-device-defender/)用于远程管理和更新您的网关配置。
+ 使用 Amazon IoT 安全功能实现安全的设备身份验证和授权。有关更多信息，请参阅《*Amazon IoT 开发人员指南*》中的[Amazon IoT 安全性](https://docs.amazonaws.cn/iot/latest/developerguide/iot-security.html)。
+ 根据设备数据创建自动警报和通知。有关更多信息，请参阅[《*Amazon IoT 开发者指南*》 Amazon IoT中的规则](https://docs.amazonaws.cn/iot/latest/developerguide/iot-rules.html)。

**注意**  
本教程引用了第三方服务、工具和文档。 Amazon 不是任何第三方产品或服务的供应商或供应商，也无法保证来自外部提供商的信息的准确性。在部署之前，请评估并验证所有第三方工具。

**Topics**
+ [先决条件](#gateway-tutorial-prerequisites)
+ [步骤 1：创建 Amazon IoT 策略](#gateway-tutorial-create-iot-policy)
+ [步骤 2：创建和配置 Amazon IoT 事物](#gateway-tutorial-create-and-configure-aws-iot-thing)
+ [第 3 步：配置支持 SiteWise Edge MQTT 的 V3 网关](#gateway-tutorial-configure-your-edge-gateway)
+ [步骤 4：安装 SiteWise Edge 网关软件](#install-gateway-software)
+ [步骤 5：将 EMQX 代理配置为连接到外部应用程序](#configure-emqx-broker-external-applications)
+ [第 6 步：使用 Mosquitto 发布数据](#add-mqtt-data-source)
+ [步骤 7：指定目的地](#specify-destinations)
+ [步骤 8：指定路径过滤器](#specify-path-filters)
+ [步骤 9：配置您的 Amazon 物联网资源](#configure-iot-resources)
+ [第 10 步：可视化您的数据](#visualize-your-data)
+ [步骤 11：完成教程后清理资源](#tutorial-clean-up-resources)
+ [其他资源](#additional-resources)

## 先决条件
<a name="gateway-tutorial-prerequisites"></a>

要完成本教程，您需要：
+ 一个 Amazon Web Services 账户。如果没有，请参阅[设置一个 Amazon 账户](getting-started.md#set-up-aws-account)。
+ 具有管理员权限的 Amazon Identity and Access Management (IAM) 用户。有关更多信息，请参阅 [的身份和访问管理 Amazon IoT SiteWise](security-iam.md)。
+ 您的设备上Python安装的最新版本。

**重要**  
本教程要求使用在载[入数据](ingest-data-from-iot-things.md)教程中创建的资源。在继续学习本教程之前，必须先完成本教程。

## 步骤 1：创建 Amazon IoT 策略
<a name="gateway-tutorial-create-iot-policy"></a>

本教程使用您在[收录数据教程中创建的 Amazon IoT](ingest-data-from-iot-things.md)策略。此政策为您的设备设置安全规则，并在其中创建外部设备和传感器的数字表示形式 Amazon IoT。该策略允许您的第三方设备 Amazon IoT Core 使用 MQTT（消息队列遥测传输）向其发送数据。有关 MQTT 消息的更多信息，请参阅[什么是 MQTT？](https://www.amazonaws.cn/what-is/mqtt/)。

------
#### [ Console ]

确保 Amazon IoT 政策的完成。有关详细说明，请参阅[载[入数据](ingest-data-from-iot-things.md)教程中的步骤 1](ingest-data-from-iot-things.md#ingestion-tutorial-create-iot-policy)。

**验证您的 Amazon IoT 政策是否有效**

1. 导航至 [Amazon IoT 控制台](https://console.amazonaws.cn/iot/)。

1. 在左侧导航窗格中，选择**证券**，然后选择**政策**。

1. 选择您创建的策略。例如 **SiteWiseTutorialDevicePolicy**。

1. 确认该策略的状态已列为 “激活”。

------
#### [ Amazon CLI ]

确保 Amazon IoT 政策的完成。有关详细说明，请参阅[载[入数据](ingest-data-from-iot-things.md)教程中的步骤 1](ingest-data-from-iot-things.md#ingestion-tutorial-create-iot-policy)。

在《命令*参考》中使用以下 Amazon CLI get-Amazon CLI policy 命令*[来验证您的策略](https://docs.amazonaws.cn/cli/latest/reference/iot/get-policy.html)处于活动状态 Amazon IoT ：

```
aws iot get-policy --policy-name "SiteWiseTutorialDevicePolicy"
```

------

此策略使您的 Amazon IoT 设备能够使用 MQTT 消息建立连接并与设备影子通信。要与设备影子进行交互，您的 Amazon IoT 事物会发布和接收有关以开头的主题的 MQTT 消息。`$aws/things/{{thing-name}}/shadow/`此策略包含一个称为 `${iot:Connection.Thing.ThingName}` 的事物策略变量。此变量用于替换每个主题中连接事物的名称。`iot:Connect` 语句限制了可以建立连接的设备，确保此事物策略变量只能替换以 `SiteWiseTutorialDevice` 开头的名称。

有关更多信息，请参阅*Amazon IoT 开发人员指南*中的[事物策略变量](https://docs.amazonaws.cn/iot/latest/developerguide/iot-policy-variables.html)。

**注意**  
此策略适用于名称以 `SiteWiseTutorialDevice` 开头的事物。要为您的事物使用不同的名称，您必须相应地更新策略。

## 步骤 2：创建和配置 Amazon IoT 事物
<a name="gateway-tutorial-create-and-configure-aws-iot-thing"></a>

在此步骤中，将您的边缘设备注册为 Amazon IoT 事物，并生成与 Ed Amazon IoT SiteWise ge 进行安全通信所需的设备证书和密钥。此过程为您的设备通过支持 MQTT 的 V3 网关发送第三方数据奠定了基础。

------
#### [ Console ]

确保完成 Amazon IoT 事物的创建和配置步骤。有关详细说明，请参阅[载[入数据](ingest-data-from-iot-things.md)教程中的步骤 2](ingest-data-from-iot-things.md#rule-tutorial-create-iot-thing)。

**为了验证你有活跃的 Amazon IoT 东西**

1. 导航至 [Amazon IoT 控制台](https://console.amazonaws.cn/iot/)。

1. 在左侧导航窗格中，选择**所有设备**，然后选择**事物**。

1. 选择你创建的东西。例如 **SiteWiseTutorialDevice1**。

1. 在 “**证书**” 下，确认状态是否列为有效。

------
#### [ Amazon CLI ]

确保完成 Amazon IoT 事物的创建和配置步骤。有关详细说明，请参阅[载[入数据](ingest-data-from-iot-things.md)教程中的步骤 2](ingest-data-from-iot-things.md#rule-tutorial-create-iot-thing)。

使用以下 Amazon CLI 命令验证您的 Amazon IoT 策略处于活动状态：

```
 aws iot describe-thing --thing-name "SiteWiseTutorialDevice1"
```

------

完成这些步骤后，您可以将设备安全地连接到 Amazon IoT SiteWise Edge。您创建了一个本地目录来存储您为 MQTT 身份验证生成的证书和密钥。您的设备已在[Amazon IoT 控制台](https://console.amazonaws.cn/iot/)中注册为 Amazon IoT 事物，并且您的设备已准备好将数据与 SiteWise Edge 集成。您可以将您的工业设备或其他设备连接到 Amazon IoT 平台，然后开始将数据采集到 Edge 中 SiteWise 。

## 第 3 步：配置支持 SiteWise Edge MQTT 的 V3 网关
<a name="gateway-tutorial-configure-your-edge-gateway"></a>

在此步骤中，创建支持 Amazon IoT SiteWise Edge MQTT 的 V3 网关，并将其配置为从 EMQX 代理接收数据。网关充当您的设备和之间的桥梁 Amazon IoT。这允许您在将数据发送到之前在边缘本地处理数据 Amazon Web Services 云。此配置可减少带宽并减少云处理延迟。

------
#### [ Console ]

**创建 Amazon IoT SiteWise 支持 MQTT 的 V3 网关**

1. 登录 [Amazon Web Services 管理控制台](https://console.amazonaws.cn/)并打开 [Amazon IoT SiteWise 控制台](https://console.amazonaws.cn/iotsitewise/)。

1. 在左侧导航窗格中，选择 **Edge 网关**，然后选择**创建网关**。

1. 在**部署目标**下，选择**自托管网关**。

1. *在自托管网关选项下，选择**启用 MQTT、V3 网关-** 推荐。*

1. 在**网关配置**下：

   1. 在**网关名称**中，输入网关的名称。例如 **SiteWise Tutorial Device Gateway**。

   1. 在 **Greengrass 设备操作系统中，为您的设备**选择相应的选项。

1. 在 “**高级配置”** 下：

   1. 选择**默认设置**。

   1. 输入 Greengrass 核心设备的名称或使用生成的名称。 Amazon IoT SiteWise

1. 选择**创建网关**。

1. 在确认对话框中，选择 “**生成并下载**”，为您的 SiteWise Edge 网关生成安装程序。有关更多信息，请参阅[创建自托管 SiteWise Edge 网关](create-gateway-ggv2.md#configure-gateway-console)。

**警告**  
将安装程序文件存储在安全的位置。此文件无法重新生成，需要在后续步骤中完成网关设置。

------
#### [ Amazon CLI ]

 Amazon CLI 用于创建自托管网关。您需要为网关提供名称，指定平台和网关版本。有关更多信息，请参阅《Amazon IoT SiteWise API Reference》**中的 [CreateGateway](https://docs.amazonaws.cn/iot-sitewise/latest/APIReference/API_CreateGateway.html)。

要使用此示例，请将用户输入占位符 替换为您自己的信息。

```
aws iotsitewise create-gateway \
    --gateway-name SiteWise Tutorial Device Gateway \
    --gateway-platform greengrassV2={coreDeviceThingName={{your-core-device-thing-name}}, coreDeviceOperatingSystem={{LINUX_AMD64}}} \                        
    --gateway-version {{3}} \
    [--cli-input-json {{your-configuration}}]
```
+ `gateway-name`— 例如，网关的唯一名称`SiteWise Tutorial Device Gateway`。
+ `gateway-platform`— 输入`greengrassV2`。有关更多信息，请参阅《Amazon IoT SiteWise API Reference》**中的 [CreateGateway](https://docs.amazonaws.cn/iot-sitewise/latest/APIReference/API_CreateGateway.html)。
  + `coreDeviceThingName`— Amazon IoT Greengrass V2 核心 Amazon IoT 设备的名称。例如 `SiteWiseTutorialDevice1`。
  + `coreDeviceOperatingSystem`— 中核心设备的操作系统 Amazon IoT Greengrass V2。网关版本 3 需要指定操作系统。选项包括：`LINUX_AARCH64``LINUX_AMD64`、和`WINDOWS_AMD64`。
+ `gateway-version`— 网关的版本。
  + 使用`3`网关版本创建支持 MQTT 的 V3 网关。
+ `cli-input-json`— 包含请求参数的 JSON 文件。

 使用以下 Amazon CLI 命令验证您的网关是否已成功创建：

```
aws iotsitewise describe-gateway --gateway-id {{your-gateway-id}}
```

------

## 步骤 4：安装 SiteWise Edge 网关软件
<a name="install-gateway-software"></a>

要安装网关软件，请使用您在上一步中下载的安装程序包。安装过程将配置必要的组件，启动 Greengrass 核心服务，并使用注册您的设备。 Amazon IoT Greengrass安装完成后，请确认您的网关出现在[Amazon IoT SiteWise 控制台](https://console.amazonaws.cn/iotsitewise/)的 **Edge 网关**下方，以及 Greengrass 服务是否在您的设备上正常运行。

有关详细说明，请参阅[在本地设备上安装 Amazon IoT SiteWise Edge 网关软件](install-gateway-software-on-local-device.md)。

## 步骤 5：将 EMQX 代理配置为连接到外部应用程序
<a name="configure-emqx-broker-external-applications"></a>

**注意**  
 在继续操作之前，您必须已部署支持 SiteWise Edge MQTT 的 V3 网关。网关提供了配置 EMQX 代理所需的必要基础设施和安全设置。如果没有主动网关部署，代理配置将失败。

配置 EMQX 代理以实现物联网设备和外部应用程序之间的安全通信。EMQX 代理充当中央消息传递中心，可在您的物联网设备、网关和应用程序之间路由数据。EMQX 代理可确保在您的网关和边缘连接的应用程序上可靠地传输消息。有关更多信息，请参阅 [将外部应用程序连接到 EMQX 代理](connect-external-applications-emqx.md)。

**配置 EMQX 代理**

1. 设置 EMQX 代理。有关详细的配置说明，请按照[更新 EMQX 部署配置以进行](https://docs.amazonaws.cn/iot-sitewise/latest/userguide/configure-emqx-broker.html#update-emqx-broker-authentication)身份验证中的步骤 1-14 进行操作。

1. 为风电场监控设置 MQTT 主题。有关 MQTT 要求的更多信息，请参阅[MQTT 主题要求](connect-broker-payload-format.md#connect-broker-mqtt-requirements)。

   1. CPU 使用率：`SiteWiseTutorialDevice/cpu`

   1. 内存使用情况：`SiteWiseTutorialDevice/memory`

   1. 时间戳：`SiteWiseTutorialDevice/timestamp`

1. 检查您的配置并完成部署。

   1. 选择 “**确认**” 以保存您的设置。

   1. 选择 “**下一**步”，直到进入 “**查看**” 步骤。

   1. 在 **检查** 页上，选择 **部署**。

   1. 等待部署成功完成后再继续。

1. 使用有效负载格式准备要发送到 EMQX 代理的消息。有关构造负载的更多信息，请参阅[更新 EMQX 部署配置以进行](https://docs.amazonaws.cn/iot-sitewise/latest/userguide/configure-emqx-broker.html#update-emqx-broker-authentication)身份验证。

1. 实施以下安全措施：

   1. 使用传输层安全 (TLS) 加密（端口 8833）保护传输中的数据。有关更多信息，请参阅 [配置 TLS 以实现与 Edge 上的 EMQX 代理的安全连接 Amazon IoT SiteWise](connect-app-to-broker.md#configure-tls-emqx-broker)。

   1. 设置用户名和密码身份验证以验证设备身份。这种安全措施有助于保护您的数据，并确保只有经过授权的设备才能连接到您的系统。有关更多信息，请参阅 [启用用户名和密码认证](configure-emqx-broker.md#emqx-broker-username-password-auth)。

EMQX 允许您根据用户名、IP 地址或客户端 ID 等标识符创建授权规则。这对于控制对数据的访问非常有用。有关更多信息，请参阅 [在 EMQX 中为 Amazon IoT SiteWise Edge 设置授权规则](authorization-rules-emqx-broker.md)。

成功部署后，您的 EMQX 代理已配置完毕，可以安全地连接外部应用程序。

**注意**  
有效载荷格式必须遵循特定的结构， Amazon IoT SiteWise Edge 才能正确处理和摄取您的数据。有关所需结构的更多信息，请参见[JSON 负载结构](connect-broker-payload-format.md#connect-broker-json-payload)。

**示例：添加 CPU、内存和时间戳 JSON 有效负载**

**CPU 的 JSON**

```
{
  "propertyAlias": "SiteWiseTutorialDevice/cpu",
  "propertyValues": [
    {
      "quality": "GOOD",
      "timestamp": {
        "offsetInNanos": 0,
        "timeInSeconds": 1753206441
      },
      "value": {
        "integerValue": 45.2
      }
    }
  ]
}
```

**内存 JSON 有效**

```
{
  "propertyAlias": "SiteWiseTutorialDevice/memory",
  "propertyValues": [
    {
      "quality": "GOOD",
      "timestamp": {
        "offsetInNanos": 0,
        "timeInSeconds": 1753206441
      },
      "value": {
        "integerValue": 67.8
      }
    }
  ]
}
```

**时间戳 JSON 有效负载**

```
{
  "propertyAlias": "SiteWiseTutorialDevice/timestamp",
  "propertyValues": [
    {
      "quality": "GOOD",
      "timestamp": {
        "offsetInNanos": 0,
        "timeInSeconds": 1753206441
      },
      "value": {
        "integerValue": 23.5
      }
    }
  ]
}
```

**注意**  
每个 JSON 有效负载都必须作为单独的消息单独发布。不要将多个属性值合并成一条消息。将每个 CPU、内存和时间戳有效负载作为其自己不同的 MQTT 发布发送。

有效负载定义了物联网设备必须使用的 JSON 结构通过 EMQX 代理将设备数据发送到 SiteWise Edge。这种格式可确保 Amazon IoT SiteWise 可以识别您的设备并处理传感器读数。实施这些配置和有效载荷结构后，您的风力发电场监控系统就可以收集和处理数据了。

## 第 6 步：使用 Mosquitto 发布数据
<a name="add-mqtt-data-source"></a>

创建支持 MQTT 的 V3 网关后，将 Eclipse Mosquitto 配置为向 Edge 发送测试数据。 SiteWise Mosquitto 是一个开源 MQTT 消息代理，它使用 MQTT 协议在设备之间进行轻量级消息传递。Mosquitto 客户端允许您向 MQTT 主题发布消息，模拟来自风力发电场传感器的数据。使用 Mosquitto，无需任何第三方服务或其他设备即可模拟设备数据。有关更多信息，请参阅 Eclipse Mosquitto 官方网站上的[文档](https://mosquitto.org)。在本教程中，[采集数据教程中的本地数据](ingest-data-from-iot-things.md)和虚构数据用于演示目的。

**使用 Mosquitto CLI 客户端测试 SiteWise Edge EMQX 代理**

1. 在本地设备上安装 Mosquitto。有关详细说明，请参阅 Eclipse [Mosquitto 官方网站上的 “下载](https://mosquitto.org/download/) Mosquitto”。

1. 有关连接外部应用程序以传输工业数据的更多信息，请参阅[将外部应用程序连接到 EMQX 代理](connect-external-applications-emqx.md)。

**重要**  
确保您在此处配置的 MQTT 连接设置与 Mosquitto 发布命令中使用的设置相匹配。主机必须是 SiteWise Edge 网关的 IP 地址或主机名。该端口通常为 1883（如果使用 SSL/TLS，则为 8883）。

使用 Mosquitto 发布测试数据。打开命令行并运行以下命令：

**示例：CPU 属性**

```
mosquitto_pub -h localhost -p 1883 -t "SiteWiseTutorialDevice/cpu" -m '{
  "propertyAlias": "SiteWiseTutorialDevice/cpu",
  "propertyValues": [
    {
      "quality": "GOOD",
      "timestamp": {
        "timeInSeconds": 1753206441,
        "offsetInNanos": 0
      },
      "value": {
        "integerValue": 45.2
      }
    }
  ]
}'
```

**示例：内存属性**

```
mosquitto_pub -h localhost -p 1883 -t "SiteWiseTutorialDevice/memory" -m '{
  "propertyAlias": "SiteWiseTutorialDevice/memory",
  "propertyValues": [
    {
      "quality": "GOOD",
      "timestamp": {
        "timeInSeconds": 1753206441,
        "offsetInNanos": 0
      },
      "value": {
        "integerValue": 72.1
      }
    }
  ]
}'
```

**示例：时间戳属性**

```
mosquitto_pub -h localhost -p 1883 -t "SiteWiseTutorialDevice/timestamp" -m '{
  "propertyAlias": "SiteWiseTutorialDevice/timestamp",
  "propertyValues": [
    {
      "quality": "GOOD",
      "timestamp": {
        "timeInSeconds": 1753206441,
        "offsetInNanos": 0
      },
      "value": {
        "integerValue": 1683000000
      }
    }
  ]
}'
```

**注意**  
使用作`localhost`为 EMQX 代理地址仅用于演示目的。在生产环境中或从外部设备连接时，必须使用适合特定部署配置的 EMQX 代理地址。有关详细的连接说明，请参阅[将应用程序连接到 Edge 上的 EMQX 代理 Amazon IoT SiteWise](connect-app-to-broker.md)。

## 步骤 7：指定目的地
<a name="specify-destinations"></a>

在此步骤中，指定目标以确定源数据的定向位置。 Amazon IoT SiteWise 使用 Amazon S3 缓冲区作为目的地。此选项提供了一种可扩展的方式来存储和处理您的物联网数据。

------
#### [ Console ]

**添加目的地**

1. 导航到[Amazon IoT SiteWise 控制台](https://console.amazonaws.cn/iotsitewise/)并选择 **Edge 网关**。

1. 在**SiteWise 教程设备网关**下，选择**添加目的地**。

1. 在**目的地详细信息**下，选择**使用 Amazon S3 进行Amazon IoT SiteWise 缓冲**。要了解有关目的地类型的更多信息，请参阅[Amazon IoT SiteWise 网关目的地](gw-destinations.md#source-destination)。

1. 在**目的地名称**下，输入目的地的名称，例如`SiteWise Tutorial S3 Destination`。

1. 在 **S3 上传设置**下，输入您的 S3 存储桶位置。例如 `s3://sitewise-tutorial-mqtt-data-[your-account-id]`。要了解有关 Amazon S3 的更多信息[，请参阅亚马逊*简单存储服务用户指南中的创建、配置和使用 Amazon S3 存储*桶](https://docs.amazonaws.cn/AmazonS3/latest/userguide/creating-buckets-s3.html)。

1. 在**数据上传频率**下，输入介于 1 分钟到 30 天之间的值。例如 `1 minute`。

1. 在 “**数据存储设置”** 下：

   1. 取消选择 “**将数据复制到存储**”。虽然建议在生产环境中使用此设置，但本教程并不需要此设置。取消选择此选项后，将自动取消选择 “**从 S3 中删除数据**” 选项。

1. 选择**添加目标**。

**注意**  
本教程使用 1 分钟的时间间隔进行测试。完成本教程后，您可以调整此间隔以满足您的制作需求，也可以将其删除以避免额外收费。

------
#### [ Amazon CLI ]

**示例：创建使用 Amazon S3 进行缓冲的新 Amazon IoT SiteWise 目标**

使用《*Amazon CLI 命令参考*》[update-gateway-capability-configuration](https://docs.amazonaws.cn/cli/latest/reference/iotsitewise/update-gateway-capability-configuration.html)中的，配置发布者。将 `capabilityNamespace` 参数设置为 `iotsitewise:publisher:3`。

```
{
    "sources": [
      {
        "type": "MQTT"
      }
    ],
    "destinations": [
      {
        "type": "SITEWISE_BUFFERED",
        "name": "your-s3-destination-name",
        "config": {
          "targetBucketArn": "arn:aws:s3:::amzn-s3-demo-bucket/Optional/SomeFolder",
          "publishPolicy": {
            "publishFrequency": "1m",
            "localSizeLimitGB": 10
          },
          "siteWiseImportPolicy": {
            "enableSiteWiseStorageImport": true,
            "enableDeleteAfterImport": true,
            "bulkImportJobRoleArn": "arn:aws:iam::123456789012:role/your-role-name"
          }
        },
        "filters": [
          {
            "type": "PATH",
            "config": {
              "paths": [
                "#"
              ]
            }
          }
        ]
      }
    ]
  }
```

有关目的地的更多信息，请参阅[使用 Amazon S3 添加 Amazon IoT SiteWise 缓冲目的地](destinations-buffered.md)。

------

## 步骤 8：指定路径过滤器
<a name="specify-path-filters"></a>

在此步骤中，配置路径过滤器以指定要监控哪些 MQTT 主题以获取您的风力发电场设备数据。

路径过滤器遵循 MQTT 主题通配符规范，该规范支持两个特殊字符：
+ `+`— 此符号表示单级通配符，该通配符匹配单个级别上的任何字符串。
+ `#`— 此符号表示多级通配符，它与主题层次结构中的任意数量的级别相匹配。

**注意**  
有关其他路径过滤器的更多信息，请参阅[路径过滤器名称中的特殊字符](gw-destinations.md#path-filters-special-characters)。

------
#### [ Console ]

**配置路径过滤器**

在 “**路径” 过滤器**下：

1. 导航到[Amazon IoT SiteWise 控制台](https://console.amazonaws.cn/iotsitewise/)并选择 **Edge 网关**。

1. 在**SiteWise 教程设备网关**下，选择**添加目的地**。

1. 选择**添加路径过滤器**以手动输入以下路径过滤器：
   + `SiteWiseTutorialDevice/#`
   + `windfarm/+/turbine/+/performance/#`
   + `cpu/+/idle-time`
   + `cpu/+/interruption-count/+`
   + `+/memory/consumption`
   + `timestamp/+/measurement`
   + `device/+/status/+`
   + `system/+/performance-log`

1. 选择**添加目标**。

有关路径过滤器最佳做法的更多信息，请参阅[路径过滤器的最佳实践](gw-destinations.md#create-effective-path-filters)。

------
#### [ Amazon CLI ]

使用以下 Amazon CLI 命令配置路径过滤器：

**示例 1：使用通配符的设备数据**

```
{
 "destinations": [
   {
     "name": "All Device Data Destination"
   }
 ],
 "filters": [
   {
     "type": "PATH",
     "config": {
       "paths": [
         "SiteWiseTutorialDevice/#",
         "windfarm/+/turbine/+/performance/#"
       ]
     }
   }
 ]
}
```

此路径过滤器配置使用多级通配符 (\#) 来捕获来自风力发电场中任何涡轮机的所有数据 SiteWiseTutorialDevice 和所有性能数据。

**示例 2：CPU 和内存性能**

```
{
 "destinations": [
   {
     "name": "Performance Metrics Destination"
   }
 ],
 "filters": [
   {
     "type": "PATH",
     "config": {
       "paths": [
         "cpu/+/idle-time",
         "+/memory/consumption",
         "cpu/+/interruption-count/+"
       ]
     }
   }
 ]
}
```

此示例捕获各种 CPU 指标（空闲时间和中断次数）和设备间的内存消耗数据。

**示例 3：设备诊断**

```
{
 "destinations": [
   {
     "name": "Device Diagnostics Destination"
   }
 ],
 "filters": [
   {
     "type": "PATH",
     "config": {
       "paths": [
        "device/+/status/+",
        "system/+/performance-log"
       ]
     }
   }
 ]
}
```

此配置使用`+`通配符从多个设备捕获诊断数据，特别是系统性能日志和设备状态更新。

这三个路径过滤器与你用来通过 Mosquitto 发布测试数据的 MQTT 主题相匹配。过滤器可确保您的 SiteWise Edge 网关捕获和处理相关的 MQTT 消息。有关如何添加路径过滤器的更多信息，请参阅[向 Amazon IoT SiteWise Edge 目标添加路径过滤器](destinations-add-path-filters.md)。

------

## 步骤 9：配置您的 Amazon 物联网资源
<a name="configure-iot-resources"></a>

在此步骤中，创建必要的 Amazon IoT SiteWise 资产模型和资产来代表您的模拟第三方设备，并通过边缘网关启用数据摄取。

在开始此步骤之前，您应该已经完成了载[入数据](ingest-data-from-iot-things.md)教程中的步骤 3 到 8。这些步骤为通过支持 MQTT 的 V3 网关集成第三方数据奠定了基础组件。您还可以设置规则来定义传感器数据如何流入 Amazon IoT SiteWise，并运行模拟工业风电场数据的设备客户端脚本。

**验证您的 Amazon IoT 资源配置**

1. 使用以下 Amazon CLI 命令验证您创建并正确配置了 SiteWise 教程设备模型和 SiteWise 教程设备队列模型：

   ```
   aws iotsitewise describe-asset-model --asset-model-id {{your-device-model-id}}
   ```

   使用以下 Amazon CLI 命令检索您的资产模型的 ID：

   ```
   aws iotsitewise list-asset-models
   ```

1. 使用以下 Amazon CLI 命令验证您创建并正确配置了 SiteWise 教程设备 1 资产和 SiteWise 教程设备舰队 1 资产：

   ```
   aws iotsitewise describe-asset --asset-id {{your-asset-id}}
   ```

   使用以下 Amazon CLI 命令检索您的资产 ID：

   ```
   aws iotsitewise list-assets
   ```

## 第 10 步：可视化您的数据
<a name="visualize-your-data"></a>

设置 Grafana 的开源版本，以可视化您的风电场设备数据。Grafana 是一个可视化平台，可显示您的实时运营数据。这些仪表板可帮助您跟踪运营效率并确定整个基础架构的维护需求。有关集成的更多信息，请参阅[Amazon IoT SiteWise 与 Grafana 集成](grafana-integration.md)。

**要设置 Grafana**

1. 有关下载和安装最新版本 Grafana 的说明，请参阅 Grafana 官方网站上的 “[安装 Graf](https://grafana.com/docs/grafana/latest/setup-grafana/installation/#install-grafana) ana”。

1. 有关特定于您的操作系统的详细配置说明，请参阅 [Grafana 官方网站上的 “配置](https://grafana.com/docs/grafana/latest/setup-grafana/configure-grafana/#configure-grafana) Grafana”。

1. 配置 Amazon IoT SiteWise 数据源。这允许你在 Grafana 服务器上设置 Amazon IoT SiteWise 插件。有关如何使用该插件的详细说明，请参阅《*Amazon Managed Grafana* [用户指南》中的 “连接到 Amazon IoT SiteWise 数据源](https://docs.amazonaws.cn/grafana/latest/userguide/using-iotsitewise-in-AMG.html)”。

**重要**  
确保您拥有最新版本的 Grafana，以便与 Amazon IoT SiteWise 数据源兼容。

完成这些步骤后，您可以构建和自定义 Grafana 仪表板，以显示风电场的运营指标。这使您能够实时跟踪和分析边缘风电场的性能。

**注意**  
虽然本教程使用开源版本的 Grafana，但 Amazon 也为生产环境提供了亚马逊托管 Grafana。Amazon Managed Grafana 是一项完全托管的服务，无需设置、配置和维护您自己的 Grafana 服务器。  
当您准备好扩展解决方案时，可以考虑升级到亚马逊托管 Grafana。有关如何将 SiteWise 数据连接到 Grafana 的详细说明，请参阅在 Grafana [中可视化和共享数据教程](visualize-with-grafana.md)。

您已完成本教程。在此过程中，您将 Amazon IoT SiteWise Edge 配置为使用支持 MQTT 的 V3 网关集成第三方设备数据。此设置允许您在边缘收集、处理和可视化工业设备数据，从而减少延迟和运营成本。通过使用风力发电场演示，您可以通过支持 MQTT 的 V3 网关收集和处理运行指标，例如 CPU 和内存使用数据。

要增强您的物联网解决方案，可以考虑在《亚马逊快速用户指南》中探索诸如异常检测之类的高级功能[使用 Lookout for Equipment 检测异常](anomaly-detection.md)，或者在《[亚马逊快速](https://docs.amazonaws.cn/quicksight/latest/user/welcome.html)*用户指南》*中与 Amazon Quick 等其他 Amazon 服务集成，以进行高级分析。

## 步骤 11：完成教程后清理资源
<a name="tutorial-clean-up-resources"></a>

完成本关于将数据集成到 Amazon IoT SiteWise Edge 的教程后，请清理资源以免产生额外费用。

**要删除中的分层资产 Amazon IoT SiteWise**

1. 导航至 [Amazon IoT SiteWise 控制台](https://console.amazonaws.cn/iotsitewise/)。

1. 在左侧导航窗格中，选择 **资产**。

1. 在中删除资源时 Amazon IoT SiteWise，必须先取消与它们的关联。

   请完成以下步骤以取消设备资产与设备队列资产之间的关联：

   1. 选择您的设备队列资产 (**SiteWise Tutorial Device Fleet 1**)。

   1. 选择**编辑**。

   1. 在 **与此资产关联的资产** 下，针对与此设备队列资产关联的每个设备资产，选择 **取消关联**。

   1. 选择**保存**。
**注意**  
 设备资产现在不再按层次结构进行组织。

1. 选择您的设备资产 (**SiteWise Tutorial Device 1**)。

1. 选择**删除**。

1. 在确认对话框中，输入**Delete**，然后选择**删除**。

1. 对每个设备资产和设备实例集资产 (**SiteWise Tutorial Device Fleet 1**) 重复步骤 4 到 6。

**要在中删除分层资产模型 Amazon IoT SiteWise**

1. 导航至 [Amazon IoT SiteWise 控制台](https://console.amazonaws.cn/iotsitewise/)。

1. 删除您的设备和设备群组资产。

1. 在左侧导航窗格中，选择 **模型**。

1. 选择您的设备队列资产模型 (**SiteWise Tutorial Device Fleet Model**)。如果您拥有从某个模型创建的资产，则无法删除该模型。

   删除分层资产模型时，首先删除父资产模型。

1. 选择**删除**。

1. 在确认对话框中，输入**Delete**，然后选择**删除**。

1. 对设备资产模型 (**SiteWise Tutorial Device Model**) 重复步骤 4 到 6。

**禁用或删除中的规则 Amazon IoT Core**

1. 导航至 [Amazon IoT 控制台](https://console.amazonaws.cn/iot/)。

1. 在左侧导航窗格中，选择**消息路由**，然后选择**规则**。

1. 选择您的规则，然后选择**删除**。

1. 在确认对话框中，键入规则名称，然后选择**删除**。

**删除 Amazon S3 存储桶**

1. 导航到 [Amazon S3 控制台](https://console.amazonaws.cn/s3/)。

1. 在左侧导航窗格中，选择**通用存储桶**。

1. 在存储分区列表中，选择您创建的存储分区旁边的选项按钮，然后选择页面顶部的**清空**。

1. 在确认对话框中，确认删除，然后选择**清空**。

1. 存储桶为空后，选择**删除**以删除该存储桶。

1. 在确认对话框中，输入存储桶的名称以确认删除。

1. 选择**删除存储桶**。

**删除 E SiteWise dge 网关**

1. 导航至 [Amazon IoT SiteWise 控制台](https://console.amazonaws.cn/iotsitewise/)。

1. 在左侧导航窗格中，选择 **Edge 网关**。

1. 在网关下，选择您为本教程创建的网关。例如 `SiteWise Tutorial Device Gateway`。

1. 选择**删除**。

1. 要确认要删除网关，请在确认对话框**Delete**中键入，然后在出现的窗口中选择**删除**。

**删除你的物联网东西**

1. 导航至 [Amazon IoT 控制台](https://console.amazonaws.cn/iot/)。

1. 在左侧导航窗格中，选择**管理**，然后选择**事物**。

1. 选择您为本教程创建的 IoT 事物。例如 `SiteWiseTutorialDevice1`。

1. 选择**删除**。

1. 在确认对话框中，输入事物的名称，然后选择**删除**。

**要卸载 Amazon IoT Greengrass Core**

从本地设备上卸载 Amazon IoT Greengrass Core 软件。有关详细说明，请参阅[《*Amazon IoT Greengrass 开发人员指南，版本 2*》中的卸载 Amazon IoT Greengrass 核心软件](https://docs.amazonaws.cn/greengrass/v2/developerguide/uninstall-greengrass-core-v2.html)。

**重要**  
卸载 Greengrass 会删除所有本地配置和数据。在继续操作之前，请确保您已备份所有重要信息。

**（可选）删除第三方资源**

完成本教程后，请考虑关闭您创建的所有外部资源。这有助于防止第三方提供商收取费用。

## 其他资源
<a name="additional-resources"></a>

有关更多信息，请参阅以下资源：
+ [与其他 Amazon 服务互动](interact-with-other-services.md)
+ [使用 Amazon IoT SiteWise 边缘网关](gateways.md)
+ [对 SiteWise 边缘网关进行故障排除](troubleshooting-gateway.md)
+ [以下方面的安全最佳实践 Amazon IoT SiteWise](security-best-practices.md)
+ [Amazon 物联网定价](https://www.amazonaws.cn/iot-sitewise/pricing/)
+ [将数据摄取到 Amazon IoT SiteWise](industrial-data-ingestion.md)
+ [在中使用标签 Amazon IoT SiteWise](tag-basics.md)