

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用啟用 MQTT 的 V3 閘道將資料整合到 SiteWise Edge
<a name="integrate_sitewise_edge_mqtt"></a>

本教學課程將引導您整合使用 MQTT 訊息通訊協定和啟用 AWS IoT SiteWise MQTT 的 V3 閘道的第三方裝置和感應器。您將了解如何設定 AWS IoT SiteWise 邊緣閘道，以從已啟用 MQTT 的裝置收集和監控資料。 AWS IoT SiteWise 可讓您收集、處理和監控工業設備資料。使用 SiteWise Edge 功能來最佳化工業 IoT 操作，並將原始資料轉換為可行的洞見。

在本教學課程中，我們使用來自風力發電廠示範的資料來說明關鍵概念。熟悉程序後，您可以使用自己的資料重複教學課程。

 完成本教學課程後，您可以執行以下項目：
+ 設定啟用 MQTT 的 V3 閘道，以從工業裝置接收資料
+ 在邊緣處理和驗證來自您設備的傳入 MQTT 訊息
+  AWS IoT SiteWise 使用第三方視覺化平台在 中檢視裝置資料
+ 將已處理的資料從邊緣閘道傳送至 AWS 雲端 ，以啟用集中式儲存和進一步分析

此外，您可以透過連線至其他 AWS IoT 服務來利用邊緣閘道功能，以執行下列任務：
+ 設定 AWS IoT 規則將資料路由到 [Amazon S3](https://aws.amazon.com/s3/)、[Amazon Timestream](https://aws.amazon.com/timestream/) 和 等服務[AWS Lambda](https://aws.amazon.com/lambda/)。
+ 使用 [AWS IoT Device Defender](https://aws.amazon.com/iot-device-defender/) 遠端管理和更新您的閘道組態。
+ 使用 AWS IoT 安全功能實作安全裝置身分驗證和授權。如需詳細資訊，請參閱《 *AWS IoT 開發人員指南*》中的[AWS IoT 安全性](https://docs.aws.amazon.com/iot/latest/developerguide/iot-security.html)。
+ 根據設備資料建立自動提醒和通知。如需詳細資訊，請參閱《 *AWS IoT 開發人員指南*》中的 [規則 AWS IoT](https://docs.aws.amazon.com/iot/latest/developerguide/iot-rules.html)。

**注意**  
本教學課程參考第三方服務、工具和文件。 AWS 不是任何第三方產品或服務的廠商或供應商，也無法保證外部供應商資訊的準確性。在部署之前評估和驗證所有第三方工具。

**Topics**
+ [先決條件](#gateway-tutorial-prerequisites)
+ [步驟 1：建立 AWS IoT 政策](#gateway-tutorial-create-iot-policy)
+ [步驟 2：建立和設定 AWS 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：設定您的 AWS IoT 資源](#configure-iot-resources)
+ [步驟 10：視覺化您的資料](#visualize-your-data)
+ [步驟 11：在教學課程後清除資源](#tutorial-clean-up-resources)
+ [其他資源](#additional-resources)

## 先決條件
<a name="gateway-tutorial-prerequisites"></a>

為了完成本教學，您需要以下項目：
+  AWS 帳戶。如果您沒有帳戶，請參閱 [設定 AWS 帳戶](getting-started.md#set-up-aws-account)。
+ 具有管理員許可的 AWS Identity and Access Management (IAM) 使用者。如需詳細資訊，請參閱[的身分和存取管理 AWS IoT SiteWise](security-iam.md)。
+ Python 安裝在您裝置上的最新版本 。

**重要**  
本教學課程需要使用[擷取資料](ingest-data-from-iot-things.md)教學課程中建立的資源。您必須先完成，才能繼續本教學課程。

## 步驟 1：建立 AWS IoT 政策
<a name="gateway-tutorial-create-iot-policy"></a>

本教學課程使用您在[擷取資料](ingest-data-from-iot-things.md)教學課程中建立 AWS IoT 的政策。此政策會設定裝置的安全規則，並在其中建立外部裝置和感應器的數位表示 AWS IoT。此政策允許第三方裝置 AWS IoT Core 使用 MQTT （訊息佇列遙測傳輸） 將資料傳送至 。如需 MQTT 訊息的詳細資訊，請參閱[什麼是 MQTT？](https://aws.amazon.com/what-is/mqtt/)。

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

確保政策完成 AWS IoT 。如需詳細說明，請參閱[擷取資料](ingest-data-from-iot-things.md)教學中的[步驟 1](ingest-data-from-iot-things.md#ingestion-tutorial-create-iot-policy)。

**若要驗證您是否具有作用中 AWS IoT 的政策**

1. 導覽至 [AWS IoT 主控台](https://console.aws.amazon.com/iot/)。

1. 在左側導覽窗格中，選擇**股票**，然後選擇**政策**。

1. 選擇您建立的政策。例如 **SiteWiseTutorialDevicePolicy**。

1. 確認政策的狀態列為作用中。

------
#### [ AWS CLI ]

確保政策完成 AWS IoT 。如需詳細說明，請參閱[擷取資料](ingest-data-from-iot-things.md)教學中的[步驟 1](ingest-data-from-iot-things.md#ingestion-tutorial-create-iot-policy)。

使用 命令參考中的下列 AWS CLI [get-policy](https://docs.aws.amazon.com/cli/latest/reference/iot/get-policy.html) 命令來驗證您是否具有作用中 AWS IoT 政策： *AWS CLI *

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

------

此政策可讓您 AWS IoT 的裝置建立連線，並使用 MQTT 訊息與裝置陰影通訊。若要與裝置影子互動，您的 AWS IoT 物件會在開頭為 的主題上發佈和接收 MQTT 訊息`$aws/things/thing-name/shadow/`。此政策包含稱為 的物件政策變數`${iot:Connection.Thing.ThingName}`。此變數會取代每個主題中連接的物件名稱。`iot:Connect` 陳述式會設定哪些裝置可以建立連線的限制，確保物件政策變數只能取代以 開頭的名稱`SiteWiseTutorialDevice`。

如需詳細資訊，請參閱《 *AWS IoT 開發人員指南*》中的[物件政策變數](https://docs.aws.amazon.com/iot/latest/developerguide/iot-policy-variables.html)。

**注意**  
此政策適用於名稱開頭為 `SiteWiseTutorialDevice` 的實物。若要使用不同的實物名稱，您必須據此更新政策。

## 步驟 2：建立和設定 AWS IoT 物件
<a name="gateway-tutorial-create-and-configure-aws-iot-thing"></a>

在此步驟中，將邊緣裝置註冊為 AWS IoT 物件，並產生與 AWS IoT SiteWise Edge 安全通訊所需的物件憑證和金鑰。此程序為您的裝置建立透過啟用 MQTT 的 V3 閘道傳送第三方資料的基礎。

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

確保完成 AWS IoT 物件的建立和組態步驟。如需詳細說明，請參閱[擷取資料](ingest-data-from-iot-things.md)教學中的[步驟 2](ingest-data-from-iot-things.md#rule-tutorial-create-iot-thing)。

**確認您有作用中的 AWS IoT 物件**

1. 導覽至 [AWS IoT 主控台](https://console.aws.amazon.com/iot/)。

1. 在左側導覽窗格中，選擇**所有裝置**，然後選擇**物件**。

1. 選擇您建立的物件。例如 **SiteWiseTutorialDevice1**。

1. 在**憑證**下，確認狀態列為作用中。

------
#### [ AWS CLI ]

確保完成 AWS IoT 物件的建立和組態步驟。如需詳細說明，請參閱[擷取資料](ingest-data-from-iot-things.md)教學中的[步驟 2](ingest-data-from-iot-things.md#rule-tutorial-create-iot-thing)。

使用下列 AWS CLI 命令來驗證您是否具有作用中 AWS IoT 政策：

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

------

完成這些步驟後，您可以將裝置安全地連線至 AWS IoT SiteWise Edge。您已建立本機目錄來存放您為 MQTT 身分驗證產生的憑證和金鑰。您的裝置已在 [AWS IoT 主控台](https://console.aws.amazon.com/iot/)中註冊為 AWS IoT 物件，而且您的裝置已準備好與 SiteWise Edge 整合資料。您可以將工業設備或其他裝置連線至 AWS IoT 平台，並開始將資料擷取至 SiteWise Edge。

## 步驟 3：設定已啟用 SiteWise Edge MQTT 的 V3 閘道
<a name="gateway-tutorial-configure-your-edge-gateway"></a>

在此步驟中，建立已啟用 AWS IoT SiteWise Edge MQTT 的 V3 閘道，並將其設定為從 EMQX 代理程式接收資料。閘道可做為裝置與 之間的橋接器 AWS IoT。這可讓您在本機處理資料，然後再將其傳送到 AWS 雲端。此組態可減少頻寬並減少雲端處理延遲。

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

**若要建立已啟用 AWS IoT SiteWise MQTT 的 V3 閘道**

1. 登入 [AWS 管理主控台](https://console.aws.amazon.com/) 並開啟 [AWS IoT SiteWise 主控台](https://console.aws.amazon.com/iotsitewise/)。

1. 在左側導覽窗格中，選擇 **Edge 閘道**，然後選擇**建立閘道**。

1. 在**部署目標**下，選擇**自我託管閘道**。

1. 在自我託管閘道選項下，選擇**啟用 MQTT 的 V3 閘道 - *建議***。

1. 在**閘道組態**下：

   1. 在**閘道名稱**中，輸入閘道的名稱。例如 **SiteWise Tutorial Device Gateway**。

   1. 在 **Greengrass 裝置作業系統**中，為您的裝置選取適當的選項。

1. 在**進階組態**下：

   1. 選擇**預設設定**。

   1. 輸入 Greengrass 核心裝置的名稱，或使用 產生的名稱 AWS IoT SiteWise。

1. 選擇 **Create gateway (建立閘道)**。

1. 在確認對話方塊中，選擇**產生並下載**，為您的 SiteWise Edge 閘道產生安裝程式。如需詳細資訊，請參閱[建立自我託管 SiteWise Edge 閘道](create-gateway-ggv2.md#configure-gateway-console)。

**警告**  
將安裝程式檔案存放在安全的位置。此檔案無法重新產生，需要此檔案才能在後續步驟中完成閘道設定。

------
#### [ AWS CLI ]

使用 AWS CLI 建立自我託管閘道。您需要提供閘道的名稱，指定平台和閘道版本。如需詳細資訊，請參閱 *AWS IoT SiteWise API 參考*中的 [CreateGateway](https://docs.aws.amazon.com/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`。如需詳細資訊，請參閱 *AWS IoT SiteWise API 參考*中的 [CreateGateway](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateGateway.html)。
  + `coreDeviceThingName` – AWS IoT Greengrass V2 核心裝置的 AWS IoT 物件名稱。例如 `SiteWiseTutorialDevice1`。
  + `coreDeviceOperatingSystem` – 核心裝置的作業系統 AWS IoT Greengrass V2。閘道版本 3 需要指定作業系統。選項包括：`LINUX_AARCH64`、 `LINUX_AMD64`和 `WINDOWS_AMD64`。
+ `gateway-version` – 閘道的版本。
  + 將 `3`用於閘道版本，以建立啟用 MQTT 的 V3 閘道。
+ `cli-input-json` – 包含請求參數的 JSON 檔案。

 使用以下 AWS CLI 命令來確認您的閘道已成功建立：

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

------

## 步驟 4：安裝 SiteWise Edge 閘道軟體
<a name="install-gateway-software"></a>

若要安裝閘道軟體，請使用您在上一個步驟中下載的安裝程式套件。安裝程序會設定必要的元件、啟動 Greengrass 核心服務，以及向 註冊您的裝置 AWS IoT Greengrass。安裝完成後，請確認您的閘道顯示在[AWS IoT SiteWise 主控台](https://console.aws.amazon.com/iotsitewise/)的 **Edge 閘道**下，且 Greengrass 服務在您的裝置上正確執行。

如需詳細說明，請參閱 [在本機裝置上安裝 AWS 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 代理程式以啟用 IoT 裝置與外部應用程式之間的安全通訊。EMQX 代理程式可做為中央傳訊中樞，在 IoT 裝置、閘道和應用程式之間路由資料。EMQX 代理程式可確保閘道和連線應用程式在邊緣的可靠訊息傳遞。如需詳細資訊，請參閱[將外部應用程式連接至 EMQX 代理程式](connect-external-applications-emqx.md)。

**設定 EMQX 代理程式**

1. 設定 EMQX 代理程式。如需詳細組態指示，請遵循[更新 EMQX 部署組態中的步驟 1-14 進行身分驗證](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/configure-emqx-broker.html#update-emqx-broker-authentication)。

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. 在 **Review (檢閱)** 頁面，選擇 **Deploy (部署)**。

   1. 請等待部署成功完成，然後再繼續。

1. 使用承載格式準備訊息以傳送至 EMQX 代理程式。如需建構承載的詳細資訊，請參閱[更新 EMQX 部署組態以進行身分驗證](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/configure-emqx-broker.html#update-emqx-broker-authentication)。

1. 實作下列安全措施：

   1. 使用 Transport Layer Security (TLS) 加密 （連接埠 8833) 保護傳輸中的資料。如需詳細資訊，請參閱[設定 TLS 以安全連線至 AWS IoT SiteWise Edge 上的 EMQX 代理程式](connect-app-to-broker.md#configure-tls-emqx-broker)。

   1. 設定使用者名稱和密碼身分驗證來驗證裝置身分。此安全措施有助於保護您的資料，並確保只有授權的裝置才能連線至您的系統。如需詳細資訊，請參閱[啟用使用者名稱和密碼身分驗證](configure-emqx-broker.md#emqx-broker-username-password-auth)。

EMQX 可讓您根據使用者名稱、IP 地址或用戶端 ID 等識別符建立授權規則。這對於控制對資料的存取非常有用。如需詳細資訊，請參閱[在 EMQX 中設定 AWS IoT SiteWise Edge 的授權規則](authorization-rules-emqx-broker.md)。

成功部署後，您的 EMQX 代理程式已設定完成，並準備好與外部應用程式安全地連線。

**注意**  
承載格式必須遵循 AWS 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 發佈。

承載定義 IoT 裝置必須用來透過 EMQX 代理程式將裝置資料傳送至 SiteWise Edge 的必要 JSON 結構。此格式可確保 AWS IoT SiteWise 可以識別您的裝置並處理感應器讀數。在您實作這些組態和承載結構之後，您的風力發電廠監控系統已準備好收集和處理資料。

## 步驟 6：使用 Mosquitto 發佈資料
<a name="add-mqtt-data-source"></a>

建立啟用 MQTT 的 V3 閘道後，設定 Eclipse Mosquitto 將測試資料傳送至 SiteWise Edge。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 代理程式地址。如需詳細的連線指示，請參閱 [將應用程式連接到 AWS IoT SiteWise Edge 上的 EMQX 代理程式](connect-app-to-broker.md)。

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

在此步驟中，指定目的地以決定要將來源資料導向何處。使用 AWS IoT SiteWise 搭配 Amazon S3 緩衝作為目的地。此選項提供可擴展的方式來存放和處理您的 IoT 資料。

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

**新增目的地**

1. 導覽至 [AWS IoT SiteWise 主控台](https://console.aws.amazon.com/iotsitewise/)，然後選取 **Edge 閘道**。

1. 在 **SiteWise 教學課程裝置閘道**下，選擇**新增目的地**。

1. 在**目的地詳細資訊**下，選擇**AWS IoT SiteWise 使用 Amazon S3 緩衝**。若要進一步了解目的地類型，請參閱[AWS 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 *Simple Storage Service *[使用者指南》中的建立、設定和使用 Amazon S3 儲存貯](https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-buckets-s3.html)體。

1. 在**資料上傳頻率**下，輸入介於 1 分鐘到 30 天之間的值。例如 `1 minute`。

1. 在**資料儲存設定**下：

   1. 取消選取**將資料複製到儲存**體。雖然建議將此設定用於生產環境，但在此教學課程中不需要。當您取消選取此選項時，會自動取消選取**從 S3 刪除資料**選項。

1. 選擇 **Add destination** (新增目的地)。

**注意**  
本教學課程使用 1 分鐘間隔進行測試。完成教學課程後，您可以調整此間隔以符合您的生產需求，或刪除它以避免產生額外費用。

------
#### [ AWS CLI ]

**範例：使用 Amazon S3 建立新的緩衝 AWS IoT SiteWise 目的地 **

使用 *AWS CLI 命令參考*中的 [update-gateway-capability-configuration](https://docs.aws.amazon.com/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 新增 AWS IoT SiteWise 緩衝目的地](destinations-buffered.md)。

------

## 步驟 8：指定路徑篩選條件
<a name="specify-path-filters"></a>

在此步驟中，設定路徑篩選條件以指定要監控風力發電廠裝置資料的 MQTT 主題。

路徑篩選條件遵循 MQTT 主題萬用字元規格，支援兩個特殊字元：
+ `+` – 此符號代表單一層級萬用字元，符合單一層級的任何字串。
+ `#` – 此符號代表多層級萬用字元，符合主題階層中任意數量的層級。

**注意**  
如需其他路徑篩選條件的詳細資訊，請參閱 [路徑篩選條件名稱中的特殊字元](gw-destinations.md#path-filters-special-characters)。

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

**設定您的路徑篩選條件**

**在路徑篩選條件**下：

1. 導覽至 [AWS IoT SiteWise 主控台](https://console.aws.amazon.com/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. 選擇 **Add destination** (新增目的地)。

如需路徑篩選條件最佳實務的詳細資訊，請參閱 [路徑篩選條件的最佳實務](gw-destinations.md#create-effective-path-filters)。

------
#### [ AWS CLI ]

使用下列 AWS CLI 命令來設定您的路徑篩選條件：

**範例 1：使用萬用字元的裝置資料**

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

此路徑篩選條件組態使用多層萬用字元 (\$1) 來擷取來自 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 訊息。如需如何新增路徑篩選條件的詳細資訊，請參閱 [將路徑篩選條件新增至 AWS IoT SiteWise Edge 目的地](destinations-add-path-filters.md)。

------

## 步驟 9：設定您的 AWS IoT 資源
<a name="configure-iot-resources"></a>

在此步驟中，建立必要的 AWS IoT SiteWise 資產模型和資產來代表模擬的第三方裝置，並透過邊緣閘道啟用資料擷取。

在開始此步驟之前，您應該已完成[擷取資料](ingest-data-from-iot-things.md)教學課程中的步驟 3 到 8。這些步驟會建立基本元件，透過啟用 MQTT 的 V3 閘道整合第三方資料。您也可以設定定義感應器資料流入方式的規則 AWS IoT SiteWise，並執行模擬工業風力發電廠資料的裝置用戶端指令碼。

**驗證您的 AWS IoT 資源組態**

1. 使用以下 AWS CLI 命令來驗證您已建立並正確設定 SiteWise 教學裝置模型和 SiteWise 教學裝置機群模型：

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

   使用下列 AWS CLI 命令來擷取資產模型的 ID：

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

1. 使用以下 AWS CLI 命令來驗證您已建立並正確設定 SiteWise 教學裝置 1 資產和 SiteWise 教學裝置機群 1 資產：

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

   使用下列 AWS CLI 命令來擷取資產的 ID：

   ```
   aws iotsitewise list-assets
   ```

## 步驟 10：視覺化您的資料
<a name="visualize-your-data"></a>

設定 Grafana 的開放原始碼版本，以視覺化您的風力發電廠裝置資料。Grafana 是一種視覺化平台，可顯示您的即時操作資料。這些儀表板可協助您追蹤營運效率，並識別整個基礎設施的維護需求。如需整合的詳細資訊，請參閱 [AWS IoT SiteWise 與 Grafana 整合](grafana-integration.md)。

**設定 Grafana**

1. 如需下載並安裝最新版本 Grafana 的說明，請參閱官方 [Grafana 網站上的安裝](https://grafana.com/docs/grafana/latest/setup-grafana/installation/#install-grafana) Grafana。

1. 如需作業系統特定的詳細組態指示，請參閱官方 [Grafana 網站上的設定](https://grafana.com/docs/grafana/latest/setup-grafana/configure-grafana/#configure-grafana) Grafana。

1. 設定 AWS IoT SiteWise 資料來源。這可讓您在 Grafana 伺服器上設定 AWS IoT SiteWise 外掛程式。如需如何使用外掛程式的詳細說明，請參閱《*Amazon Managed Grafana 使用者指南*》中的[連線至 AWS IoT SiteWise 資料來源](https://docs.aws.amazon.com/grafana/latest/userguide/using-iotsitewise-in-AMG.html)。

**重要**  
確保您擁有最新版本的 Grafana，以便與 AWS IoT SiteWise 資料來源相容。

完成這些步驟後，您可以建置和自訂 Grafana 儀表板，以顯示風力發電廠的操作指標。這可讓您即時追蹤和分析邊緣的風力發電廠效能。

**注意**  
雖然本教學課程使用 Grafana 的開放原始碼版本，但 AWS 也為生產環境提供 Amazon Managed Grafana。Amazon Managed Grafana 是一種全受管服務，無需設定、設定和維護您自己的 Grafana 伺服器。  
當您準備好擴展解決方案時，請考慮升級至 Amazon Managed Grafana。如需如何將 SiteWise 資料連線至 Grafana 的詳細說明，請參閱 [Grafana 教學課程中的視覺化和共用資料](visualize-with-grafana.md)。

您已完成教學課程。在此程序中，您設定 AWS IoT SiteWise Edge 使用啟用 MQTT 的 V3 閘道來整合第三方裝置資料。此設定可讓您收集、處理和視覺化邊緣的工業設備資料，進而降低延遲和營運成本。透過使用風力發電廠示範，您可以透過啟用 MQTT 的 V3 閘道收集和處理操作指標，例如 CPU 和記憶體用量資料。

若要增強您的 IoT 解決方案，請考慮利用 探索異常偵測等進階功能[使用 Lookout for Equipment 偵測異常](anomaly-detection.md)，或整合 [Amazon Quick](https://docs.aws.amazon.com/quicksight/latest/user/welcome.html) *使用者指南*中的 AWS 其他服務，以進行進階分析。

## 步驟 11：在教學課程後清除資源
<a name="tutorial-clean-up-resources"></a>

完成有關將資料整合到 AWS IoT SiteWise Edge 的本教學課程後，請清理您的資源，以避免產生額外費用。

**在 中刪除階層式資產 AWS IoT SiteWise**

1. 導覽至 [AWS IoT SiteWise 主控台](https://console.aws.amazon.com/iotsitewise/)。

1. 在左側導覽窗格中，選擇 **Assets (資產)**。

1. 當您在 中刪除資產時 AWS IoT SiteWise，您必須先取消它們的關聯。

   完成下列步驟，以取消裝置資產與裝置機群資產的關聯：

   1. 選擇您的裝置機群資產 (**SiteWise Tutorial Device Fleet 1**)。

   1. 選擇**編輯**。

   1. 在 **Assets associated to this asset (與此資產相關聯的資產)** 底下，針對與此裝置機群資產相關聯的每個裝置資產選擇 **Disassociate (取消關聯)**。

   1. 選擇**儲存**。
**注意**  
 裝置資產現在不再組織為階層。

1. 選擇裝置資產 (**SiteWise Tutorial Device 1**)。

1. 選擇 **刪除**。

1. 在確認對話方塊中，輸入 **Delete**，然後選擇**刪除**。

1. 為每個裝置資產和裝置機群資產 () 重複步驟 4 到 6**SiteWise Tutorial Device Fleet 1**。

**在 中刪除階層式資產模型 AWS IoT SiteWise**

1. 導覽至 [AWS IoT SiteWise 主控台](https://console.aws.amazon.com/iotsitewise/)。

1. 刪除您的裝置和裝置機群資產。

1. 在左側導覽窗格中選擇 **Models (模型)**。

1. 選擇裝置機群資產模型 (**SiteWise Tutorial Device Fleet Model 1**)。如果您有已從該模型建立的資產，則無法刪除模型。

   刪除階層資產模型時，請先刪除父資產模型。

1. 選擇 **刪除**。

1. 在確認對話方塊中，輸入 **Delete**，然後選擇**刪除**。

1. 針對裝置資產模型 (**SiteWise Tutorial Device Model**) 重複步驟 4 到 6。

**在 中停用或刪除規則 AWS IoT Core**

1. 導覽至 [AWS IoT 主控台](https://console.aws.amazon.com/iot/)。

1. 在左側導覽窗格中，選擇**訊息路由**，然後選擇**規則**。

1. 選取您的規則，然後選擇**刪除**。

1. 在確認對話方塊中，輸入規則的名稱，然後選擇**刪除**。

**刪除 Amazon S3 儲存貯體**

1. 導覽至 [Amazon S3 主控台](https://console.aws.amazon.com/s3/)。

1. 在左側導覽窗格中，選擇**一般用途儲存貯**體。

1. 在儲存貯體清單中，選取您建立的儲存貯體旁的選項按鈕，然後在頁面頂端選擇**空白**。

1. 在確認對話方塊中，確認刪除，然後選擇**空白**。

1. 儲存貯體為空後，選擇**刪除**以刪除儲存貯體。

1. 在確認對話方塊中，輸入儲存貯體的名稱以確認刪除。

1. 選擇**刪除儲存貯體**。

**刪除 SiteWise Edge 閘道**

1. 導覽至 [AWS IoT SiteWise 主控台](https://console.aws.amazon.com/iotsitewise/)。

1. 在左側導覽窗格中，選擇 **Edge 閘道**。

1. 在閘道下，選擇您為此教學課程建立的閘道。例如 `SiteWise Tutorial Device Gateway`。

1. 選擇 **刪除**。

1. 若要確認要刪除閘道，**Delete**請在確認對話方塊中輸入 ，然後在出現的視窗中選擇**刪除**。

**刪除您的 IoT 物件**

1. 導覽至 [AWS IoT 主控台](https://console.aws.amazon.com/iot/)。

1. 在左側導覽窗格中，選擇**管理**，然後選擇**實物**。

1. 選取您為此教學課程建立的 IoT 物件。例如 `SiteWiseTutorialDevice1`。

1. 選擇 **刪除**。

1. 在確認對話方塊中，輸入物件的名稱，然後選擇**刪除**。

**解除安裝 AWS IoT Greengrass Core**

從本機裝置解除安裝 AWS IoT Greengrass Core 軟體。如需詳細說明，請參閱《 *AWS IoT Greengrass 開發人員指南》第 2 版*中的[解除安裝 AWS IoT Greengrass 核心軟體](https://docs.aws.amazon.com/greengrass/v2/developerguide/uninstall-greengrass-core-v2.html)。

**重要**  
解除安裝 Greengrass 會移除所有本機組態和資料。在繼續之前，請確定您已備份任何重要資訊。

**（選用） 刪除第三方資源**

完成本教學課程後，請考慮關閉您建立的任何外部資源。這有助於防止第三方供應商產生費用。

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

如需詳細資訊，請參閱下列資源：
+ [與其他 AWS 服務互動](interact-with-other-services.md)
+ [使用 AWS IoT SiteWise Edge 閘道](gateways.md)
+ [SiteWise Edge 閘道故障診斷](troubleshooting-gateway.md)
+ [的安全最佳實務 AWS IoT SiteWise](security-best-practices.md)
+ [AWS IoT 定價](https://aws.amazon.com/iot-sitewise/pricing/)
+ [將資料擷取至 AWS IoT SiteWise](industrial-data-ingestion.md)
+ [在 中使用標籤 AWS IoT SiteWise](tag-basics.md)