

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

# 使用 AWS IoT SiteWise Edge 閘道
<a name="gateways"></a>

AWS IoT SiteWise Edge 將雲端功能擴展到工業邊緣環境，實現本機資料處理、分析和決策。SiteWise Edge 與 AWS IoT SiteWise 和其他 AWS 服務整合，以提供全方位的工業 IoT 解決方案。閘道可做為工業設備與 之間的媒介 AWS IoT SiteWise。

SiteWise Edge 閘道會在兩個不同的部署目標上執行：
+ AWS IoT Greengrass V2
+ Siemens Industrial Edge

您可以使用 SiteWise Edge 閘道在邊緣收集資料，並將其發佈至雲端。對於在 上執行的閘道 AWS IoT Greengrass，您也可以使用資產模型和資產處理邊緣的資料。

上的 AWS IoT SiteWise Edge 應用程式Siemens Industrial Edge支援工業設備與 之間的整合， AWS IoT SiteWise 因此您可以彙總和處理原始機器資料，並在本機執行分析，然後再將精簡的資料傳送至 AWS 雲端。

## SiteWise Edge 閘道的關鍵概念
<a name="gateways-key-concepts"></a>

SiteWise Edge 有數個有用的功能，可用於工業環境中的邊緣運算。

**本機資料收集和處理**  
支援使用 OPC-UA 和 MQTT 等通訊協定從工業資產收集資料。閘道在 AWS IoT Greengrass Core 裝置或 上執行Siemens Industrial Edge。

**離線操作**  
在網際網路中斷期間繼續收集和處理資料，並在恢復連線時與雲端同步。

**含 AWS IoT Greengrass 元件的邊緣運算**  
使用 IoT SiteWise 發佈者將資料轉送至雲端和 AWS IoT SiteWise 處理器，以進行本機轉換和計算。發佈者和處理器都是 AWS IoT Greengrass V2 元件。如需 AWS IoT Greengrass 元件的詳細資訊，請參閱 [AWS提供的元件](https://docs.aws.amazon.com/greengrass/v2/developerguide/public-components.html)。

**與 整合 AWS IoT SiteWise 以擴展雲端功能**  
使用 AWS IoT SiteWise 雲端功能，將資產模型、分析和儀表板延伸至邊緣。  
對於已啟用資料處理套件的閘道，您可以使用 AWS OpsHub 的 AWS IoT SiteWise 來集中管理 SiteWise Edge 閘道。 AWS OpsHub 提供遠端管理和監控功能。如需詳細資訊，請參閱[使用 AWS OpsHub for 管理 SiteWise Edge 閘道 AWS IoT SiteWise](manage-gateways-ggv2.md#opshub-app)。

**合作夥伴資料來源整合**  
將合作夥伴資料來源連接至您的閘道，並從 SiteWise Edge 閘道和 AWS 雲端中的合作夥伴接收資料。如需詳細資訊，請參閱[SiteWise Edge 閘道上的合作夥伴資料來源](partner-data-sources.md)。

**邊緣上的本機視覺化**  
為邊緣的即時洞見提供自訂儀表板。  
在本機裝置上使用 SiteWise Monitor 入口網站在設施中本機監控資料。如需詳細資訊，請參閱[在邊緣啟用您的 AWS IoT SiteWise 入口網站](monitor-enable-edge.md)。

## 實作 SiteWise Edge 的優勢
<a name="benefits"></a>

SiteWise Edge 提供多種優勢，可大幅改善工業營運和決策程序。
+ 即時營運洞見，不會延遲雲端處理
+ 中斷連線環境中的操作持續性
+ 透過邊緣預先處理降低頻寬和儲存成本
+ 提高可靠性，並能夠做出本機、資料驅動的決策

# 使用 自我託管 AWS IoT SiteWise Edge 閘道 AWS IoT Greengrass V2
<a name="gw-self-host-gg2"></a>

設定 AWS IoT SiteWise Edge 以在本機收集、處理和視覺化工業設備的資料，再將其傳送至雲端。使用 自行託管 AWS IoT Greengrass Version 2。

 AWS IoT SiteWise Edge 閘道可做為工業設備和 之間的媒介 AWS IoT SiteWise。在 上執行時 AWS IoT Greengrass Version 2，SiteWise Edge 閘道支援現場部署的資料收集和處理。

自我託管閘道有兩種類型：

**啟用 MQTT 的 V3 閘道**  
啟用 MQTT 的 V3 閘道架構可改善資料擷取功能。它利用 MQTT 通訊協定進行有效率的資料通訊，並提供可設定的資料目的地。其中包括使用 Amazon S3 緩衝資料擷取的選項，以及即時資料擷取。您可以實作路徑篩選條件來訂閱特定 MQTT 主題，以啟用目標資料收集。請注意，已啟用 MQTT 的 V3 閘道不支援 Data Processing Pack 功能。如需詳細資訊，請參閱[啟用 MQTT 的 AWS IoT SiteWise Edge V3 閘道](mqtt-enabled-v3-gateway.md)。

**傳統串流 V2 閘道**  
Classic 串流 V2 閘道代表傳統的 AWS IoT SiteWise Edge 閘道架構。它非常適合現有的 SiteWise Edge 部署和熟悉已建立工作流程的使用者。雖然 Classic 串流，但 V2 閘道支援資料處理套件，但請注意，資料處理套件產生的資料無法透過 Amazon S3 擷取。如果您需要維持與現有部署的相容性，或需要資料處理套件功能，請使用 Classic 串流 V2 閘道。如需詳細資訊，請參閱[傳統串流、適用於 AWS IoT SiteWise Edge 的 V2 閘道](classic-streams-v2-gateway.md)。

**Topics**
+ [

# AWS IoT SiteWise Edge 自我託管閘道需求
](configure-gateway-ggv2.md)
+ [

# 建立自我託管 SiteWise Edge 閘道
](create-gateway-ggv2.md)
+ [

# 在本機裝置上安裝 AWS IoT SiteWise Edge 閘道軟體
](install-gateway-software-on-local-device.md)
+ [

# 啟用 MQTT 的 AWS IoT SiteWise Edge V3 閘道
](mqtt-enabled-v3-gateway.md)
+ [

# 傳統串流、適用於 AWS IoT SiteWise Edge 的 V2 閘道
](classic-streams-v2-gateway.md)
+ [

# 將資料來源新增至 AWS IoT SiteWise Edge 閘道
](add-data-sources.md)
+ [

# AWS IoT Greengrass AWS IoT SiteWise Edge 的 元件
](sw-edge-components.md)
+ [

# 在 SiteWise Edge 閘道上篩選資產
](filter-assets-ggv2.md)
+ [

# 設定代理支援和管理 AWS IoT SiteWise Edge 的信任存放區
](edge-apis-manage-trust-stores-proxy.md)
+ [

# 邊緣上的 AWS IoT SiteWise APIs
](edge-apis.md)

# AWS IoT SiteWise Edge 自我託管閘道需求
<a name="configure-gateway-ggv2"></a>

AWS IoT SiteWise 邊緣閘道以一組元件 AWS IoT Greengrass V2 的形式在 上執行，這些 AWS IoT Greengrass 元件支援現場部署的資料收集、處理和發佈。若要設定在 上執行的 SiteWise Edge 閘道 AWS IoT Greengrass V2，請在 中建立閘道， AWS 雲端 並執行 SiteWise Edge 閘道軟體來設定本機裝置。當您使用 AWS 管理主控台 建立 SiteWise Edge 閘道時，會提供安裝指令碼。在目標閘道裝置上執行此指令碼，以設定必要的軟體和相依性。

## 本機裝置需求
<a name="gateway-requirements-local-device"></a>

本機裝置必須符合下列要求，才能安裝和執行 SiteWise Edge 閘道軟體。
+ 支援 AWS IoT Greengrass V2 核心軟體版本 v[2.3.0 ](https://docs.aws.amazon.com/greengrass/v2/developerguide/greengrass-release-2021-06-29.html)或更新版本。如需詳細資訊，請參閱《 *AWS IoT Greengrass Version 2 開發人員指南*》中的[需求](https://docs.aws.amazon.com/greengrass/v2/developerguide/setting-up.html#greengrass-v2-requirements)。
+ 下列其中一個支援的平台：
  + 作業系統：Ubuntu 20.04 或更新版本

    架構：x86\$164 (AMD64) 或 ARMv8 (Aarch64)
  + 作業系統：Red Hat Enterprise Linux (RHEL) 8

    架構：x86\$164 (AMD64) 或 ARMv8 (Aarch64)
  + 作業系統：Amazon Linux 2

    架構：x86\$164 (AMD64) 或 ARMv8 (Aarch64)
  + 作業系統：Debian 11

    架構：x86\$164 (AMD64) 或 ARMv8 (Aarch64)
  + 作業系統：Windows Server 2019 及更新版本

    架構：x86\$164 (AMD64)
**注意**  
ARM 平台僅支援具有 Data Collection Pack 的 SiteWise Edge 閘道。不支援資料處理套件。
+ 最低 4 GB RAM。
+ SiteWise Edge 閘道軟體的可用磁碟空間下限為 10 GB。
+ 設定您的本機裝置，以確保可存取適當的連接埠。如需所需傳出服務端點的完整清單，請參閱 [AWS IoT SiteWise Edge 閘道所需的服務端點](https://docs.aws.amazon.com/prescriptive-guidance/latest/endpoints-for-iot-sitewise-edge-gateways/required-endpoints.html)。
+ Java 執行期環境 (JRE) 第 11 版或更新版本。Java 必須在裝置上的`PATH`環境變數上可用。若要使用 Java 開發自訂元件，您必須安裝 Java 開發套件 (JDK)。我們建議您使用 [Amazon Corretto](https://docs.aws.amazon.com/corretto/) 或 [OpenJDK](https://openjdk.org/projects/jdk/)。

### 要允許列出本機裝置的 Amazon S3 儲存貯體
<a name="w2aac17c19c13b5b7"></a>

設定您的本機裝置以提供防火牆存取下列 Amazon S3 儲存貯體。根據裝置的個別區域設定存取權。


| 區域 | Endpoint | 
| --- | --- | 
|  亞太地區 (東京)  |  https://iot-sitewise-gateway-ap-northeast-1-785558802005.s3.ap-northeast-1.amazonaws.com  | 
|  亞太地區 (首爾)  |  https://iot-sitewise-gateway-ap-northeast-2-310055672453.s3.ap-northeast-2.amazonaws.com  | 
|  亞太地區 (孟買)  |  https://iot-sitewise-gateway-ap-south-1-677656657204.s3.ap-south-1.amazonaws.com  | 
|  亞太地區 (新加坡)  |  https://iot-sitewise-gateway-ap-southeast-1-475191558554.s3.ap-southeast-1.amazonaws.com  | 
|  亞太地區 (悉尼)  |  https://iot-sitewise-gateway-ap-southeast-2-396319432685.s3.ap-southeast-2.amazonaws.com  | 
|  加拿大 (中部)  |  https://iot-sitewise-gateway-ca-central-1-842060018567.s3.ca-central-1.amazonaws.com  | 
|  中國 (北京)  |  https://iot-sitewise-gateway-cn-north-1-237124890262---s3---cn-north-1.amazonaws.com.rproxy.govskope.ca.cn  | 
|  歐洲 (法蘭克福)  |  https://iot-sitewise-gateway-eu-central-1-748875242063.s3.eu-central-1.amazonaws.com  | 
|  歐洲 (愛爾蘭)  |  https://iot-sitewise-gateway-eu-west-1-383414315062.s3.eu-west-1.amazonaws.com  | 
|  美國東部 (維吉尼亞北部)  |  https://iot-sitewise-gateway-us-east-1-223558168232.s3.us-east-1.amazonaws.com 和 https://iot-sitewise-gateway-us-east-1-223558168232.s3.amazonaws.com/  | 
|  美國東部 (俄亥俄)  |  https://iot-sitewise-gateway-us-east-2-005072661813.s3.us-east-2.amazonaws.com  | 
|  AWS GovCloud （美國西部）  |  https://iot-sitewise-gateway-us-gov-west-1-599984565679.s3.us-gov-west-1.amazonaws.com/  | 
|  美國西部 (奧勒岡)  |  https://iot-sitewise-gateway-us-west-2-502577205460.s3.us-west-2.amazonaws.com  | 

## 資料處理套件需求
<a name="w2aac17c19c13b7"></a>

**注意**  
資料處理套件 (DPP) 功能不再提供給新客戶使用。現有客戶可以繼續正常使用該服務。如需詳細資訊，請參閱[資料處理套件可用性變更](https://docs.aws.amazon.com/iot-sitewise/latest/appguide/iotsitewise-dpp-availability-change.html)。
+ 如果您計劃搭配 使用邊緣的資料處理套件 AWS IoT SiteWise，您的本機裝置也必須符合下列要求：
  + 具有 x86 64 位元四核心處理器。
  + 至少有 16 GB 的 RAM。
  + 如果使用 ，RAM 至少要有 32 GBMicrosoft Windows。
  + 至少有 256 GB 的可用磁碟空間。
  + 本機裝置必須允許連接埠 443 的網路傳入流量。
  + 下列連接埠保留供 使用 AWS IoT SiteWise：80、443、3001、4569、4572、8000、8081、8082、8084、8085、8445、8086、9000、9500、11080 和 50010。使用保留連接埠處理流量可能會導致連線終止。
**注意**  
 AWS IoT Greengrass V2 串流管理員元件有自己的需求。如需詳細資訊，請參閱《 *AWS IoT Greengrass Version 2 開發人員指南*》中的[組態](https://docs.aws.amazon.com/greengrass/v2/developerguide/stream-manager-component.html#stream-manager-component-configuration)。
+ 最小磁碟空間和運算容量需求取決於實作和使用案例特有的各種因素。
  + 在間歇性網際網路連線狀態下，快取資料所需的磁碟空間取決於下列因素：
    + 上傳的資料串流數目
    + 每個資料串流每秒的資料點
    + 每個資料點的大小
    + 通訊速度
    + 預期的網路停機時間
  + 輪詢和上傳資料所需的運算容量取決於下列因素：
    + 上傳的資料串流數目
    + 每個資料串流每秒的資料點

## 設定許可以使用 SiteWise Edge 閘道
<a name="gateway-iam-permisions"></a>

您必須具有下列許可才能使用 SiteWise Edge 閘道：

**注意**  
如果您使用 AWS IoT SiteWise 主控台建立 SiteWise Edge 閘道，則會為您新增這些許可。
+ SiteWise Edge 閘道的 IAM 角色必須允許您在 AWS IoT Greengrass V2 裝置上使用 SiteWise Edge 閘道來處理資產模型資料和資產資料。

  角色允許下列服務擔任該角色：`credentials.iot.amazonaws.com`。

  **許可詳細資訊**

  角色必須具有下列許可：
  + `iotsitewise` – 允許主體擷取邊緣的資產模型資料和資產資料。
  + `iot` – 允許 AWS IoT Greengrass V2 您的裝置與 互動 AWS IoT。
  + `logs` – 允許 AWS IoT Greengrass V2 您的裝置將日誌傳送至 Amazon CloudWatch Logs。
  + `s3` – 允許 AWS IoT Greengrass V2 您的裝置從 Amazon S3 下載自訂元件成品。

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Action": [
                  "iotsitewise:BatchPutAssetPropertyValue",
                  "iotsitewise:List*",
                  "iotsitewise:Describe*",
                  "iotsitewise:Get*"
              ],
              "Resource": "*"
          },
          {
              "Effect": "Allow",
              "Action": [
                  "iot:DescribeCertificate",
                  "logs:CreateLogGroup",
                  "logs:CreateLogStream",
                  "logs:PutLogEvents",
                  "logs:DescribeLogStreams",
                  "s3:GetBucketLocation",
                  "s3:GetObject",
                  "iot:Connect",
                  "iot:Publish",
                  "iot:Subscribe",
                  "iot:Receive",
                  "iot:DescribeEndpoint"
              ],
              "Resource": "*"
          }
      ]
  }
  ```

------

# 建立自我託管 SiteWise Edge 閘道
<a name="create-gateway-ggv2"></a>

使用 AWS IoT SiteWise 主控台或 AWS CLI 建立自我託管 SiteWise Edge 閘道。此程序詳細說明如何建立將安裝在自有硬體上的自我託管 SiteWise Edge 閘道。如需建立在 Siemens Industrial Edge 上執行的 SiteWise Edge 閘道的詳細資訊，請參閱 [在 上託管 SiteWise Edge 閘道 Siemens Industrial Edge](sitewise-edge-on-siemens.md)。

## 建立 SiteWise Edge 閘道
<a name="configure-gateway-console"></a>

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

1. <a name="sitewise-open-console"></a>導覽至 [AWS IoT SiteWise 主控台](https://console.aws.amazon.com/iotsitewise/)。

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

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

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

1. 選取**啟用 MQTT 的 V3 閘道**或 **Classic 串流 V2 閘道**。如需每個選項的詳細資訊，請參閱 [使用 自我託管 AWS IoT SiteWise Edge 閘道 AWS IoT Greengrass V2](gw-self-host-gg2.md)。建議使用啟用 MQTT 的 V3 閘道做為未來就緒功能。

1. 在**閘道組態**區段中，輸入 SiteWise Edge 閘道的名稱，或使用 產生的名稱 AWS IoT SiteWise。

1. 在 **Greengrass 裝置作業系統**下，選取您要安裝此 SiteWise Edge 閘道之裝置的作業系統。
**注意**  
資料處理套件僅適用於 x86 平台。它僅適用於 Classic 串流、V2 閘道

1. （選用） 若要在邊緣處理和組織資料，請在**邊緣功能**下選取**資料處理套件**。
**注意**  
若要授予您公司目錄中使用者群組存取此 SiteWise Edge 閘道的權限，請參閱 [在 SiteWise Edge 中設定邊緣功能](edge-data-collection-and-processing.md#using-sitewise-edge) 

1. （選用） 在**進階組態**下，執行下列動作：

   1. 針對 **Greengrass 核心裝置**，選擇下列其中一個選項：
     + **預設設定** – AWS 自動使用預設設定在其中建立 Greengrass 核心裝置 AWS IoT Greengrass V2。

       1. 輸入 Greengrass 核心裝置的名稱，或使用 產生的名稱 AWS IoT SiteWise。
     + **進階設定** – 如果您想要使用現有的 Greengrass 核心裝置或手動建立，請選擇此選項。

       1. 選擇 Greengrass 核心裝置，或選擇**建立 Greengrass 核心裝置**以在 AWS IoT Greengrass V2 主控台中建立。如需詳細資訊，請參閱《*AWS IoT Greengrass Version 2 開發人員指南*》中的[設定 AWS IoT Greengrass V2 核心裝置](https://docs.aws.amazon.com/greengrass/v2/developerguide/setting-up.html)。

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

1. 在**產生 SiteWise Edge 閘道安裝程式**對話方塊中，選擇**產生和下載**。 AWS IoT SiteWise 會自動產生安裝程式，供您用來設定本機裝置。
**重要**  
您無法重新產生此檔案。請務必將安裝程式檔案儲存在安全的位置，因為您稍後將使用 檔案。

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

若要使用 建立自我託管閘道 AWS CLI，請提供閘道的名稱、指定平台和閘道版本。您可以在建立閘道時指定許多其他選項。如需詳細資訊，請參閱《 *AWS CLI 命令參考*》中的 [create-gateway](https://docs.aws.amazon.com/cli/latest/reference/iotsitewise/create-gateway.html)。 AWS IoT SiteWise

若要使用此範例，請以您自己的資訊取代使用者輸入預留位置。

```
aws iotsitewise create-gateway \
    --gateway-name your-gateway-name \
    --gateway-platform greengrassV2={coreDeviceThingName=your-core-device-thing-name, coreDeviceOperatingSystem=LINUX_AMD64} \                        
    --gateway-version 3 \
    [--cli-input-json your-configuration]
```
+ `gateway-name` – 閘道的唯一名稱。
+ `gateway-platform` – 指定閘道平台組態。對於自我託管閘道，輸入 `greengrassV2`。如需詳細資訊，請參閱 *AWS CLI 命令參考*之 create-gateway 區段中的[選項](https://docs.aws.amazon.com/cli/latest/reference/iotsitewise/create-gateway.html#options) AWS IoT SiteWise。
  + `coreDeviceThingName` – AWS IoT Greengrass V2 核心裝置的 AWS IoT 物件名稱。
  + `coreDeviceOperatingSystem` – 核心裝置的作業系統 AWS IoT Greengrass V2。需要指定作業系統，`gateway-version 3`不適用於 `gateway-version 2`。選項包括：`LINUX_AMD64`、 `LINUX_AARCH64`和 `WINDOWS_AMD64`
+ `gateway-version` – 閘道的版本。
  + 若要建立啟用 MQTT 的 V3 閘道，請將 `3`用於閘道版本。
  + 若要建立 Classic 串流、V2 閘道，請將 `2`用於閘道版本。
+ `cli-input-json` – 包含請求參數的 JSON 檔案。

------

現在您已建立 SiteWise Edge 閘道 [在本機裝置上安裝 AWS IoT SiteWise Edge 閘道軟體](install-gateway-software-on-local-device.md)。

# 在本機裝置上安裝 AWS IoT SiteWise Edge 閘道軟體
<a name="install-gateway-software-on-local-device"></a>

建立 AWS IoT SiteWise Edge 閘道之後，請在本機裝置上安裝 SiteWise Edge 閘道軟體。SiteWise Edge 閘道軟體可以安裝在已安裝 Linux 或Microsoft Windows伺服器作業系統的本機裝置上。

**重要**  
請確定您的本機裝置連線至網際網路。

------
#### [ Linux ]

下列程序使用 SSH 連線到您的本機裝置。或者，您可以使用 USB 快閃磁碟機或其他工具，將安裝程式檔案傳輸至本機裝置。如果您不想使用 SSH，請跳到下面的**步驟 2：安裝 SiteWise Edge 閘道軟體**。

**SSH 先決條件**

使用 SSH 連線至裝置之前，請先完成下列先決條件。
+ Linux 和 macOS - 下載並安裝 OpenSSH。如需詳細資訊，請參閱 [https://www.openssh.com](https://www.openssh.com/)。

**步驟 1：將安裝程式複製到 SiteWise Edge 閘道裝置**

下列指示說明如何使用 SSH 用戶端連線至本機裝置。

1. 若要連線至您的裝置，請在電腦上的終端機視窗中執行下列命令，以具有更高權限和 *IP* 地址的使用者名稱取代*使用者名稱*和 IP。

   ```
   ssh username@IP
   ```

1. 若要將 AWS IoT SiteWise 產生的安裝程式檔案傳輸至 SiteWise Edge 閘道裝置，請執行下列命令。
**注意**  
將 *path-to-saved-installer* 取代為您電腦上用來儲存安裝程式檔案和安裝程式檔案名稱的路徑。
將 *IP 地址*取代為本機裝置的 IP 地址。
將 *directory-to-receive-installer* 取代為您用來接收安裝程式檔案之本機裝置上的路徑。

   ```
   scp path-to-saved-installer.sh user-name@IP-address:directory-to-receive-installer
   ```

**步驟 2：安裝 SiteWise Edge 閘道軟體**

在下列程序中，在 SiteWise Edge 閘道裝置上的終端機視窗中執行命令。

1. 給予安裝程式檔案執行許可。

   ```
   chmod +x path-to-installer.sh
   ```

1. 執行安裝程式。

   ```
   sudo ./path-to-installer.sh
   ```

------
#### [ Windows Server ]

**先決條件**

您必須具備下列先決條件，才能安裝 SiteWise Edge 閘道軟體：
+ Microsoft Windows Server 2019 或更新版本已安裝
+ 管理員權限
+ 已安裝 PowerShell 5.1 版或更新版本
+ SiteWise Edge 閘道安裝程式下載到要佈建的 Windows Server

**步驟 1：以管理員身分執行 PowerShell**

1. 在您要安裝 SiteWise Edge 閘道的 Windows 伺服器上，以管理員身分登入。

1. 在 Windows 搜尋列中輸入 **PowerShell**。

1. 在搜尋結果中，開啟 Windows PowerShell 應用程式上的內容 （按一下滑鼠右鍵） 選單。選擇**以管理員身分執行**。

**步驟 2：安裝 SiteWise Edge 閘道軟體**

在 SiteWise Edge Gateway 裝置上的終端機視窗中執行下列命令。

1. 解除封鎖 SiteWise Edge 閘道安裝程式。

   ```
   unblock-file path-to-installer.ps1
   ```

1. 執行安裝程式。

   ```
   ./path-to-installer.ps1
   ```
**注意**  
如果系統已停用指令碼執行，請將指令碼執行政策變更為 `RemoteSigned`。  

   ```
   Set-ExecutionPolicy RemoteSigned
   ```

------

下一個步驟取決於您需要的自我託管閘道*類型*。繼續至 [啟用 MQTT 的 AWS IoT SiteWise Edge V3 閘道](mqtt-enabled-v3-gateway.md)或 [傳統串流、適用於 AWS IoT SiteWise Edge 的 V2 閘道](classic-streams-v2-gateway.md)。

# 啟用 MQTT 的 AWS IoT SiteWise Edge V3 閘道
<a name="mqtt-enabled-v3-gateway"></a>

AWS IoT SiteWise 可以使用啟用 MQTT 的 V3 閘道，代表 SiteWise Edge 閘道架構的重大進展。此閘道類型利用 MQTT （訊息佇列遙測傳輸） 通訊協定進行資料通訊，在工業 IoT 部署中提供增強的彈性和效率。

啟用 MQTT 的 V3 閘道使用 MQTT 進行資料傳輸，啟用輕量型的發佈訂閱網路通訊協定，可在裝置和雲端之間有效率地傳輸訊息。您可以設定各種資料目的地，包括使用 Amazon S3 直接將即時資料擷取至 AWS IoT SiteWise 和緩衝資料擷取。若要啟用精確的資料收集，您可以實作路徑篩選條件來訂閱特定的 MQTT 主題。

啟用 MQTT 的 V3 閘道隨附預先設定的即時目的地，並將篩選條件設定為 "\$1" （所有主題），您可以視需要自訂或移除。為了簡化資料管理，每個閘道只能有一個即時目的地。

啟用 MQTT 的架構與 Classic 串流 V2 閘道明顯不同。雖然 V2 使用以串流為基礎的方法，但 V3 採用 MQTT，提供更可設定的資料目的地和篩選選項。不過，請注意，V3 不支援資料處理套件，該套件可在 V2 中使用。

啟用 MQTT 的 V3 閘道提供數種優點：
+ 由於 MQTT 輕量型本質，改善了可擴展性，可更好地處理許多裝置和高頻率資料傳輸。
+ 透過路徑篩選條件增強資料控制，可精細管理資料收集並減少不必要的資料傳輸和處理。
+ 靈活的資料處理，允許根據特定需求在即時處理和緩衝儲存之間進行組態。
+ 符合現代 IoT 通訊標準，為未來的增強功能和整合做好準備。

考慮為新部署採用啟用 MQTT 的 V3 閘道，尤其是當您需要靈活的資料擷取選項和對資料收集的精確控制時。

**注意**  
對於需要資料處理套件的現有部署或案例，Classic 串流、V2 閘道仍然是可行的選項。

透過提供這兩種閘道類型，無論您優先考慮進階 MQTT 功能或與現有系統的相容性， AWS IoT SiteWise 都能確保您可以選擇最符合您特定工業 IoT 需求的解決方案。

## 目的地和路徑篩選條件
<a name="create-destination-summary"></a>

檢視下列主題，進一步了解啟用 MQTT 閘道中的目的地和路徑篩選條件：
+ [了解 AWS IoT SiteWise Edge 目的地](gw-destinations.md#source-destination)
+ [新增 AWS IoT SiteWise Edge 即時目的地](destinations-real-time.md)
+ [使用 Amazon S3 新增 AWS IoT SiteWise 緩衝目的地](destinations-buffered.md)
+ [了解 AWS IoT SiteWise Edge 目的地的路徑篩選條件了解路徑篩選條件](gw-destinations.md#destinations-path-filters)
+ [將路徑篩選條件新增至 AWS IoT SiteWise Edge 目的地](destinations-add-path-filters.md)
+ [管理 AWS IoT SiteWise Edge 目的地](destinations-manage.md)

# 將外部應用程式連接至 EMQX 代理程式
<a name="connect-external-applications-emqx"></a>

本指南說明如何透過部署已啟用 MQTT 的 V3 閘道上的 EMQX 代理程式，將外部應用程式連接至 AWS IoT SiteWise Edge 閘道。外部應用程式可能包括自訂監控工具、第三方視覺化軟體，或需要與邊緣工業資料互動的舊版系統。

我們將介紹 Linux 和Microsoft Windows環境的組態步驟，包括 EMQX 部署組態、安全連線的 TLS 設定，以及控制特定主題存取的授權規則。

**注意**  
EMQX 不是 AWS IoT SiteWise Edge 的廠商或供應商。

**重要**  
為了保護您的閘道連線，強烈建議透過 AWS IoT Greengrass 用戶端裝置身分驗證功能使用憑證型身分驗證。此方法透過交互 TLS (mTLS) 身分驗證提供強大的安全性。如需詳細資訊，請參閱《 *AWS IoT Greengrass Version 2 開發人員指南*》中的[將用戶端裝置連接至核心裝置](https://docs.aws.amazon.com/greengrass/v2/developerguide/connect-client-devices.html)。

如果您無法使用憑證型身分驗證，請依照本指南使用使用者名稱和密碼設定身分驗證。

## 先決條件
<a name="emqx-broker-prerequisites"></a>
+ 已啟用 SiteWise Edge MQTT 的 V3 閘道，已部署且在線上
+ 存取閘道主機
+ 存取 AWS IoT SiteWise 和 AWS IoT Greengrass 主控台

**Topics**
+ [

## 先決條件
](#emqx-broker-prerequisites)
+ [

# AWS IoT SiteWise Edge 上的 EMQX 代理程式的訊息承載格式
](connect-broker-payload-format.md)
+ [

# 設定 EMQX 代理程式
](configure-emqx-broker.md)
+ [

# 將應用程式連接到 AWS IoT SiteWise Edge 上的 EMQX 代理程式
](connect-app-to-broker.md)
+ [

# 在 EMQX 中設定 AWS IoT SiteWise Edge 的授權規則
](authorization-rules-emqx-broker.md)

# AWS IoT SiteWise Edge 上的 EMQX 代理程式的訊息承載格式
<a name="connect-broker-payload-format"></a>

若要讓 IoT SiteWise 發佈者元件取用外部應用程式的資料並將其發佈至 AWS IoT SiteWise 雲端，傳送至代理程式的承載必須符合特定需求。

了解承載格式是與 AWS IoT SiteWise Edge 成功進行 MQTT 通訊的關鍵。雖然稍後章節涵蓋連線設定程序，但我們會先提供承載需求，協助您規劃實作。

## MQTT 主題需求
<a name="connect-broker-mqtt-requirements"></a>

MQTT 主題結構沒有限制，包括使用的關卡或字元數。不過，我們建議主題符合承載中的 `propertyAlias` 欄位。

**Example 屬性別名範例**  
如果 MQTT 主題是 `site1/line1/compressor1/temperature`，請確保`propertyAlias`相符。  

```
{
  "assetId": "compressor_asset_01",
  "propertyAlias": "site1/line1/compressor1/temperature",
  "propertyId": "temperature_sensor_01",
  "propertyValues": [
    {
      "quality": "GOOD",
      "timestamp": {
        "offsetInNanos": 0,
        "timeInSeconds": 1683000000
      },
      "value": {
        "doubleValue": 23.5
      }
    }
  ]
}
```

## JSON 承載結構
<a name="connect-broker-json-payload"></a>

MQTT 訊息承載是以 JSON 撰寫，並遵循 [AWS IoT SiteWise API 參考](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_PutAssetPropertyValueEntry.html)中定義的`PutAssetPropertyValueEntry`訊息格式。

```
{
   "assetId": "string",
   "propertyAlias": "string",
   "propertyId": "string",
   "propertyValues": [
      {
         "quality": "string",
         "timestamp": {
            "offsetInNanos": number,
            "timeInSeconds": number
         },
         "value": {
            "booleanValue": boolean,
            "doubleValue": number,
            "integerValue": number,
            "stringValue": "string"
         }
      }
   ]
}
```

**注意**  
若要讓訊息視為有效，只有下列其中一個條件可以是 true：  
`propertyAlias` 已設定 ，或
`assetId` 和 `propertyId` 都已設定
`PutAssetPropertyValueEntry` 具有在此內容中不需要`entryId`的欄位。

# 設定 EMQX 代理程式
<a name="configure-emqx-broker"></a>

本節說明如何新增使用者名稱和密碼。它還涵蓋如何使用新增的使用者名稱和密碼從外部來源建立 TLS 連線。您可以使用 Linux 或 來設定 EMQX 代理程式Microsoft Windows。

**注意**  
若要設定代理程式，您需要在啟用 MQTT 的 V3 閘道中使用預設 EMQX 組態設定的核心裝置。

**重要**  
完成此程序後，強烈建議您設定授權規則。如需詳細資訊，請參閱[在 EMQX 中設定 AWS IoT SiteWise Edge 的授權規則](authorization-rules-emqx-broker.md)。新增使用者的授權規則可增強安全性。

## 更新 EMQX 部署組態以進行身分驗證
<a name="update-emqx-broker-authentication"></a>

**更新 EMQX 部署組態以進行身分驗證**

1. <a name="sitewise-open-console"></a>導覽至 [AWS IoT SiteWise 主控台](https://console.aws.amazon.com/iotsitewise/)。

1. 在左側導覽中，選擇 **Edge 區段中的 Edge 閘道**。 ****

1. 選擇要設定的閘道。

1. 在 **Edge 閘道組態**區段中，複製 **Greengrass 核心裝置**值。儲存它以供日後使用。

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

1. 在左側導覽的**管理**區段下，選擇 **Greengrass 裝置**，然後選擇**部署**。

1. 尋找您先前儲存的核心裝置值，然後選擇該連結以開啟部署。

1. 選擇**動作**下拉式選單按鈕，然後選擇**修訂**。

1. 閱讀出現的訊息，然後選擇**修訂部署**。**指定目標**頁面隨即出現。

1. 選擇**下一步**，直到您到達**設定元件**步驟為止。

1. 選取`aws.greengrass.clientdevices.mqtt.EMQX`選項按鈕。

1. 選擇**設定元件**按鈕。隨即顯示元件的組態頁面。

1. 在**組態更新**下，選擇**重設為元件版本的預設組態：2.\$1.\$1**。

1. 根據您的作業系統，在**要合併的組態區段中輸入下列組態**。

------
#### [ Linux ]

   ```
   {
       "emqxConfig": {
           "authorization": {
               "no_match": "allow"
           },
           "listeners": {
               "tcp": {
                   "default": {
                       "enabled": true,
                       "enable_authn": false
                   }
               },
               "ssl": {
                   "default": {
                       "enabled": true,
                       "enable_authn": true,
                       "ssl_options": {
                           "verify": "verify_none",
                           "fail_if_no_peer_cert": false
                       }
                   }
               }
           },
           "authentication": {
               "enable": true,
               "backend": "built_in_database",
               "mechanism": "password_based",
               "password_hash_algorithm": {
                   "iterations": 210000,
                   "mac_fun": "sha512",
                   "name": "pbkdf2"
               },
               "user_id_type": "username"
           },
           "dashboard": {
               "listeners": {
                   "http": {
                       "bind": 18083
                   }
               }
           }
       },
       "authMode": "bypass",
       "dockerOptions": "-p 8883:8883 -p 127.0.0.1:1883:1883 -p 127.0.0.1:18083:18083 -v emqx-data:/opt/emqx/data -e EMQX_NODE__NAME=emqx@local",
       "requiresPrivilege": "true"
   }
   ```

------
#### [ Windows ]

   ```
   {
       "emqxConfig": {
           "authorization": {
               "no_match": "allow"
           },
           "listeners": {
               "tcp": {
                   "default": {
                       "enabled": true,
                       "enable_authn": false
                   }
               },
               "ssl": {
                   "default": {
                       "enabled": true,
                       "enable_authn": true,
                       "ssl_options": {
                           "verify": "verify_none",
                           "fail_if_no_peer_cert": false
                       }
                   }
               }
           },
           "authentication": {
               "enable": true,
               "backend": "built_in_database",
               "mechanism": "password_based",
               "password_hash_algorithm": {
                   "iterations": 210000,
                   "mac_fun": "sha512",
                   "name": "pbkdf2"
               },
               "user_id_type": "username"
           },
           "dashboard": {
               "listeners": {
                   "http": {
                       "bind": 18083
                   }
               }
           }
       },
       "authMode": "bypass",
       "requiresPrivilege": "true"
   }
   ```

   `dockerOptions` 欄位僅適用於 Linux 閘道。

------

1. 選擇**確認**。

1. 選擇**下一步**，直到您到達**檢閱**步驟為止。

1. 選擇**部署**。

1. 部署成功後，請繼續下一個步驟。

## 啟用使用者名稱和密碼身分驗證
<a name="emqx-broker-username-password-auth"></a>

本節說明如何透過 EMQX 儀表板 GUI 新增使用者名稱和密碼。

**注意**  
提供的 EMQX 相關指示僅供參考。由於 EMQX 文件和功能可能會隨著時間而變更，而且我們不會維護其文件，我們建議您參閱 [EMQX 的官方文件](https://docs.emqx.com/en/emqx/latest/)以取得最新資訊。

------
#### [ EMQX Dashboard ]

**透過 EMQX 儀表板啟用使用者名稱和密碼身分驗證**

1. 確定您位於閘道主機中。

1. 開啟瀏覽器視窗並造訪 [http://localhost:18083/](http://localhost:18083/)。

1. 輸入預設使用者名稱 **admin**和預設密碼 **public**。如需詳細資訊，請參閱 [EMQX 文件中的 EMQX 儀表板](https://docs.emqx.com/en/emqx/latest/dashboard/introduction.html#first-login)。 **

1. 登入後，系統會提示您變更密碼。更新您的密碼以繼續前往 EMQX 儀表板。

1. 在左側導覽中，選擇遮罩圖示，然後選擇**身分驗證**。

1. 在**內建資料庫**列中，選擇**使用者**按鈕。

1. 選擇加號圖示按鈕來新增使用者。新增****畫面隨即出現。

1. 輸入外部應用程式的 使用者的使用者名稱和密碼。

1. 選擇**儲存**。您選擇的使用者名稱會顯示在**身分驗證**頁面的資料表中。

**注意**  
現有或預設的授權規則適用於新使用者。建議您檢閱並根據您的外部應用程式需求進行調整。

------
#### [ EMQX Management with Linux ]

使用位於 的 AWS IoT SiteWise EMQX CLI 工具`/greengrass/v2/bin/swe-emqx-cli`。

**使用 Linux 透過 EMQX Management 啟用使用者名稱和密碼身分驗證**

1. 執行下列命令來變更管理員密碼：

   ```
   /greengrass/v2/bin/swe-emqx-cli admin change-pwd
   ```

1. 出現提示時，請執行下列動作：

   1. 輸入您目前的管理員使用者 （預設為 `admin`) 和密碼 （預設為 `public`)。

   1. 輸入並確認新密碼。

   如果成功，您會看到下列訊息：

   ```
   admin password changed successfully
   ```

1. 執行下列命令，為外部應用程式新增使用者：

   ```
   /greengrass/v2/bin/swe-emqx-cli users add
   ```

1. 出現提示時，請執行下列動作：

   1. 輸入新使用者的使用者名稱。

   1. 輸入並確認新使用者的密碼。

   如果成功，您會看到下列訊息：

   ```
   User '[username]' created successfully
   ```

1. 執行下列命令來驗證使用者組態：

   ```
   /greengrass/v2/bin/swe-emqx-cli users list
   ```

   輸出會顯示所有設定的使用者：

   ```
   Users:
   - [your-added-username]
   
   Total users: 1
   ```

------
#### [ EMQX Management with Windows ]

在下列其中一個位置使用 AWS IoT SiteWise EMQX CLI 工具：
+ PowerShell：`C:\greengrass\v2\bin\swe-emqx-cli.ps1`
+ 命令提示字元： `C:\greengrass\v2\bin\swe-emqx-cli.bat`

**使用 Windows 透過 EMQX Management 啟用使用者名稱和密碼身分驗證**

1. 執行下列命令來變更管理員密碼：

   ```
   C:\greengrass\v2\bin\swe-emqx-cli.ps1 admin change-pwd
   ```

1. 出現提示時，請執行下列動作：

   1. 輸入您目前的管理員使用者 （預設為 `admin`) 和密碼 （預設為 `public`)。

   1. 輸入並確認新密碼。

   如果成功，您會看到下列訊息：

   ```
   admin password changed successfully
   ```

1. 執行下列命令，為外部應用程式新增使用者：

   ```
   C:\greengrass\v2\bin\swe-emqx-cli.ps1 users add
   ```

1. 出現提示時，請執行下列動作：

   1. 輸入新使用者的使用者名稱。

   1. 輸入並確認新使用者的密碼。

   如果成功，您會看到下列訊息：

   ```
   User '[username]' created successfully
   ```

1. 執行下列命令來驗證使用者組態：

   ```
   C:\greengrass\v2\bin\swe-emqx-cli.ps1 users list
   ```

   輸出會顯示所有設定的使用者：

   ```
   Users:
   - [your-added-username]
   
   Total users: 1
   ```

------

# 將應用程式連接到 AWS IoT SiteWise Edge 上的 EMQX 代理程式
<a name="connect-app-to-broker"></a>

EMQX 代理程式在連接埠 8883 上使用 Transport Layer Security (TLS) 來加密所有通訊，確保您的資料在傳輸期間仍受到保護。本節會逐步解說在應用程式與 EMQX 代理程式之間建立連線的步驟。遵循這些步驟有助於維護工業資料的完整性和機密性。連線程序涉及兩種主要方法：透過 元件使用自動 IP 探索，或在 TLS 憑證中手動將 DNS 名稱和 IP 地址設定為主體別名 (SANs)。每個方法都有自己的優勢，取決於您的網路設定和安全需求。本文件將引導您完成這兩個選項。

**Topics**
+ [

## 設定 TLS 以安全連線至 AWS IoT SiteWise Edge 上的 EMQX 代理程式
](#configure-tls-emqx-broker)
+ [

## 在 AWS IoT SiteWise Edge 上測試 EMQX 代理程式連線
](#test-emqx-connection)
+ [

## 使用您自己的 CA
](#configure-tls-custom-ca)
+ [

## 為外部防火牆連線開啟連接埠 8883
](#emqx-firewall)

## 設定 TLS 以安全連線至 AWS IoT SiteWise Edge 上的 EMQX 代理程式
<a name="configure-tls-emqx-broker"></a>

根據預設， 會為核心裝置憑證授權單位 (CA) 簽署的 EMQX 代理程式 AWS IoT Greengrass 產生 TLS 伺服器憑證。如需詳細資訊，請參閱[使用 MQTT 代理程式將用戶端裝置連接到 AWS IoT Greengrass 核心裝置](https://docs.aws.amazon.com/greengrass/v2/developerguide/connecting-to-mqtt.html)。

### 擷取 TLS 憑證
<a name="configure-tls-retrieve-certificate"></a>

若要取得 CA 憑證，請在閘道主機上執行下列命令：

------
#### [ Linux ]

在閘道主機的 shell 工作階段中執行下列命令：

```
/greengrass/v2/bin/swe-emqx-cli cert
```

此命令會顯示憑證位置並列印憑證的內容。

或者，您也可以使用此命令將憑證儲存至檔案：

```
/greengrass/v2/bin/swe-emqx-cli cert --output /path/to/certificate.pem
```

------
#### [ Windows ]

在閘道主機的 PowerShell 工作階段中執行下列命令：

```
C:\greengrass\v2\bin\swe-emqx-cli.ps1 cert
```

此命令會顯示憑證位置並列印憑證的內容。

或者，您也可以使用此命令將憑證儲存至檔案：

```
C:\greengrass\v2\bin\swe-emqx-cli.ps1 cert --output C:\path\to\certificate.pem
```

無論系統上的確切路徑為何，CLI 都會自動尋找憑證。

------

將 ca.pem 檔案的內容複製到您要連線至代理程式的外部應用程式。另存為 `BrokerCoreDeviceCA.pem`。

### 將自訂 DNS 名稱/IP 地址新增至 TLS 伺服器憑證
<a name="configure-tls-custom-dns-ip"></a>

產生的憑證上的主體替代名稱 (SAN) AWS IoT Greengrass 為 `localhost`。從閘道主機外部建立 TLS 連線時，TLS 驗證步驟會失敗，因為代理程式的主機名稱與伺服器憑證`localhost`上的 主機名稱不相符。

為了解決不相符的主機名稱問題， AWS IoT Greengrass 提供兩種管理核心裝置端點的方式。本節涵蓋這兩個選項。如需詳細資訊，請參閱《 *AWS IoT Greengrass Version 2 開發人員指南*》中的[管理核心裝置端點](https://docs.aws.amazon.com/greengrass/v2/developerguide/manage-core-device-endpoints.html)。
+ 若要使用核心裝置的 IP 地址連線至 EMQX 代理程式，請使用自動化 IP 探索區段。
+ 若要使用 DNS 名稱而非 IP 地址連線至 EMQX 代理程式，請使用手動管理區段。

------
#### [ Automated IP discovery ]

此選項可讓您的核心裝置自動探索其 IP 地址，並將其新增為代理程式憑證的主體別名 (SAN)。

1. 將 `aws.greengrass.clientdevices.IPDetector` 元件新增至核心裝置的部署。

1. 將變更部署至您的裝置

1. 等待部署完成。

   部署完成後，您可以使用代理程式的 IP 地址建立安全的 TLS 連線。

   IP 地址會自動新增為代理程式憑證的 SAN。

------
#### [ Manual DNS and IP Configuration ]

您可以將 DNS 名稱和 IP 地址手動新增為 TLS 憑證的主體別名 (SANs)。當您為閘道主機設定 DNS 名稱時，此方法非常有用。

**重要**  
如果您使用的是 IPDetector 元件，請先將其從部署中移除再繼續。IPDetector 元件會覆寫手動端點組態。

**手動設定端點**

1. <a name="sitewise-open-console"></a>導覽至 [AWS IoT SiteWise 主控台](https://console.aws.amazon.com/iotsitewise/)。

1. 在左側導覽中，選擇 **Edge 區段中的 Edge 閘道**。 ****

1. 選擇要設定的閘道。

1. 在 **Edge 閘道組態**區段中，選擇您的 **Greengrass 核心裝置** URL。核心裝置的頁面隨即出現。

1. 選擇**用戶端裝置**索引標籤。

1. 選擇**管理端點**。

1. 在管理端點對話方塊中，輸入 DNS 名稱和您要新增為 SANs的任何 IP 地址 (SAN)。使用連接埠 8883。

1. 選擇**更新**。

代理程式的 TLS 伺服器憑證會自動更新，以包含您的新端點。

**使用 Linux 驗證 TLS 伺服器憑證更新**

1. 在閘道主機上啟動 shell 工作階段。

   ```
   docker exec emqx openssl x509 -in ./data/cert.pem -text -noout | grep -A1 "Subject Alternative Name"
   ```

1. 命令會傳回類似下列的輸出：

   ```
   X509v3 Subject Alternative Name: 
   DNS:endpoint_you_added, DNS:localhost
   ```

1. 確認您的端點出現在 SANs 清單中。

**使用 Windows 驗證 TLS 伺服器憑證更新**

1. 在閘道主機上啟動 shell 工作階段。

   ```
   (Get-PfxCertificate -FilePath "C:\greengrass\v2\work\aws.greengrass.clientdevices.mqtt.EMQX\v2\data\cert.pem").Extensions | Where-Object { $_.Oid.FriendlyName -eq "Subject Alternative Name" } | ForEach-Object { "Subject Alternative Name:", ($_.Format($true) -split "`n")[0..1] }
   ```

1. 命令會傳回類似下列的輸出：

   ```
   Subject Alternative Name:
   DNS Name=your-endpoint
   DNS Name=localhost
   ```

1. 確認您新增的端點在 SANs 清單中。

------

## 在 AWS IoT SiteWise Edge 上測試 EMQX 代理程式連線
<a name="test-emqx-connection"></a>

使用 TLS 憑證和身分驗證憑證設定 EMQX 代理程式後，請務必確認您的設定是否正常運作。測試連線有助於確保您的安全組態已正確實作，而且用戶端可以成功建立與代理程式的加密連線。本節示範如何使用 Mosquitto 命令列界面 (CLI) 用戶端測試您的代理程式連線，這是一種廣泛使用的 MQTT 用戶端工具，支援 TLS 加密和身分驗證。

### 使用 Mosquitto CLI 用戶端來測試 EMQX 代理程式連線
<a name="test-emqx-connection-mosquitto"></a>

在此步驟中，我們將使用 mosquitto CLI 用戶端來測試我們的設定，並確保我們可以使用先前建立的使用者名稱和密碼成功連線到代理程式。若要取得步驟 3：設定 TLS 下的`BrokerCoreDeviceCA.pem`下列步驟。

```
mosquitto_sub -h hostname|ip address \
    -p 8883 \
    -t "#" \
    -q 1 \
    -u username -P password \
    --cafile BrokerCoreDeviceCA.pem
```

**注意**  
如果您連線的主機名稱/IP 地址與您傳遞給用戶端的 CA 憑證上的主體別名 (SAN) 不相符，您可能會收到 SSL：驗證錯誤。請參閱「將自訂 DNS 名稱/IP 地址新增至 TLS 伺服器憑證」的步驟 3：設定 TLS，了解如何取得具有正確 SAN 的憑證。

此時，所有使用者都有權發佈和訂閱代理程式上的所有主題。繼續執行「[在 EMQX 中設定 AWS IoT SiteWise Edge 的授權規則](authorization-rules-emqx-broker.md)」。

## 使用您自己的 CA
<a name="configure-tls-custom-ca"></a>

AWS IoT Greengrass 概述如何設定自己的用戶端裝置身分驗證元件，以使用您自己的憑證授權機構 (CA)。用戶端裝置身分驗證元件 (`aws.greengrass.clientdevices.Auth`) 會驗證用戶端裝置，並授權用戶端裝置動作。如需詳細資訊，請參閱《 *AWS IoT Greengrass Version 2 開發人員指南*》中的[使用您自己的憑證授權](https://docs.aws.amazon.com/greengrass/v2/developerguide/connecting-to-mqtt.html#use-your-own-CA)機構。

若要使用您自己的 CA，請將 `aws.greengrass.clientdevices.Auth`元件新增至部署，以便您可以指定自訂組態。

## 為外部防火牆連線開啟連接埠 8883
<a name="emqx-firewall"></a>

------
#### [ Linux ]

在 Linux 主機防火牆規則中，新增連接埠 8883 的傳入規則，以允許來自閘道主機外部的傳入連線。如果有任何防火牆，請確保允許連接埠 8883 上的傳入 TLS 連線。

------
#### [ Windows ]

在Microsoft Windows主機防火牆規則中，新增連接埠 8883 的傳入規則，以允許來自閘道主機外部的傳入連線。確保規則是允許規則，類型為連接埠，指定連接埠 8883。您可以根據您的網路組態來設定，以允許從外部應用程式到代理程式的連線。

------

# 在 EMQX 中設定 AWS IoT SiteWise Edge 的授權規則
<a name="authorization-rules-emqx-broker"></a>

EMQX 支援根據使用者名稱、IP 地址或用戶端 ID 等識別符新增授權規則。如果您想要限制連接到各種操作或主題的外部應用程式數量，這會很有用。

**Topics**
+ [

# 使用內建資料庫搭配 Linux 設定授權
](add-auth-rules-database-emqx-broker-linux.md)
+ [

# 使用內建資料庫搭配 Windows 設定授權
](add-auth-rules-database-emqx-broker-windows.md)
+ [

# 更新授權的 EMQX 部署組態
](update-emqx-broker-authorization.md)
+ [

# 透過 EMQX 儀表板為使用者新增授權規則
](add-rules-emqx-broker.md)

# 使用內建資料庫搭配 Linux 設定授權
<a name="add-auth-rules-database-emqx-broker-linux"></a>

當您設定授權規則時，有兩個組態選項取決於您的部署設定。
+ **Docker** – 如果您要在沒有 的情況下執行標準Docker安裝Litmus Edge，請使用 **Docker 橋接器閘道**組態。這通常是您只部署 AWS IoT SiteWise 元件的情況。
+ **Litmus Edge** – 如果您已Litmus Edge在閘道上安裝 ，請使用 **Litmus Edge 網路子網路**組態。

**注意**  
如果您最初設定Docker橋接閘道並稍後安裝 Litmus Edge，請使用Litmus Edge網路子網路選項重新設定授權規則，以確保所有元件之間進行適當的通訊。

**新增基本授權規則**

1. 確認已部署並執行 EMQX 代理程式。

1. 在閘道主機上啟動 shell 工作階段。

------
#### [ Docker without Litmus Edge ]

   對於沒有 的標準Docker安裝Litmus Edge，請執行：

   ```
   /greengrass/v2/bin/swe-emqx-cli acl init
   ```

------
#### [ Litmus Edge network subnet ]

   如果您使用的是 Litmus Edge，請判斷 Litmus Edge 網路子網路 IP：

   ```
   docker network inspect LitmusNetwork | grep IPAM -A9
   ```

   請注意輸出中的子網路值，並執行下列命令。`litmus_subnet_ip` 將 取代為上一個步驟的子網路值。

   ```
   /greengrass/v2/bin/swe-emqx-cli acl init litmus_subnet_ip
   ```

------

   此工具會自動建立並套用授權規則，以允許從提供的 IP 地址連線到代理程式。它允許存取所有主題。這包括 IoT SiteWise OPC UA 收集器和 IoT SiteWise 發佈者。

1. 繼續執行「[更新授權的 EMQX 部署組態](update-emqx-broker-authorization.md)」。

# 使用內建資料庫搭配 Windows 設定授權
<a name="add-auth-rules-database-emqx-broker-windows"></a>

本節涵蓋使用 Windows 部署的內建資料庫來設定授權規則。

**新增基本授權規則**

1. 確認已部署並執行 EMQX 代理程式。

1. 執行 AWS IoT SiteWise EMQX CLI 工具：

   ```
   C:\greengrass\v2\bin\swe-emqx-cli.ps1 acl init
   ```

   此工具會自動建立並套用 ACL 規則，允許從 localhost (127.0.0.1) 連線到代理程式。它允許存取所有主題。這包括 IoT SiteWise OPC UA 收集器和 IoT SiteWise 發佈者。

1. 繼續執行「[更新授權的 EMQX 部署組態](update-emqx-broker-authorization.md)」。

# 更新授權的 EMQX 部署組態
<a name="update-emqx-broker-authorization"></a>

**更新授權的 EMQX 部署組態**

1. <a name="sitewise-open-console"></a>導覽至 [AWS IoT SiteWise 主控台](https://console.aws.amazon.com/iotsitewise/)。

1. 在左側導覽中，選擇 **Edge 區段中的 Edge 閘道**。 ****

1. 選擇要設定的閘道。

1. 在 **Edge 閘道組態**區段中，複製您的 **Greengrass 核心裝置**值。儲存它以供日後使用。

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

1. 在左側導覽的**管理**區段下，選擇 **Greengrass 裝置**，然後選擇**部署**。

1. 尋找您先前儲存的核心裝置值，然後選擇該連結以開啟部署。

1. 選擇**動作**下拉式選單按鈕，然後**修訂**。

1. 閱讀出現的訊息，然後選擇**修訂部署**。**指定目標**頁面隨即出現。

1. 選擇**下一步**，直到您到達**設定元件**步驟為止。

1. 選取`aws.greengrass.clientdevices.mqtt.EMQX`選項按鈕。

1. 選擇**設定元件**按鈕。隨即顯示元件的組態頁面。

1. 在**組態更新**下，選擇**重設為元件版本的預設組態：2.\$1.\$1**。

1. 根據您的作業系統，在**要合併的組態**區段中貼上下列內容。

------
#### [ Linux ]

   ```
   {
       "emqxConfig": {
           "authorization": {
               "no_match": "deny",
               "sources": [
                   {
                       "type": "built_in_database"
                   },
                   {
                       "type": "file",
                       "path": "data/authz/acl.conf"
                   }
               ]
           },
           "listeners": {
               "tcp": {
                   "default": {
                       "enabled": true,
                       "enable_authn": false
                   }
               },
               "ssl": {
                   "default": {
                       "enabled": true,
                       "enable_authn": true,
                       "ssl_options": {
                           "verify": "verify_none",
                           "fail_if_no_peer_cert": false
                       }
                   }
               }
           },
           "authentication": {
               "enable": true,
               "backend": "built_in_database",
               "mechanism": "password_based",
               "password_hash_algorithm": {
                   "iterations": 210000,
                   "mac_fun": "sha512",
                   "name": "pbkdf2"
               },
               "user_id_type": "username"
           },
           "dashboard": {
               "listeners": {
                   "http": {
                       "bind": 18083
                   }
               }
           }
       },
       "authMode": "bypass",
       "dockerOptions": "-p 8883:8883 -p 127.0.0.1:1883:1883 -p 127.0.0.1:18083:18083 -v emqx-data:/opt/emqx/data -e EMQX_NODE__NAME=emqx@local",
       "requiresPrivilege": "true"
   }
   ```

------
#### [ Windows ]

   ```
   {
       "emqxConfig": {
           "authorization": {
               "no_match": "deny",
               "sources": [
                   {
                       "type": "built_in_database"
                   },
                   {
                       "type": "file",
                       "path": "C:\\greengrass\\v2\\work\\aws.greengrass.clientdevices.mqtt.EMQX\\v2\\data\\authz\\acl.conf"
                   }
               ]
           },
           "listeners": {
               "tcp": {
                   "default": {
                       "enabled": true,
                       "enable_authn": false
                   }
               },
               "ssl": {
                   "default": {
                       "enabled": true,
                       "enable_authn": true,
                       "ssl_options": {
                           "verify": "verify_none",
                           "fail_if_no_peer_cert": false
                       }
                   }
               }
           },
           "authentication": {
               "enable": true,
               "backend": "built_in_database",
               "mechanism": "password_based",
               "password_hash_algorithm": {
                   "iterations": 210000,
                   "mac_fun": "sha512",
                   "name": "pbkdf2"
               },
               "user_id_type": "username"
           },
           "dashboard": {
               "listeners": {
                   "http": {
                       "bind": 18083
                   }
               }
           }
       },
       "authMode": "bypass",
       "requiresPrivilege": "true"
   }
   ```

------

1. 選擇**確認**。

1. 選擇**下一步**，直到您到達**檢閱**步驟為止。

1. 選擇**部署**。

**注意**  
從此時開始，您無法編輯 ACL 檔案來更新授權規則。或者，您可以在成功部署[透過 EMQX 儀表板為使用者新增授權規則](add-rules-emqx-broker.md)後繼續執行 。

# 透過 EMQX 儀表板為使用者新增授權規則
<a name="add-rules-emqx-broker"></a>

您可以使用 EMQX 儀表板或 AWS IoT SiteWise EMQX CLI 工具新增或更新授權規則。 AWS IoT SiteWise EMQX CLI 工具會使用 EMQX 的內建資料庫管理授權。

**注意**  
新增授權規則是進階組態步驟，需要了解 MQTT 主題模式和存取控制。如需使用 EMQX 內建資料庫建立授權規則的詳細資訊，請參閱 *EMQX 文件*中的[使用內建資料庫](https://docs.emqx.com/en/emqx/latest/access-control/authz/mnesia.html)。

**注意**  
提供的 EMQX 相關指示僅供參考。由於 EMQX 文件和功能可能會隨著時間而變更，而且我們不會維護其文件，我們建議您參閱 [EMQX 的官方文件](https://docs.emqx.com/en/emqx/latest/)以取得最新資訊。

------
#### [ EMQX dashboard ]

此程序說明如何在 EMQX 儀表板上新增授權規則。

EMQX 儀表板只能從閘道主機內存取。如果您嘗試從閘道主機外部連線，則無法存取儀表板。

**使用 EMQX 儀表板新增授權規則**

1. 確定您位於閘道主機中。

1. 開啟瀏覽器視窗並造訪 [http://localhost:18083/](http://localhost:18083/)。

1. 登入 EMQX 儀表板。此程序假設您已將預設登入憑證變更為您選擇的登入資料。如需初始設定的詳細資訊，請參閱 [啟用使用者名稱和密碼身分驗證](configure-emqx-broker.md#emqx-broker-username-password-auth)。

1. 從下拉式選單中選擇遮罩圖示，然後選擇**授權**。

1. 選擇**內建資料庫**列上的**許可**按鈕。

1. 在內建資料庫授權區段中，為您的業務需求新增或更新使用者授權規則。如需建立規則的更多指引，請參閱 *EMQX 文件*中的[使用內建資料庫](https://docs.emqx.com/en/emqx/latest/access-control/authz/mnesia.html)一節。

------
#### [ AWS IoT SiteWise CLI tool using Linux ]

**若要在 Linux 中使用 AWS IoT SiteWise EMQX CLI 工具管理授權規則：**
+ 使用下列格式為使用者新增授權規則：

  ```
  /greengrass/v2/bin/swe-emqx-cli auth add your-username your-action your-permission your-topic [your-action-permission-topic]
  ```

**Example 新增使用者的授權規則**  
此範例說明如何為名為 的使用者新增規則`system1`：  

```
/greengrass/v2/bin/swe-emqx-cli auth add system1 \
    publish allow "sensors/#" \
    subscribe allow "control/#" \
    all deny "#"
```

**Example ：檢視使用者的授權規則**  
若要檢視`system1`使用者的授權規則，請執行下列命令：  

```
/greengrass/v2/bin/swe-emqx-cli auth list system1
```

**Example ：檢視所有現有的授權規則**  
若要檢視您目前擁有的所有授權規則，請執行下列命令：  

```
/greengrass/v2/bin/swe-emqx-cli auth list
```

**Example ：刪除使用者的所有授權規則**  
若要刪除套用至特定使用者的所有授權規則，請執行下列命令：  

```
/greengrass/v2/bin/swe-emqx-cli auth delete system1
```
系統會提示您確認刪除。

------
#### [ AWS IoT SiteWise CLI tool using Windows ]

**若要使用 中的 AWS IoT SiteWise EMQX CLI 工具管理授權規則Windows PowerShell：**
+ 使用下列格式為使用者新增授權規則：

  ```
  C:\greengrass\v2\bin\swe-emqx-cli.ps1 auth add your-username your-action your-permission your-topic [your-action-permission-topic]
  ```

**Example ：新增使用者的授權規則**  
此範例說明如何為名為 的使用者新增規則`system1`：  

```
C:\greengrass\v2\bin\swe-emqx-cli.ps1 auth add system1 `
    publish allow "sensors/#" `
    subscribe allow "control/#" `
    all deny "#"
```

**Example ：檢視使用者的授權規則**  
若要檢視`system1`使用者的授權規則，請執行下列命令：  

```
C:\greengrass\v2\bin\swe-emqx-cli.ps1 auth list system1
```

**Example ：檢視所有現有的授權規則**  
若要檢視您目前擁有的所有授權規則，請執行下列命令：  

```
C:\greengrass\v2\bin\swe-emqx-cli.ps1 auth list
```

**Example ：刪除使用者的所有授權規則**  
若要刪除套用至特定使用者的所有授權規則，請執行下列命令：  

```
C:\greengrass\v2\bin\swe-emqx-cli.ps1 auth delete system1
```
系統會提示您確認刪除。

------

# 使用 SiteWise Edge 和開放原始碼工具處理和視覺化資料
<a name="open-source-edge-integrations"></a>

使用適用於本機處理和視覺化的開放原始碼工具來設定啟用 AWS IoT SiteWise Edge MQTT 的閘道，以增強您的工業資料管理功能。

使用 SiteWise Edge，您可以使用外部開放原始碼工具建立本機資料處理管道。使用 [Node-RED®](https://nodered.org/) 以 [InfluxDB®](https://www.influxdata.com/lp/influxdb-database/) 存放時間序列資料，並透過 [Grafana®](https://grafana.com/) 儀表板監控操作。

Node-RED 會處理和轉換您的資料流程，而 InfluxDB 則提供時間序列資料儲存。Grafana 會顯示您的即時操作資料。將這些工具與 SiteWise Edge 搭配使用，在本機環境和 之間同步資料 AWS 雲端，為您提供立即的本機洞見和長期雲端型分析功能。

**注意**  
Node-RED®、InfluxDB® 和 Grafana® 不是 SiteWise Edge 的廠商或供應商。

![\[顯示數個資料來源和連接到要發佈之 EMQX 中介裝置的渦輪模擬器的圖表。然後，EMQX 代理程式會訂閱 AWS IoT SiteWise Gateway 和 Node-RED。Node-RED 饋送至 InfluxDB，然後將資料庫饋送至 Grafana 儀表板。\]](http://docs.aws.amazon.com/zh_tw/iot-sitewise/latest/userguide/images/gateway-open-source-overview.png)


**注意**  
在本指南中，我們使用 [Grafana](https://grafana.com/) for SiteWise Edge 的開放原始碼版本，而不是 [Amazon Managed Grafana ](https://docs.aws.amazon.com/grafana/latest/userguide/what-is-Amazon-Managed-Service-Grafana.html)服務。

## 部署選項
<a name="deployment-options"></a>

您可以使用兩種方法之一部署此解決方案。透過Microsoft Windows手動設定，您可以控制元件組態並與基礎設施整合。透過 Linux，您可以使用 Docker 在容器中部署預先設定的元件。

選擇符合您操作需求的方法。
+ [手動設定開放原始碼整合 (Windows)](windows-manual-setup.md) – 適用於自訂組態或現有基礎設施
+ [設定與 Docker (Linux) 的開放原始碼整合](linux-docker-setup.md) – 使用預先設定的元件快速部署

## 風力發電廠範例概觀
<a name="open-source-example-overview"></a>

本指南使用風力發電廠範例，示範如何監控風力發電廠上渦輪機的風速。此實際案例說明常見的工業監控需求，其中本機和雲端型可見性對於營運效率都很有價值。

透過此整合，您可以：
+ 使用 AWS IoT SiteWise Edge 閘道從工業設備收集資料
+ 使用 Node-RED、InfluxDB 和 Grafana 在本機處理資料
+ 使用 InfluxDB 將資料儲存在本機
+ 使用 Grafana 儀表板即時監控資料

在本指南中，我們使用風槍的範例。我們使用 Node-RED 來模擬產生風速資料的渦輪機。Node-RED 會轉譯資料承載、將資料發佈至 SiteWise Edge MQTT 代理程式、訂閱從代理程式接收資料，並在本機將資料儲存在 InfluxDB 中。此方法可確保所有操作資料都可在本機進行立即存取，並在雲端中進行進一步分析。透過實作此模式，您可以獲得網路中斷的彈性，同時維持在 中執行進階分析的能力 AWS 雲端。Grafana 會連線至 InfluxDB 進行本機監控，讓操作員即時查看指標，無需雲端相依性。啟用 SiteWise Edge MQTT 的閘道會連線至相同的 MQTT 代理程式，以將資料傳送至 AWS IoT SiteWise，在您的邊緣操作與雲端服務之間建立橋接。

無論您要監控製造設備、公用程式基礎設施或其他工業資產，都可以使用自己的資料和組態來建立專為特定工業需求量身打造的類似工作流程。

## 開放原始碼整合的需求
<a name="open-source-requirements"></a>

在實作與 SiteWise Edge 的開放原始碼整合之前，請確定您的環境符合必要的需求。
+ **硬體需求** - 您的閘道硬體必須符合 SiteWise Edge 閘道的需求。如需詳細資訊，請參閱 [AWS IoT SiteWise Edge 自我託管閘道需求](configure-gateway-ggv2.md) 以取得啟用 MQTT 的 V3 閘道和 [AWS IoT SiteWise Edge 應用程式的需求](siemens-app-gateway-requirements.md)。
**重要**  
部署其他開放原始碼元件時，請確定您的硬體符合 [InfluxDB](https://docs.influxdata.com/influxdb/v2/install/)、[Node-RED](https://nodered.org/docs/getting-started/) 和 [Grafana](https://grafana.com/docs/grafana/latest/setup-grafana/installation/) 的需求。
+ 您的網路組態必須支援 SiteWise Edge 元件與雲端連線之間的本機通訊。
+ 所有 服務都必須在相同的主機上執行。

## 安全考量
<a name="open-source-security-considerations"></a>

建議您加密元件之間的所有通訊，尤其是從非本機網路存取介面時。為每個元件實作適當的存取控制，並遵循 AWS IoT SiteWise Edge 閘道組態和 AWS 帳戶安全的 AWS 最佳實務。

**開發環境**  
本指南示範在閘道主機上執行和本機存取的 Node-RED、InfluxDB 和 Grafana。對於需要外部存取權的生產部署，請實作安全措施，包括 TLS 加密、身分驗證和授權。遵循每個應用程式的安全最佳實務。

**第三方軟體**  
此解決方案使用非 維護的第三方軟體 AWS，包括 InfluxDB、Node-RED、Grafana 和 `node-red-contrib-influxdb`外掛程式。在部署之前，請確定這些元件符合您組織的安全需求、合規標準和控管政策。

**重要**  
本指南參考 並使用非 擁有或維護的第三方軟體 AWS。在實作之前，請確保所有元件都符合您的安全、合規和控管要求。使用最新的安全修補程式讓所有軟體保持最新狀態，並遵循保護邊緣部署的最佳實務。  
 InfluxDB、Node-RED、Grafana 不是 SiteWise Edge 的廠商或供應商。

## 其他考量
<a name="open-source-other-considerations"></a>

實作與 SiteWise Edge 的開放原始碼整合時，請考慮這些其他因素。
+ 使用所有 服務、工具和元件的最新版本。
+ 在雲端傳輸之前，在本機篩選和彙總資料，以降低 AWS IoT SiteWise 資料擷取成本。在 InfluxDB 中設定適當的資料保留期間，並正確調整閘道硬體的大小。如需詳細資訊，請參閱 [AWS IoT SiteWise 定價](https://aws.amazon.com/iot-sitewise/pricing/)。
+ 實作所有資料的定期備份程序。
+ 監控閘道上的資源用量，並為每個元件設定適當的資源限制。在 InfluxDB 中實作資料保留政策，以管理磁碟用量。

# 手動設定開放原始碼整合 (Windows)
<a name="windows-manual-setup"></a>

使用本指南手動為與 Grafana® 和 Node-RED® 連線的風速資料建立時間序列儲存貯體。

 在 上手動安裝和設定 Node-RED、InfluxDB® 和 Grafana，Microsoft Windows以控制您的部署組態。您可以使用 InfluxDB 從裝置存放和管理時間序列資料。

## 手動設定先決條件
<a name="windows-open-source-prerequisites"></a>

開始之前，請先完成下列要求：

**注意**  
在相同的主機上執行所有服務 (SiteWise Edge、InfluxDB、Node-RED 和 Grafana)。
+ 安裝已啟用 MQTT 的 V3 閘道。如需詳細資訊，請參閱[啟用 MQTT 的 AWS IoT SiteWise Edge V3 閘道](mqtt-enabled-v3-gateway.md)。
+ 在本機安裝和執行這些服務：
  + InfluxDB OSS v2。如需安裝步驟，請參閱[安裝 InfluxDB](https://docs.influxdata.com/influxdb/v2/install/)。
  + Node-RED。如需安裝步驟，請參閱[在本機安裝 Node-RED](https://nodered.org/docs/getting-started/local)。
  + Grafana。如需安裝步驟，請參閱[安裝 Grafana](https://grafana.com/docs/grafana/latest/setup-grafana/installation/)。

# 使用 InfluxDB 設定本機儲存
<a name="windows-influxdb-setup"></a>

使用 InfluxDB®，您可以在本機儲存來自裝置的時間序列資料。本機儲存功能的目的是在網路中斷期間維持操作可見性，並減少時間關鍵型應用程式的延遲。您可以在邊緣執行分析和視覺化，同時仍可選擇選擇性地將資料轉送至雲端。

在本節中，您會為渦輪風速資料建立時間序列儲存貯體，並為 Grafana® 和 Node-RED® 連線產生 API 字符。InfluxDB 儲存貯體可做為時間序列資料的專用儲存容器，類似於傳統系統中的資料庫。API 字符可安全以程式設計方式存取您的資料。

**設定 InfluxDB**

1. 完成先決條件步驟並確保所有工具都在相同的主機上執行後，請開啟您的 Web 瀏覽器並前往 https：//[http://127.0.0.1:8086](http://127.0.0.1:8086)。

1. （選用） 啟用 TLS 加密以增強安全性。如需詳細資訊，請參閱《》中的[啟用 TLS 加密](https://docs.influxdata.com/influxdb/v2/admin/security/enable-tls/)*InfluxData Documentation*。

1. 建立時間序列 InfluxDB 儲存貯體以存放 Node-RED 中的資料。儲存貯體將做為風力發電廠資料的專用容器，可讓您組織和管理此資料集特有的保留政策。如需詳細資訊，請參閱《》中的[管理儲存貯](https://docs.influxdata.com/influxdb/v2/admin/buckets/)體*InfluxData Documentation*。

1. （選用） 設定節點的資料保留期間。設定適當的保留期有助於有效管理儲存資源，方法是自動移除本機操作不再需要的舊資料。

   如需資料保留的相關資訊，請參閱《[》中的 InfluxDB 中的資料保留](https://docs.influxdata.com/influxdb/v2/reference/internals/data-retention/)*InfluxData Documentation*。

1. 產生儲存貯體的 API 字符。此字符將啟用 InfluxDB 與 Node-RED 和 Grafana 等其他元件之間的安全通訊。如此一來，只有授權的服務才能讀取或寫入您的資料存放區。如需詳細資訊，請參閱《》中的[建立權杖](https://docs.influxdata.com/influxdb/cloud/admin/tokens/create-token/)*InfluxData Documentation*。

完成這些步驟後，您可以將時間序列資料儲存在 InfluxDB 執行個體中，為邊緣環境中的本機資料持久性和分析提供基礎。

# 設定 Node-RED 流程以進行 AWS IoT SiteWise 資料整合
<a name="windows-nodered-config"></a>

使用 Node-RED®，您可以實作兩個流程來管理裝置和 之間的資料 AWS IoT SiteWise。這些流程協同運作，以建立可處理本機和雲端資料流程的全方位資料管理解決方案。
+ **資料發佈流程 – **發佈至雲端。資料發佈流程會將資料傳送至 AWS IoT SiteWise。此流程透過產生感應器資料、將其轉換為 AWS IoT SiteWise 格式，以及發佈至 SiteWise Edge MQTT 代理程式，來模擬渦輪裝置。這可讓您利用 AWS IoT SiteWise的雲端功能來儲存、分析，以及與其他 AWS 服務的整合。

  如需詳細資訊，請參閱[設定資料發佈流程](windows-nodered-data-publish-flow.md)。
+ **資料保留流程** – 將資料存放在邊緣。資料保留流程會訂閱 SiteWise Edge MQTT 代理程式以接收資料、將其翻譯為 InfluxDB® 格式，並將其儲存在本機以進行監控。此本機儲存可讓您立即存取操作資料、降低關鍵時間應用程式的延遲，以及確保網路中斷期間的持續性。

  如需詳細資訊，請參閱[設定資料保留流程](windows-nodered-data-retention-flow.md)。

這兩個流程可一起運作，確保資料同時傳送至 AWS IoT SiteWise 並儲存在本機以供立即存取。

若要存取 Node-RED 主控台，請前往 https：//[http://127.0.0.1:1880](http://127.0.0.1:1880)。如需啟用 TLS 的資訊，請參閱[啟用 TLS 加密](https://docs.influxdata.com/influxdb/v2/admin/security/enable-tls/)。

# 設定資料發佈流程
<a name="windows-nodered-data-publish-flow"></a>

資料發佈流程使用三個節點來建立管道，將工業資料傳送至雲端。此流程對於啟用雲端型分析、長期儲存以及與其他 AWS 服務的整合至關重要。首先，模擬的裝置資料會傳送至 SiteWise Edge MQTT 代理程式。閘道會從代理程式取得資料，允許傳輸到 AWS IoT SiteWise 雲端，您可以在其中利用強大的分析和視覺化功能。
+ **資料輸入** - 從工業設備或模擬器接收裝置資料
+ **適用於 的資料轉譯器 AWS IoT SiteWise** - 將資料轉譯為 AWS IoT SiteWise 格式，以確保與 SiteWise Edge 閘道的相容性
+ **MQTT 發佈者** - 將資料發佈至 SiteWise Edge MQTT 代理程式，使其可供本機和雲端消費者使用

![\[顯示 Node-RED 資料發佈流程的圖表。它會將模擬裝置資料傳送至 SiteWise Edge MQTT 代理程式，以供 SiteWise Edge Gateway 擷取，然後傳送至 AWS IoT SiteWise 雲端。\]](http://docs.aws.amazon.com/zh_tw/iot-sitewise/latest/userguide/images/gateway-open-source-nodered-publish-flow.png)


## 設定資料輸入節點
<a name="windows-nodered-data-input-config"></a>

在此範例中，資料輸入節點使用模擬風力渦輪機裝置來產生風速資料。此節點可做為工業資料的進入點，無論是來自模擬來源 （如範例所示），還是來自生產環境中的實際工業設備。

我們為資料承載使用自訂 JSON 格式，以提供標準化結構，可有效率地與本機處理工具和 AWS IoT SiteWise 雲端服務搭配使用。此格式包含基本中繼資料，例如時間戳記和品質指標，以及實際的測量值，可在整個管道中實現全面的資料管理和品質追蹤。匯入注入節點以接收此標準化 JSON 格式的模擬資料，其中包含時間戳記、品質指標和值。

如需 Node-RED 注入節點的詳細資訊，請參閱 *Node-RED 文件*中的[注入](https://nodered.org/docs/user-guide/nodes#inject)一節。

渦輪模擬器會以此標準化 JSON 格式每秒產生風速資料：

**Example ：渦輪資料承載**  

```
{
    name: string,         // Property name/identifier
    timestamp: number,    // Epoch time in nanoseconds
    quality: "GOOD" | "UNCERTAIN" | "BAD",
    value: number | string | boolean
}
```

此格式提供數種優點：
+ `name` 欄位可識別特定屬性或測量，可讓您從相同裝置追蹤多個資料點
+ 以奈秒`timestamp`為單位的 可確保精確的時間追蹤，以進行準確的歷史分析
+ `quality` 指標可協助您根據資料的可靠性篩選和管理資料
+ 彈性`value`欄位支援不同的資料類型，以容納各種感應器輸出

**Example ：注入渦輪模擬器的節點**  

```
[
    {
        "id": "string",
        "type": "inject",
        "z": "string",
        "name": "Turbine Simulator",
        "props": [
            {
                "p": "payload.timestamp",
                "v": "",
                "vt": "date"
            },
            {
                "p": "payload.quality",
                "v": "GOOD",
                "vt": "str"
            },
            {
                "p": "payload.value",
                "v": "$random()",
                "vt": "jsonata"
            },
            {
                "p": "payload.name",
                "v": "/Renton/WindFarm/Turbine/WindSpeed",
                "vt": "str"
            }
        ],
        "repeat": "1",
        "crontab": "",
        "once": false,
        "onceDelay": "",
        "topic": "",
        "x": 270,
        "y": 200,
        "wires": [
            [
                "string"
            ]
        ]
    }
]
```

## 設定節點以進行資料轉譯
<a name="windows-nodered-sitewiseise-translator-config"></a>

SiteWise Edge 閘道需要特定格式的資料，以確保與 AWS IoT SiteWise 雲端的相容性。轉譯器節點是將您的輸入資料轉換為所需 AWS IoT SiteWise 承載格式的重要元件。此轉譯步驟可確保在雲端環境中正確處理、儲存及稍後分析 AWS IoT SiteWise 工業資料。

透過在此階段標準化資料格式，您可以啟用邊緣裝置與雲端服務之間的整合，您可以在其中使用資產建模、分析和視覺化功能。使用此結構：

**Example ：SiteWise Edge 資料剖析的承載結構**  

```
{
  "propertyAlias": "string",  
  "propertyValues": [
    {
      "value": { 
          "booleanValue": boolean, 
          "doubleValue": number, 
          "integerValue": number,
          "stringValue": "string" 
     },
      "timestamp": {
          "timeInSeconds": number,
          "offsetInNanos": number
      },
      "quality": "GOOD" | "UNCERTAIN" | "BAD",
  }]
}
```

**注意**  
將 `propertyAlias`與您的 MQTT 主題階層相符 （例如 `/Renton/WindFarm/Turbine/WindSpeed`)。這可確保您的資料與 中的正確資產屬性正確關聯 AWS IoT SiteWise。如需詳細資訊，請參閱 中的「資料串流別名」概念[AWS IoT SiteWise 概念](concept-overview.md)。

1. 匯入用於 AWS IoT SiteWise 承載轉譯的範例函數節點。此函數會處理從標準化輸入格式到 AWS IoT SiteWise相容格式的轉換，確保適當的時間戳記格式、品質指標和值輸入。

   ```
   [
       {
           "id": "string",
           "type": "function",
           "z": "string",
           "name": "Translate to SiteWise payload",
           "func": "let input = msg.payload;\nlet output = {};\n\noutput[\"propertyAlias\"] = input.name;\n\nlet propertyVal = {}\n\nlet timeInSeconds = Math.floor(input.timestamp / 1000);\nlet offsetInNanos = (input.timestamp % 1000) * 1000000;\n\npropertyVal[\"timestamp\"] = {\n    \"timeInSeconds\": timeInSeconds,\n    \"offsetInNanos\": offsetInNanos,\n};\n\npropertyVal[\"quality\"] = input.quality\n\nlet typeNameConverter = {\n    \"number\": (x) => Number.isInteger(x) ? \"integerValue\" : \"doubleValue\",\n    \"boolean\": (x) => \"booleanValue\",\n    \"string\": (x) => \"stringValue\", \n}\nlet typeName = typeNameConverter[typeof input.value](input.value)\npropertyVal[\"value\"] = {}\npropertyVal[\"value\"][typeName] = input.value;\n\noutput[\"propertyValues\"] = [propertyVal]\n\nreturn {\n    payload: JSON.stringify(output)\n};",
           "outputs": 1,
           "timeout": "",
           "noerr": 0,
           "initialize": "",
           "finalize": "",
           "libs": [],
           "x": 530,
           "y": 200,
           "wires": [
               [
                   "string"
               ]
           ]
       }
   ]
   ```

1. 確認 JavaScript 程式碼正確地轉譯風速資料。函數會執行數個重要的任務：
   + 從輸入擷取屬性名稱，並將其設定為 propertyAlias
   + 將時間戳記從毫秒轉換為所需的秒和奈秒格式
   + 保留資料可靠性追蹤的品質指標
   + 自動偵測值類型並根據需求格式化 AWS IoT SiteWise 

1. 將節點連接至您的流程，將其在資料輸入節點和 MQTT 發佈者之間連結。

如需撰寫專屬於您業務需求之函數的指引，請參閱 *Node-RED 文件*中的[撰寫函數](https://nodered.org/docs/user-guide/writing-functions) 

## 設定 MQTT 發佈者
<a name="windows-nodered-mqtt-publisher-config"></a>

翻譯後，資料已準備好發佈至 SiteWise Edge MQTT 代理程式。

使用這些設定來設定 MQTT 發佈者，將資料傳送至 SiteWise Edge MQTT 代理程式：

**匯入 MQTT 輸出節點**

1. 使用 匯入 MQTT 輸出組態節點`"type": "mqtt out"`。MQTT 輸出節點可讓您共用代理程式的組態。

1. 輸入鍵/值對，以取得 MQTT 代理程式連線和訊息路由的相關資訊。

匯入範例`mqtt out`節點。

**Example**  

```
[
    {
        "id": "string",
        "type": "mqtt out",
        "z": "string",
        "name": "Publish to MQTT broker",
        "topic": "/Renton/WindFarm/Turbine/WindSpeed",
        "qos": "1",
        "retain": "",
        "respTopic": "",
        "contentType": "",
        "userProps": "",
        "correl": "",
        "expiry": "",
        "broker": "string",
        "x": 830,
        "y": 200,
        "wires": []
    },
    {
        "id": "string",
        "type": "mqtt-broker",
        "name": "emqx",
        "broker": "127.0.0.1",
        "port": "1883",
        "clientid": "",
        "autoConnect": true,
        "usetls": false,
        "protocolVersion": "5",
        "keepalive": 15,
        "cleansession": true,
        "autoUnsubscribe": true,
        "birthTopic": "",
        "birthQos": "0",
        "birthPayload": "",
        "birthMsg": {},
        "closeTopic": "",
        "closePayload": "",
        "closeMsg": {},
        "willTopic": "",
        "willQos": "0",
        "willPayload": "",
        "willMsg": {},
        "userProps": "",
        "sessionExpiry": ""
    }
]
```

MQTT 輸出節點範例會使用下列資訊建立 MQTT 連線：
+ 伺服器： `127.0.0.1`
+ 連接埠： `1883`
+ 通訊協定： `MQTT V5`

然後，MQTT 輸出節點會使用下列資訊設定訊息路由：
+ 主題：`/Renton/WindFarm/Turbine/WindSpeed`
+ QoS： `1`

## 部署和驗證節點
<a name="windows-verify-deployment"></a>

設定三個資料發佈流程節點之後，請依照下列步驟部署流程，並確認資料已正確傳輸至 AWS IoT SiteWise

**部署和驗證連線**

1. 連接三個節點，如資料發佈流程中所示。  
![\[Data publish flow diagram showing input from turbine simulator to AWS IoT SiteWise to MQTT broker.\]](http://docs.aws.amazon.com/zh_tw/iot-sitewise/latest/userguide/images/gateway-open-source-nodered-publish-flow.png)

1. 選擇**部署**以套用所有節點連線變更。

1. 導覽至 [AWS IoT SiteWise 主控台](https://console.aws.amazon.com/iotsitewise/)，然後選擇**資料串流**。

1. 確定已在下拉式功能表中選取**別名字首**。然後，搜尋`/Renton/WindFarm/Turbine/WindSpeed`別名。

如果您在搜尋中看到正確的別名，表示您已部署流程和已驗證的資料傳輸。

# 設定資料保留流程
<a name="windows-nodered-data-retention-flow"></a>

資料保留流程可用來維持邊緣的操作可見性。這在網路中斷或您需要立即存取資料時非常有用。此流程會訂閱 MQTT 代理程式以接收裝置資料、將其轉換為 InfluxDB® 格式，並將其儲存在本機。透過實作此流程，您可以建立彈性的本機資料存放區，讓操作員無需雲端相依性即可存取，並在邊緣實現即時監控和決策。

流程由三個關鍵元件組成，共同確保正確擷取和存放您的資料：
+ **MQTT 訂閱用戶端** - 從代理程式接收資料，確保您擷取所有相關工業資料
+ **InfluxDB 轉譯器** - 將 AWS IoT SiteWise 承載轉換為 InfluxDB 格式，準備資料以實現高效的時間序列儲存
+ **InfluxDB 寫入器** - 處理本機儲存，確保本機應用程式的資料持久性和可用性

![\[Node-RED 資料保留流程\]](http://docs.aws.amazon.com/zh_tw/iot-sitewise/latest/userguide/images/gateway-open-source-nodered-data-retention.png)


## 設定 MQTT 訂閱用戶端
<a name="windows-nodered-mqtt-subscriber"></a>
+  AWS IoT SiteWise 匯入以下範例，在 Node-RED 中設定 MQTT 訂閱用戶端，以接收來自 中 MQTT EMQX 代理程式的資料。  
**Example ：節點中的 MQTT**  

  ```
  [
      {
          "id": "string",
          "type": "mqtt in",
          "z": "string",
          "name": "Subscribe to MQTT broker",
          "topic": "/Renton/WindFarm/Turbine/WindSpeed",
          "qos": "1",
          "datatype": "auto-detect",
          "broker": "string",
          "nl": false,
          "rap": true,
          "rh": 0,
          "inputs": 0,
          "x": 290,
          "y": 340,
          "wires": [
              [
                  "string"
              ]
          ]
      },
      {
          "id": "string",
          "type": "mqtt-broker",
          "name": "emqx",
          "broker": "127.0.0.1",
          "port": "1883",
          "clientid": "",
          "autoConnect": true,
          "usetls": false,
          "protocolVersion": "5",
          "keepalive": 15,
          "cleansession": true,
          "autoUnsubscribe": true,
          "birthTopic": "",
          "birthQos": "0",
          "birthPayload": "",
          "birthMsg": {},
          "closeTopic": "",
          "closePayload": "",
          "closeMsg": {},
          "willTopic": "",
          "willQos": "0",
          "willPayload": "",
          "willMsg": {},
          "userProps": "",
          "sessionExpiry": ""
      }
  ]
  ```

此訂閱可確保為本機儲存擷取發佈至代理程式的所有相關資料，並提供工業操作的完整記錄。節點使用與 [設定 MQTT 發佈者](windows-nodered-data-publish-flow.md#windows-nodered-mqtt-publisher-config)區段相同的 MQTT 連線參數，具有下列訂閱設定：
+ 主題 – `/Renton/WindFarm/Turbine/WindSpeed`
+ QoS – `1`

如需詳細資訊，請參閱 *Node-RED 文件*中的[連線至 MQTT 中介裝置](https://cookbook.nodered.org/mqtt/connect-to-broker)。

## 設定 InfluxDB 轉譯器
<a name="windows-nodered-influxdb-translator"></a>

InfluxDB 使用索引的[標籤](https://docs.influxdata.com/influxdb/v1/concepts/glossary/#tag)和值[的欄位](https://docs.influxdata.com/influxdb/v1/concepts/glossary/#field)來組織資料。此組織會最佳化時間序列資料的查詢效能和儲存效率。匯入包含 JavaScript 程式碼的範例函數節點，將 AWS IoT SiteWise 承載轉換為 InfluxDB 格式。轉譯器會將屬性分割成兩個群組：
+ 標籤 – 有效率索引的品質和名稱屬性
+ 欄位 – 時間戳記 （自 epoch 起以毫秒為單位） 和值

**Example ：轉換為 InfluxDB 承載的函數節點**  

```
[
    {
        "id": "string",
        "type": "function",
        "z": "string",
        "name": "Translate to InfluxDB payload",
        "func": "let data = msg.payload;\n\nlet timeInSeconds = data.propertyValues[0].timestamp.timeInSeconds;\nlet offsetInNanos = data.propertyValues[0].timestamp.offsetInNanos;\nlet timestampInMilliseconds = (timeInSeconds * 1000) + (offsetInNanos / 1000000);\n\nmsg.payload = [\n    {\n        \"timestamp(milliseconds_since_epoch)\": timestampInMilliseconds,\n        \"value\": data.propertyValues[0].value.doubleValue\n    },\n    {\n        \"name\": data.propertyAlias,\n        \"quality\": data.propertyValues[0].quality\n    }\n]\n\nreturn msg",
        "outputs": 1,
        "timeout": "",
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 560,
        "y": 340,
        "wires": [
            [
                "string"
            ]
        ]
    }
]
```

如需其他組態選項，請參閱 Node-RED GitHub 儲存庫中的 [node-red-contrib-influxdb](https://github.com/mblackstock/node-red-contrib-influxdb)。 GitHub 

## 設定 InfluxDB 寫入器
<a name="windows-nodered-influxdb-writer"></a>

InfluxDB 寫入器節點是資料保留流程中的最終元件，負責將工業資料儲存在本機 InfluxDB 資料庫中。此本機儲存對於在網路中斷期間維持操作可見性，並提供對時間關鍵型應用程式資料的立即存取至關重要。

1. 透過管理調色盤選項安裝 node-red-contrib-influxdb 套件。此套件提供將 Node-RED 與 InfluxDB 連線所需的節點。

1. 將 InfluxDB 輸出節點新增至您的流程。此節點將處理資料的實際寫入您的 InfluxDB 資料庫。

1. 設定伺服器屬性以建立與 InfluxDB 執行個體的安全連線：

   1. 將版本設定為 2.0 - 這會指定您要連線至 InfluxDB v2.x，這會使用與舊版不同的 API

   1. 將 URL 設定為 `http://127.0.0.1:8086` - 這指向您的本機 InfluxDB 執行個體

   1. 輸入您的 InfluxDB 身分驗證字符。此安全字符會授權與資料庫的連線。您在[使用 InfluxDB 設定本機儲存](windows-influxdb-setup.md)程序期間產生權杖。

1. 指定儲存位置參數，以定義資料的存放位置和方式：

   1. 輸入您的 InfluxDB 組織名稱 – 組織是一組使用者的工作區，您的儲存貯體和儀表板屬於其中。如需詳細資訊，請參閱《》中的[管理組織](https://docs.influxdata.com/influxdb/v2/admin/organizations/)*InfluxData Documentation*。

   1. 指定 InfluxDB 儲存貯體 （例如 `WindFarmData`) – 儲存貯體等同於傳統系統中的資料庫，可作為時間序列資料的容器

   1. 設定 InfluxDB 測量 （例如 `TurbineData`) – 測量類似於關聯式資料庫中的資料表，可組織相關資料點

**注意**  
在 InfluxDB 執行個體的左側邊欄中尋找您的組織名稱。組織、儲存貯體和測量概念是 InfluxDB 資料組織模型的基礎。如需詳細資訊，請參閱 [InfluxDB 文件](https://docs.influxdata.com/influxdb/v2/admin/organizations/)。

## 部署和驗證保留流程
<a name="windows-nodered-retention-deploy"></a>

設定資料保留流程的所有元件之後，您需要部署並驗證系統是否正常運作。此驗證可確保您的工業資料在本機正確存放，以便立即存取和分析。

1. 連接三個節點，如資料保留流程圖所示。這會建立從資料訂閱到本機儲存的完整管道。  
![\[Node-RED 資料保留流程\]](http://docs.aws.amazon.com/zh_tw/iot-sitewise/latest/userguide/images/gateway-open-source-nodered-data-retention.png)

1. 選擇**部署**以套用變更並啟用流程。這會啟動資料收集和儲存程序。

1. 使用 InfluxDB Data Explorer 查詢和視覺化您的資料。此工具可讓您驗證資料是否已正確儲存，並建立時間序列資料的初始視覺化。

   在 Data Explorer 中，您應該能夠查看隨時間記錄的風速測量結果，確認從產生資料到本機儲存的整個管道都正常運作。

   如需詳細資訊，請參閱《》[中的在 Data Explorer 中查詢](https://docs.influxdata.com/influxdb/v2/query-data/execute-queries/data-explorer/)*InfluxData Documentation*。

部署資料發佈流程和資料保留流程後，您現在擁有將資料傳送至 AWS IoT SiteWise 雲端的完整系統，同時保留本機複本以立即存取和恢復能力。這種雙路徑方法可確保您獲得雲端型分析和儲存的優勢，同時保持邊緣的操作可見性。

# 設定 Grafana for SiteWise Edge
<a name="windows-grafana"></a>

 Grafana® 可讓您為工業資料建立本機即時監控儀表板。透過視覺化儲存在 InfluxDB® 中的資料，您可以為操作員提供設備效能、程序效率和潛在問題的即時洞見。在邊緣的這種可見性對於時間敏感的操作和在網路中斷期間維持持續性至關重要。

## 設定資料來源
<a name="windows-grafana-data-source-config"></a>

將 Grafana 連接到 InfluxDB 資料庫會為您的工業資料建立強大的視覺化層。此連線可啟用即時監控儀表板，讓運算子在沒有雲端相依性的情況下做出明智的決策。

1. 在瀏覽器中導覽至 [http://127.0.0.1:3000](http://127.0.0.1:3000)，在本機存取您的 Grafana 執行個體。如果需要啟用 TLS，您可以參考 *Grafana Labs 文件*中的[設定 Grafana HTTPS 以取得安全 Web 流量](https://grafana.com/docs/grafana/latest/setup-grafana/set-up-https/)。

1. 新增 InfluxDB 資料來源，指向 Node-RED 寫入資料的 InfluxDB 時間序列儲存貯體。例如 `WindFarmData`。此連線會在儲存的資料與視覺化平台之間建立連結。

1. 如需詳細說明，請參閱 *Grafana Labs 文件*中的[設定 InfluxDB 資料來源](https://grafana.com/docs/grafana/latest/datasources/influxdb/configure-influxdb-data-source/)。

### 為 SiteWise Edge 資料建立 Grafana 儀表板
<a name="windows-grafana-create-dashboard"></a>

建立儀表板是建置本機監控解決方案的最後一步。儀表板提供工業資料的視覺化呈現，讓您更輕鬆地一目了然地識別趨勢、異常和潛在問題。
+ 依照指南建立儀表板。如需詳細資訊，請參閱 *Grafana Labs 文件*中的[建置您的第一個儀表板](https://grafana.com/docs/grafana/latest/getting-started/build-first-dashboard/)。此範本假設您的儲存貯體已命名，`WindFarmData`且測量結果為 `TurbineData`。

  您也可以透過匯入提供的範例儀表板範本來使用快速入門指南，快速為 Node-RED 在上一節中產生的資料建立具有時間序列圖的儀表板。此範本提供一個起點，您可以自訂以滿足您的特定監控需求。

  ```
  {
    "__inputs": [
      {
        "name": "DS_WINDFARM-DEMO",
        "label": "windfarm-demo",
        "description": "",
        "type": "datasource",
        "pluginId": "influxdb",
        "pluginName": "InfluxDB"
      }
    ],
    "__elements": {},
    "__requires": [
      {
        "type": "grafana",
        "id": "grafana",
        "name": "Grafana",
        "version": "11.6.0-pre"
      },
      {
        "type": "datasource",
        "id": "influxdb",
        "name": "InfluxDB",
        "version": "1.0.0"
      },
      {
        "type": "panel",
        "id": "timeseries",
        "name": "Time series",
        "version": ""
      }
    ],
    "annotations": {
      "list": [
        {
          "builtIn": 1,
          "datasource": {
            "type": "grafana",
            "uid": "-- Grafana --"
          },
          "enable": true,
          "hide": true,
          "iconColor": "rgba(0, 211, 255, 1)",
          "name": "Annotations & Alerts",
          "type": "dashboard"
        }
      ]
    },
    "editable": true,
    "fiscalYearStartMonth": 0,
    "graphTooltip": 0,
    "id": null,
    "links": [],
    "panels": [
      {
        "datasource": {
          "type": "influxdb",
          "uid": "${DS_WINDFARM-DEMO}"
        },
        "fieldConfig": {
          "defaults": {
            "color": {
              "mode": "palette-classic"
            },
            "custom": {
              "axisBorderShow": false,
              "axisCenteredZero": false,
              "axisColorMode": "text",
              "axisLabel": "",
              "axisPlacement": "auto",
              "barAlignment": 0,
              "barWidthFactor": 0.6,
              "drawStyle": "line",
              "fillOpacity": 0,
              "gradientMode": "none",
              "hideFrom": {
                "legend": false,
                "tooltip": false,
                "viz": false
              },
              "insertNulls": false,
              "lineInterpolation": "linear",
              "lineWidth": 1,
              "pointSize": 5,
              "scaleDistribution": {
                "type": "linear"
              },
              "showPoints": "auto",
              "spanNulls": false,
              "stacking": {
                "group": "A",
                "mode": "none"
              },
              "thresholdsStyle": {
                "mode": "off"
              }
            },
            "mappings": [],
            "thresholds": {
              "mode": "absolute",
              "steps": [
                {
                  "color": "green"
                },
                {
                  "color": "red",
                  "value": 80
                }
              ]
            }
          },
          "overrides": []
        },
        "gridPos": {
          "h": 8,
          "w": 12,
          "x": 0,
          "y": 0
        },
        "id": 1,
        "options": {
          "legend": {
            "calcs": [],
            "displayMode": "list",
            "placement": "bottom",
            "showLegend": true
          },
          "tooltip": {
            "hideZeros": false,
            "mode": "single",
            "sort": "none"
          }
        },
        "pluginVersion": "11.6.0-pre",
        "targets": [
          {
            "datasource": {
              "type": "influxdb",
              "uid": "${DS_WINDFARM-DEMO}"
            },
            "query": "from(bucket: \"WindFarmData\")\n  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n  |> filter(fn: (r) => r[\"_measurement\"] == \"TurbineData\")\n  |> filter(fn: (r) => r[\"_field\"] == \"value\")\n  |> filter(fn: (r) => r[\"name\"] == \"/Renton/WindFarm/Turbine/WindSpeed\")\n  |> filter(fn: (r) => r[\"quality\"] == \"GOOD\")\n  |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)\n  |> yield(name: \"mean\")",
            "refId": "A"
          }
        ],
        "title": "Panel Title",
        "type": "timeseries"
      }
    ],
    "schemaVersion": 41,
    "tags": [],
    "templating": {
      "list": []
    },
    "time": {
      "from": "now-6h",
      "to": "now"
    },
    "timepicker": {},
    "timezone": "browser",
    "title": "demo dashboard",
    "uid": "fejc0t08o6d4wb",
    "version": 1,
    "weekStart": ""
  }
  ```

# 設定與 Docker (Linux) 的開放原始碼整合
<a name="linux-docker-setup"></a>

若要簡化部署程序，您可以使用 Docker 在 Linux 環境中設定 Node-RED®、InfluxDB® 和 Grafana®。此方法使用預先設定的容器，以便快速部署和更輕鬆地管理元件。

## Docker 設定先決條件
<a name="linux-docker-prerequisites"></a>

開始之前，請確認 具有下列項目：
+ 啟用 MQTT 的 V3 閘道。如需詳細資訊，請參閱[啟用 MQTT 的 AWS IoT SiteWise Edge V3 閘道](mqtt-enabled-v3-gateway.md)。
+ Docker Compose 外掛程式。如需安裝步驟，請參閱 [Docker 手冊文件中的安裝Docker Compose外掛程式](https://docs.docker.com/compose/install/linux/)。 **

## 部署 服務
<a name="linux-docker-deployment"></a>

此部署會在相同的主機上執行 SiteWise Edge、InfluxDB、Node-RED 和 Grafana。

### 設定環境
<a name="linux-docker-env-setup"></a>

1. 取得根存取權：

   ```
   sudo -i
   ```

1. 建立 .env 檔案或匯出這些環境變數：

   ```
   export INFLUXDB_PASSWORD=your-secure-influxdb-password
   export INFLUXDB_TOKEN=your-secure-influxdb-token
   export GRAFANA_PASSWORD=your-secure-grafana-password
   ```

### 設定 Docker 網路
<a name="linux-docker-network-config"></a>
+ 使用名稱 建立橋接網路`SiteWiseEdgeNodeRedDemoNetwork`。

  ```
  docker network create --driver=bridge SiteWiseEdgeNodeRedDemoNetwork
  ```

### 準備 Docker Compose 檔案
<a name="linux-docker-compose-file"></a>

將下列 YAML 檔案的內容複製到 SiteWise Edge 閘道裝置。

#### 展開以檢視 Docker Compose YAML 檔案範例
<a name="collapsible-section-docker-compose-file"></a>

```
services:
  influxdb:
    image: influxdb:latest
    container_name: influxdb
    ports:
      - "127.0.0.1:8086:8086"
    volumes:
      - influxdb-storage:/.influxdbv2
    environment:
      - DOCKER_INFLUXDB_INIT_MODE=setup
      - DOCKER_INFLUXDB_INIT_USERNAME=admin
      - DOCKER_INFLUXDB_INIT_PASSWORD=${INFLUXDB_PASSWORD}
      - DOCKER_INFLUXDB_INIT_ORG=iot-sitewise-edge
      - DOCKER_INFLUXDB_INIT_BUCKET=WindFarmData
      - DOCKER_INFLUXDB_INIT_RETENTION=0
      - DOCKER_INFLUXDB_INIT_ADMIN_TOKEN=${INFLUXDB_TOKEN}
    networks:
      - SiteWiseEdgeNodeRedDemoNetwork
    restart: unless-stopped

  grafana:
    image: grafana/grafana:latest
    container_name: grafana
    ports:
      - "127.0.0.1:3000:3000"
    volumes:
      - grafana-storage:/var/lib/grafana
      - ./grafana/provisioning:/etc/grafana/provisioning
    environment:
      - GF_SECURITY_ADMIN_USER=admin
      - GF_SECURITY_ADMIN_PASSWORD=${GRAFANA_PASSWORD}
      - GF_INSTALL_PLUGINS=grafana-clock-panel,grafana-simple-json-datasource
      - GF_PATHS_PROVISIONING=/etc/grafana/provisioning
      - GF_PATHS_CONFIG=/etc/grafana/grafana.ini
      - GF_LOG_LEVEL=info
    configs:
      - source: grafana_datasource
        target: /etc/grafana/provisioning/datasources/influxdb.yaml
      - source: grafana_preload_dashboard_config
        target: /etc/grafana/provisioning/dashboards/dashboard.yml
      - source: grafana_preload_dashboard
        target: /etc/grafana/provisioning/dashboards/demo_dashboard.json
    depends_on:
      - influxdb
    networks:
      - SiteWiseEdgeNodeRedDemoNetwork
    restart: unless-stopped

  nodered:
    build:
      context: .
      dockerfile_inline: |
        FROM nodered/node-red:latest
        RUN npm install node-red-contrib-influxdb
    container_name: nodered
    ports:
      - "127.0.0.1:1880:1880"
    volumes:
      - node_red_data:/data
    environment:
      - NODE_RED_ENABLE_SAFE_MODE=false
      - NODE_RED_ENABLE_PALETTE_EDIT=true
      - NODE_RED_AUTO_INSTALL_MODULES=true
    configs:
      - source: nodered_flows
        target: /data/flows.json
      - source: nodered_settings
        target: /data/settings.js
      - source: nodered_flows_cred
        target: /data/flows_cred.json
    depends_on:
      - influxdb
    networks:
      - SiteWiseEdgeNodeRedDemoNetwork
    restart: unless-stopped

volumes:
  influxdb-storage:
  grafana-storage:
  node_red_data:

networks:
  SiteWiseEdgeNodeRedDemoNetwork:
    external: true

configs:
  grafana_datasource:
    content: |
      apiVersion: 1
      datasources:
        - name: windfarm-demo
          type: influxdb
          access: proxy
          url: http://influxdb:8086
          jsonData:
            version: Flux
            organization: iot-sitewise-edge
            defaultBucket: WindFarmData
            tlsSkipVerify: true
          secureJsonData:
            token: ${INFLUXDB_TOKEN}
          editable: false

  grafana_preload_dashboard_config:
    content: |
      apiVersion: 1
      providers:
        - name: "Dashboard provider"
          orgId: 1
          type: file
          options: 
            path: /etc/grafana/provisioning/dashboards

  grafana_preload_dashboard:
    content: |
      {
        "annotations": {
          "list": [
            {
              "builtIn": 1,
              "datasource": {
                "type": "grafana",
                "uid": "-- Grafana --"
              },
              "enable": true,
              "hide": true,
              "iconColor": "rgba(0, 211, 255, 1)",
              "name": "Annotations & Alerts",
              "type": "dashboard"
            }
          ]
        },
        "editable": true,
        "fiscalYearStartMonth": 0,
        "graphTooltip": 0,
        "id": 1,
        "links": [],
        "panels": [
          {
            "datasource": {
              "type": "influxdb",
              "uid": "PEB0DCBF338B3CEB2"
            },
            "fieldConfig": {
              "defaults": {
                "color": {
                  "mode": "palette-classic"
                },
                "custom": {
                  "axisBorderShow": false,
                  "axisCenteredZero": false,
                  "axisColorMode": "text",
                  "axisLabel": "",
                  "axisPlacement": "auto",
                  "barAlignment": 0,
                  "barWidthFactor": 0.6,
                  "drawStyle": "line",
                  "fillOpacity": 0,
                  "gradientMode": "none",
                  "hideFrom": {
                    "legend": false,
                    "tooltip": false,
                    "viz": false
                  },
                  "insertNulls": false,
                  "lineInterpolation": "linear",
                  "lineWidth": 1,
                  "pointSize": 5,
                  "scaleDistribution": {
                    "type": "linear"
                  },
                  "showPoints": "auto",
                  "spanNulls": false,
                  "stacking": {
                    "group": "A",
                    "mode": "none"
                  },
                  "thresholdsStyle": {
                    "mode": "off"
                  }
                },
                "mappings": [],
                "thresholds": {
                  "mode": "absolute",
                  "steps": [
                    {
                      "color": "green"
                    },
                    {
                      "color": "red",
                      "value": 80
                    }
                  ]
                }
              },
              "overrides": []
            },
            "gridPos": {
              "h": 8,
              "w": 12,
              "x": 0,
              "y": 0
            },
            "id": 1,
            "options": {
              "legend": {
                "calcs": [],
                "displayMode": "list",
                "placement": "bottom",
                "showLegend": true
              },
              "tooltip": {
                "hideZeros": false,
                "mode": "single",
                "sort": "none"
              }
            },
            "pluginVersion": "11.6.0",
            "targets": [
              {
                "datasource": {
                  "type": "influxdb",
                  "uid": "PEB0DCBF338B3CEB2"
                },
                "query": "from(bucket: \"WindFarmData\")\n  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)\n  |> filter(fn: (r) => r[\"_measurement\"] == \"TurbineData\")\n  |> filter(fn: (r) => r[\"_field\"] == \"value\")\n  |> filter(fn: (r) => r[\"name\"] == \"/Renton/WindFarm/Turbine/WindSpeed\")\n  |> filter(fn: (r) => r[\"quality\"] == \"GOOD\")\n  |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)\n  |> yield(name: \"mean\")",
                "refId": "A"
              }
            ],
            "title": "Wind Speed",
            "type": "timeseries"
          }
        ],
        "preload": false,
        "schemaVersion": 41,
        "tags": [],
        "templating": {
          "list": []
        },
        "time": {
          "from": "now-6h",
          "to": "now"
        },
        "timepicker": {},
        "timezone": "browser",
        "title": "Demo Dashboard",
        "uid": "eejtureqjo9a8c",
        "version": 2
      }

  nodered_flows:
    content: |
      [
        {
          "id": "95fce448fdd43b47",
          "type": "tab",
          "label": "Demo Flow",
          "disabled": false,
          "info": ""
        },
        {
          "id": "5f63740b66af3386",
          "type": "mqtt out",
          "z": "95fce448fdd43b47",
          "name": "Publish to MQTT broker",
          "topic": "/Renton/WindFarm/Turbine/WindSpeed",
          "qos": "1",
          "retain": "",
          "respTopic": "",
          "contentType": "",
          "userProps": "",
          "correl": "",
          "expiry": "",
          "broker": "5744207557fa19be",
          "x": 830,
          "y": 200,
          "wires": []
        },
        {
          "id": "8f2eb590d596679b",
          "type": "function",
          "z": "95fce448fdd43b47",
          "name": "Translate to SiteWise payload",
          "func": "let input = msg.payload;\nlet output = {};\n\noutput[\"propertyAlias\"] = input.name;\n\nlet propertyVal = {}\n\nlet timeInSeconds = Math.floor(input.timestamp / 1000);\nlet offsetInNanos = (input.timestamp % 1000) * 1000000;\n\npropertyVal[\"timestamp\"] = {\n    \"timeInSeconds\": timeInSeconds,\n    \"offsetInNanos\": offsetInNanos,\n};\n\npropertyVal[\"quality\"] = input.quality\n\nlet typeNameConverter = {\n    \"number\": (x) => Number.isInteger(x) ? \"integerValue\" : \"doubleValue\",\n    \"boolean\": (x) => \"booleanValue\",\n    \"string\": (x) => \"stringValue\", \n}\nlet typeName = typeNameConverter[typeof input.value](input.value)\npropertyVal[\"value\"] = {}\npropertyVal[\"value\"][typeName] = input.value;\n\noutput[\"propertyValues\"] = [propertyVal]\n\nreturn {\n    payload: JSON.stringify(output)\n};",
          "outputs": 1,
          "timeout": "",
          "noerr": 0,
          "initialize": "",
          "finalize": "",
          "libs": [],
          "x": 530,
          "y": 200,
          "wires": [
            [
              "5f63740b66af3386"
            ]
          ]
        },
        {
          "id": "4b78cbdea5e3258c",
          "type": "inject",
          "z": "95fce448fdd43b47",
          "name": "Turbine Simulator",
          "props": [
            {
              "p": "payload.timestamp",
              "v": "",
              "vt": "date"
            },
            {
              "p": "payload.quality",
              "v": "GOOD",
              "vt": "str"
            },
            {
              "p": "payload.value",
              "v": "$$random()",
              "vt": "jsonata"
            },
            {
              "p": "payload.name",
              "v": "/Renton/WindFarm/Turbine/WindSpeed",
              "vt": "str"
            }
          ],
          "repeat": "1",
          "crontab": "",
          "once": false,
          "onceDelay": "",
          "topic": "",
          "x": 270,
          "y": 200,
          "wires": [
            [
              "8f2eb590d596679b"
            ]
          ]
        },
        {
          "id": "b658bf337ea2e316",
          "type": "influxdb out",
          "z": "95fce448fdd43b47",
          "influxdb": "2f1c38495035d2e4",
          "name": "Store data in InfluxDB",
          "measurement": "TurbineData",
          "precision": "",
          "retentionPolicy": "",
          "database": "",
          "retentionPolicyV18Flux": "",
          "org": "iot-sitewise-edge",
          "bucket": "WindFarmData",
          "x": 840,
          "y": 340,
          "wires": []
        },
        {
          "id": "9432d39af35b202f",
          "type": "function",
          "z": "95fce448fdd43b47",
          "name": "Translate to InfluxDB payload",
          "func": "let data = msg.payload;\n\nlet timeInSeconds = data.propertyValues[0].timestamp.timeInSeconds;\nlet offsetInNanos = data.propertyValues[0].timestamp.offsetInNanos;\nlet timestampInMilliseconds = (timeInSeconds * 1000) + (offsetInNanos / 1000000);\n\nmsg.payload = [\n    {\n        \"timestamp(milliseconds_since_epoch)\": timestampInMilliseconds,\n        \"value\": data.propertyValues[0].value.doubleValue\n    },\n    {\n        \"name\": data.propertyAlias,\n        \"quality\": data.propertyValues[0].quality\n    }\n]\n\nreturn msg",
          "outputs": 1,
          "timeout": "",
          "noerr": 0,
          "initialize": "",
          "finalize": "",
          "libs": [],
          "x": 560,
          "y": 340,
          "wires": [
            [
              "b658bf337ea2e316"
            ]
          ]
        },
        {
          "id": "b689403d2c80816b",
          "type": "mqtt in",
          "z": "95fce448fdd43b47",
          "name": "Subscribe to MQTT broker",
          "topic": "/Renton/WindFarm/Turbine/WindSpeed",
          "qos": "1",
          "datatype": "auto-detect",
          "broker": "5744207557fa19be",
          "nl": false,
          "rap": true,
          "rh": 0,
          "inputs": 0,
          "x": 290,
          "y": 340,
          "wires": [
            [
              "9432d39af35b202f"
            ]
          ]
        },
        {
          "id": "4f59bed8e829fc35",
          "type": "comment",
          "z": "95fce448fdd43b47",
          "name": "Data Publish Flow",
          "info": "dfgh",
          "x": 270,
          "y": 160,
          "wires": []
        },
        {
          "id": "b218c7fc58c8b6e7",
          "type": "comment",
          "z": "95fce448fdd43b47",
          "name": "Data Retention flow",
          "info": "",
          "x": 270,
          "y": 300,
          "wires": []
        },
        {
          "id": "5744207557fa19be",
          "type": "mqtt-broker",
          "name": "emqx",
          "broker": "emqx",
          "port": "1883",
          "clientid": "",
          "autoConnect": true,
          "usetls": false,
          "protocolVersion": "5",
          "keepalive": 15,
          "cleansession": true,
          "autoUnsubscribe": true,
          "birthTopic": "",
          "birthQos": "0",
          "birthPayload": "",
          "birthMsg": {},
          "closeTopic": "",
          "closePayload": "",
          "closeMsg": {},
          "willTopic": "",
          "willQos": "0",
          "willPayload": "",
          "willMsg": {},
          "userProps": "",
          "sessionExpiry": ""
        },
        {
          "id": "2f1c38495035d2e4",
          "type": "influxdb",
          "hostname": "influxdb",
          "port": 8086,
          "protocol": "http",
          "database": "",
          "name": "InfluxDB",
          "usetls": false,
          "tls": "",
          "influxdbVersion": "2.0",
          "url": "http://influxdb:8086",
          "timeout": "",
          "rejectUnauthorized": false
        }
      ]

  nodered_flows_cred:
    content: |
      {
        "2f1c38495035d2e4": {
          "token": "${INFLUXDB_TOKEN}"
        }
      }

  nodered_settings:
    content: |
      module.exports = {
        flowFile: 'flows.json',
        credentialSecret: false,
        adminAuth: null,
        editorTheme: {
          projects: {
            enabled: false
          }
        }
      }
```

### 更新 SiteWise Edge 部署
<a name="w2aac17c19c19c26c27b7c11"></a>

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

1. 在**管理**區段下的左側導覽選單中選擇 **Greengrass 裝置**，然後選擇**核心裝置**。

1. 選取連接至 SiteWise Edge Gateway 的核心裝置。

1. 選擇**部署**索引標籤，然後選擇**部署 ID** 值。

1. 選擇**動作**，然後選取**修訂**。

1. 讀取快顯訊息，然後選擇**修訂部署**。

1. 在**步驟 2 - 選取元件**中，選取下列元件，然後選擇**下一步**。
   + `aws.greengrass.clientdevices.mqtt.EMQX`
   + `aws.iot.SiteWiseEdgePublisher`

1. 在**步驟 3 - 設定元件**中，選取`aws.greengrass.clientdevices.mqtt.EMQX`元件值並新增下列網路組態：

   ```
   {
       "emqxConfig": {
           "authorization": {
               "no_match": "allow"
           },
           "listeners": {
               "tcp": {
                   "default": {
                       "enabled": true,
                       "enable_authn": false
                   }
               }
           }
       },
       "authMode": "bypass",
       "dockerOptions": "-p 127.0.0.1:1883:1883 --network=SiteWiseEdgeNodeRedDemoNetwork",
       "requiresPrivilege": "true"
   }
   ```

1. 選擇**下一步**。

1. 在**步驟 4 - 設定進階設定**中，選擇**下一步**。

1. 選擇**部署**

### 啟動 服務
<a name="linux-docker-launch"></a>

1. 使用 Docker Compose 檔案啟動服務。在包含 `compose.yaml` 檔案的目錄下執行下列命令。

   ```
   docker compose up -d
   ```

1. 建立 SSH 通道以存取 服務：

   ```
   ssh -i path_to_your_ssh_key -L 1880:127.0.0.1:1880 -L 3000:127.0.0.1:3000 -L 8086:127.0.0.1:8086 username@gateway_ip_address
   ```

此部署會在 中建立下列服務`SiteWiseEdgeNodeRedDemoNetwork network`：

**InfluxDB v2 （連接埠 8086)**  
包括預先設定的組織 (iot-sitewise-edge)、WindFarmData InfluxDB 儲存貯體和管理登入資料

**Node-RED （連接埠 1880)**  
包含 InfluxDB 節點和預先設定的 AWS IoT SiteWise 整合流程

**Grafana （連接埠 3000)**  
包括管理員使用者、InfluxDB 資料來源和監控儀表板

### 存取 服務
<a name="linux-docker-access-services"></a>

部署之後，請使用下列 URLs和登入資料存取 服務：

**注意**  
您可以從主機或閘道機器存取每個服務。


**服務存取詳細資訊**  

| 服務 | URL | 憑證 | 
| --- | --- | --- | 
| Node-RED | [http://127.0.0.1:1880](http://127.0.0.1:1880) | 不需要登入資料 | 
| InfluxDB | [http://127.0.0.1:8086](http://127.0.0.1:8086) |  使用者名稱：admin 密碼：\$1INFLUXDB\$1PASSWORD  | 
| Grafana | [http://127.0.0.1:3000](http://127.0.0.1:3000) |  使用者名稱：admin 密碼：\$1GRAFANA\$1PASSWORD  | 

## 驗證部署
<a name="linux-docker-verify-deployment"></a>

為了確保您的部署成功，請執行下列檢查：

1. 對於 Node-RED，驗證是否存在兩個預先載入的流程：
   + 資料發佈流程
   + 資料保留流程

1. 對於 AWS IoT SiteWise 主控台中 AWS IoT SiteWise具有別名 的資料串流是否存在`/Renton/WindFarm/Turbine/WindSpeed`。

1. 對於 InfluxDB，請使用 Data Explorer 驗證`WindFarmData`儲存貯體內`TurbineData`測量中的資料儲存。

1. 對於 Grafana，檢視儀表板以確認顯示從 Node-RED 產生的時間序列資料。

# 開放原始碼整合的程序資料
<a name="open-source-data-processing-open-source"></a>

資料可以在不同的階段使用各種工具進行處理 （例如轉換或彙總），每個工具都提供不同的監控需求。

## 使用 Node-RED 節點處理資料
<a name="open-source-nodered-nodes"></a>

使用 Node-RED® 內建處理節點即時轉換您的資料。透過 Node-RED 主控台設定這些節點，以建立您的資料管道。

### 資料轉換節點
<a name="open-source-data-transformation-nodes"></a>

 AWS IoT SiteWise使用這些節點轉換個別資料點，類似於 中的轉換：
+ **變更節點** - 對資料執行簡單的值修改。
+ **函數節點** - 為複雜的資料處理啟用自訂 JavaScript 轉換。

### 指標計算節點
<a name="open-source-metrics-calculation-nodes"></a>

使用這些節點 AWS IoT SiteWise，將多個資料點合併為單一輸出，類似於 中的指標：
+ **批次節點** - 將多個訊息分組以進行批次處理。
+ **聯結節點** - 將多個資料串流合併為單一輸出。
+ **彙總工具節點** - 從多個資料點計算彙總指標。

如需其他節點選項，請參閱 [Node-RED 程式庫](https://flows.nodered.org/)。

## 建立 InfluxDB 任務
<a name="open-source-influxdb-tasks"></a>

雖然 Node-RED 擅長快速設定的基本資料處理，但複雜的指標計算在流程型程式設計中可能會變得具有挑戰性。InfluxDB® 任務透過排程 Flux 指令碼提供替代方案，以滿足進階處理需求。

將 InfluxDB 任務用於：
+ 跨大型資料集的統計彙總
+ 多個屬性的數學操作
+ 從多個來源衍生的測量

### 任務功能
<a name="open-source-task-features"></a>
+ **排程執行** - 根據 Cron 表達式執行任務
+ **批次處理** - 最佳化時間序列資料的操作
+ **錯誤復原** - 自動重試失敗的操作
+ **監控** - 透過詳細日誌追蹤執行

透過 InfluxDB UI、API 或 CLI 管理任務。如需詳細資訊，請參閱[使用 InfluxDB 任務處理資料](https://docs.influxdata.com/influxdb/cloud/process-data/)。

## 使用 Grafana 轉換
<a name="open-source-grafana-transformations"></a>

轉換 Grafana® 中的資料視覺化，而不修改 InfluxDB 中的來源資料。Grafana 轉換僅適用於視覺化層。
+ **Visual Builder** - 建立轉換而不撰寫程式碼
+ **即時預覽** - 即時檢視轉換結果
+ **多來源** - 處理來自多個資料庫來源的資料
+ **儲存效率** - 在視覺化時間轉換資料，而不儲存中間結果

如需詳細資訊，請參閱[轉換資料](https://grafana.com/docs/grafana/latest/panels/transform-data/)。

## 開放原始碼整合的故障診斷
<a name="open-source-troubleshoot"></a>

如需 SiteWise Edge 閘道開放原始碼整合相關主題的疑難排解詳細資訊，請參閱 [對 Edge 的開放原始碼整合進行故障診斷](troubleshooting-gateway.md#open-source-troubleshooting)。

# 傳統串流、適用於 AWS IoT SiteWise Edge 的 V2 閘道
<a name="classic-streams-v2-gateway"></a>

了解 Classic 串流、適用於 AWS IoT SiteWise Edge 的 V2 閘道的功能和限制。

在推出啟用 MQTT 的 V3 閘道之前，V2 閘道會維護先前 AWS IoT SiteWise 部署熟悉的傳統功能。這些 SiteWise Edge 閘道被視為 Classic 串流、V2 閘道。它們可保持回溯相容性，並與資料處理套件相容。雖然 Classic 串流、V2 閘道為現有設定提供可靠的效能，但與較新的閘道選項相比，它具有限制。具體而言，此閘道類型與啟用 MQTT 的 V3 閘道目的地中可用的進階功能不完全相容。若要使用 MQTT 訊息通訊協定，您可以建立新的啟用 MQTT 的 V3 閘道。如需詳細資訊，請參閱[啟用 MQTT 的 AWS IoT SiteWise Edge V3 閘道](mqtt-enabled-v3-gateway.md)。

**Topics**
+ [

# 使用套件在 SiteWise Edge 中收集和處理資料
](data-packs.md)
+ [

# 設定 AWS IoT SiteWise 發佈者元件
](configure-publisher-component.md)
+ [

# 目的地和 AWS IoT Greengrass 串流管理員
](destinations-gg-stream-manager.md)
+ [

# 在 Edge 上設定 AWS IoT SiteWise 邊緣功能
](edge-data-collection-and-processing.md)
+ [

# 設定 AWS IoT SiteWise 模型和資產的邊緣資料處理
](edge-processing.md)

# 使用套件在 SiteWise Edge 中收集和處理資料
<a name="data-packs"></a>

**注意**  
資料處理套件 (DPP) 功能不再提供給新客戶使用。現有客戶可以繼續正常使用該服務。如需詳細資訊，請參閱[資料處理套件可用性變更](https://docs.aws.amazon.com/iot-sitewise/latest/appguide/iotsitewise-dpp-availability-change.html)。

AWS IoT SiteWise 邊緣閘道使用不同的套件來判斷如何收集和處理您的資料。

目前，可使用下列套件：
+ **資料收集套件** – 使用此套件收集工業資料，並將其路由至 AWS 雲端目的地。根據預設，系統會自動為您的 SiteWise Edge 閘道啟用此套件。
+ **資料處理套件** – 使用此套件啟用 SiteWise Edge 閘道與邊緣設定資產模型和資產的通訊。您可以使用邊緣設定來控制要在現場運算和處理的資產資料。然後，您可以將資料傳送至 AWS IoT SiteWise 或其他 AWS 服務。如需資料處理套件的詳細資訊，請參閱 [設定 AWS IoT SiteWise 模型和資產的邊緣資料處理](edge-processing.md)。

## 升級套件
<a name="update-gateway-packs"></a>

**重要**  
從 2.0.x 之前的資料處理套件版本 （包括） 升級至 2.1.x 版會導致資料遺失本機儲存的測量。

SiteWise Edge 閘道使用不同的套件來判斷如何收集和處理您的資料。您可以使用 AWS IoT SiteWise 主控台升級套件。

**升級套件 （主控台）**

1. <a name="sitewise-open-console"></a>導覽至 [AWS IoT SiteWise 主控台](https://console.aws.amazon.com/iotsitewise/)。

1. 在左側導覽中，選擇 **Edge 區段中的 Edge 閘道**。 ****

1. 在**閘道**清單中，選擇 SiteWise Edge 閘道與您要升級的套件。

1. 在**閘道組態**區段中，選擇**可用的軟體更新**。

1. 在編輯軟體版本頁面上，選擇**更新**。
**注意**  
您只能升級已啟用的套件。若要尋找為此 SiteWise Edge 閘道啟用的套件清單，請選擇**概觀**，然後參閱 **Edge 功能**區段。

1. 在編輯軟體版本頁面的**閘道元件更新**區段中，執行下列動作：
   + 若要更新 **OPC UA 收集器**，請選擇版本，然後選擇**部署**。
   + 若要更新**發佈者**，請選擇版本，然後選擇**部署**。
   + 若要更新**資料處理套件**，請選擇版本，然後選擇**部署**。

1. 當您完成部署新版本時，請選擇**完成**。

如果您在升級套件時遇到問題，請參閱 [無法將套件部署至 SiteWise Edge 閘道](troubleshooting-gateway.md#gateway-issue-ggv2-packs)。

# 資料處理套件可用性變更
<a name="iotsitewise-dpp-availability-change"></a>

**注意**  
資料處理套件 (DPP) 功能不再提供給新客戶使用。現有客戶可以繼續正常使用該服務。如需詳細資訊，請參閱[資料處理套件可用性變更](https://docs.aws.amazon.com/iot-sitewise/latest/appguide/iotsitewise-dpp-availability-change.html)。

對於類似 AWS IoT 資料處理套件功能的功能，探索[開放原始碼替代方案](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/open-source-edge-integrations.html)或[我們的合作夥伴整合](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/cpa-add-source.html)。Data AWS IoT SiteWise Processing Pack 是 AWS IoT SiteWise 的一項功能，可在邊緣提供資料轉換、指標、篩選、本機儲存和視覺化。

**注意**  
AWS IoT SiteWise 和 AWS IoT SiteWise Edge 資料收集套件功能仍然可用，但資料處理套件功能正在進入維護模式。

## 遷移選項
<a name="iotsitewise-dpp-migration-options"></a>

探索這些遷移選項，以取代資料處理套件功能。

**開放原始碼替代方案**  
使用 Node-RED 建立本機資料處理管道以進行資料轉換、使用 InfluxDB 進行時間序列儲存，以及使用 Grafana 進行視覺化。這些工具透過 MQTT 與啟用 MQTT 的 V3 閘道搭配使用，以提供邊緣處理和本機洞見，同時將資料與 AWS 雲端同步。  
如需詳細資訊，請參閱[使用 SiteWise Edge 和開放原始碼工具處理和視覺化資料](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/open-source-edge-integrations.html)。

**合作夥伴整合**  
透過 CloudRail、EasyEdge 和 Litmus Edge 等第三方合作夥伴資料來源連接工業設備和感應器。這些 Greengrass 元件是與 合作開發的 AWS ，並支援超過 200 個工業通訊協定，用於全面的資料收集和處理。  
如需詳細資訊，請參閱[新增資料來源](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/cpa-add-source.html)。

**啟用 MQTT 的 V3 閘道**  
啟用 MQTT 的 V3 閘道使用輕量型 MQTT 通訊協定進行有效率的資料通訊，並提供靈活的資料目的地，包括即時擷取和緩衝的 Amazon S3 擷取。您可以實作路徑篩選條件來精確收集資料，並受益於改善的可擴展性和 IoT 標準一致性。啟用 MQTT 的 V3 閘道透過 AWS IoT SiteWise 核心服務提供雲端型資料處理，包括資產模型、運算屬性、警示和歷史資料查詢。  
如需詳細資訊，請參閱[啟用 MQTT 的 AWS IoT SiteWise Edge V3 閘道](mqtt-enabled-v3-gateway.md)。

## 常見問答集
<a name="iotsitewise-dpp-faq"></a>

### 我可以逐步遷移嗎？
<a name="iotsitewise-dpp-faq-gradual"></a>

可以，您可以使用任何遷移選項組合來逐步遷移。您可以使用資料處理套件部署啟用 MQTT 的 V3 閘道、開放原始碼替代方案或合作夥伴整合，以及現有的 Classic 串流、V2 閘道。所有選項都可以將資料傳送至相同的 AWS IoT SiteWise 環境。

### 我可以繼續使用資料處理套件多久？
<a name="iotsitewise-dpp-faq-timeline"></a>

資料處理套件仍可供維護模式中的現有客戶使用。如果計劃對可用性進行任何變更，您會收到預先通知。監控 AWS 服務公告和您的帳戶通知是否有更新。

# 設定 AWS IoT SiteWise 發佈者元件
<a name="configure-publisher-component"></a>

建立 AWS IoT SiteWise Edge 閘道並安裝軟體後，您可以設定發佈者元件，以便 SiteWise Edge 閘道可以將資料匯出至 AWS 雲端。使用發佈者元件來啟用其他功能或設定預設設定。如需詳細資訊，請參閱《 *AWS IoT Greengrass Version 2 開發人員指南*》中的[AWS IoT SiteWise 發佈者](https://docs.aws.amazon.com/greengrass/v2/developerguide/iotsitewise-publisher-component.html)。

**注意**  
發佈者組態會根據您使用的閘道類型而有所不同。對於 Classic 串流、V2 閘道，請使用 `iotsitewise:publisher:2` 命名空間。對於啟用 MQTT 的 V3 閘道，請使用 `iotsitewise:publisher:3` 命名空間。

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

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

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

1. 選取您要為其設定發佈者的 SiteWise Edge 閘道。

1. 在**發佈者組態**區段中，選擇**編輯**

1. 針對**發佈順序**，選擇下列其中一項：
   + **先發佈最舊的資料** – SiteWise Edge 閘道預設會先將最舊的資料發佈至雲端。
   + **先發佈最新資料** – SiteWise Edge 閘道會先將最新資料發佈至雲端。

1. （選用） 如果您不希望 SiteWise Edge 閘道壓縮您的資料，請在**上傳資料時取消選取啟用壓縮**。

1. （選用） 如果您不想發佈舊資料，請選擇**排除過期的資料**並執行下列動作：

   1. 針對**截斷期間**，輸入值，然後選擇單位。截止期間必須介於 5 分鐘到 7 天之間。例如，如果截止期間為三天，則超過三天的資料不會發佈到雲端。

1. （選用） 若要設定有關在本機裝置上如何處理資料的自訂設定，請選擇**本機儲存設定**並執行下列動作：

   1. 針對**保留期間**，輸入數字並選擇單位。保留期間必須介於一分鐘到 30 天之間，且大於或等於輪換期間。例如，如果保留期間是 14 天，則 SiteWise Edge 閘道會在儲存 14 天後，刪除邊緣早於指定截止期間的任何資料。

   1. 針對**輪換期間**，輸入數字並選擇單位。輪換期間必須大於一分鐘，且等於或小於保留期間。例如，假設輪換期間為兩天，SiteWise Edge 閘道會批次處理，並將早於截止期間的資料儲存到單一檔案。對於透過 的自我託管閘道 AWS IoT Greengrass V2，SiteWise Edge 閘道每兩天會將一批資料傳輸到下列本機目錄：`/greengrass/v2/work/aws.iot.SiteWiseEdgePublisher/exports`。

   1. 針對**儲存容量**，輸入大於或等於 1 的值。如果儲存容量為 2 GB，則 SiteWise Edge 閘道會在本機儲存超過 2 GB 的資料時開始刪除資料。

1. 選擇**儲存**。

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

使用 [UpdateGatewayCapabilityConfiguration](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateGatewayCapabilityConfiguration.html) API 來設定發佈者。

將 `capabilityNamespace` 參數設為 `iotsitewise:publisher:2`。

**Example ：Classic Stream、V2 閘道的發佈者組態**  
發佈者命名空間： `iotsitewise:publisher:2`  

```
{
    "SiteWisePublisherConfiguration": {                               
        "publishingOrder": "TIME_ORDER",
        "enableCompression": true,
        "dropPolicy": {
            "cutoffAge": "7d",
            "exportPolicy": {
                "retentionPeriod": "7d",
                "rotationPeriod": "6h",
                "exportSizeLimitGB": 10
            }
        }
    },
    "SiteWiseS3PublisherConfiguration": {
        "accessRoleArn": "arn:aws:iam:123456789012:role/roleName",
        "streamToS3ConfigMapping": [
            {
                "streamName": "S3_OPC-UA_Data_Collector",
                "targetBucketArn": "arn:aws:s3:::amzn-s3-demo-bucket/dataCollector",
                "publishPolicy": {
                    "publishFrequency": "10m",
                    "localSizeLimitGB": 10
                },
                "siteWiseImportPolicy": {
                    "enableSiteWiseStorageImport": true,
                    "enableDeleteAfterImport": true
                }
            }
        ]
    }
}
```

發佈者提供下列您可以自訂的組態參數：

`SiteWisePublisherConfiguration`    
`publishingOrder`  
資料發佈至雲端的順序。此參數的值可以是下列其中一項：  
+ `TIME_ORDER` (**先發佈最舊的資料**) – 預設情況下，最早的資料會先發佈到雲端。
+ `RECENT_DATA` (**先發佈最新資料**) – 首先將最新資料發佈至雲端。  
`enableCompression`  
將此設為 `true`以在發佈之前壓縮資料。資料壓縮可減少頻寬使用量。  
`dropPolicy`  
（選用） 控制發佈至雲端的資料的政策。    
`cutoffAge`  
要以天、小時和分鐘為單位發佈的資料最長存留期。例如 `7d` 或 `1d7h16m`。不會傳送比您指定內容更舊的資料 AWS IoT SiteWise。  
早於截止期間的資料不會發佈至雲端。截止時間必須介於 5 分鐘到 7 天之間。  
當您指定截止存留期`d`時`m`，可以使用 `h`、 和 。請注意， `m`代表分鐘， `h` 代表小時， `d`代表天數。  
`exportPolicy`  
（選用） 在邊緣管理資料儲存的政策。此政策適用於早於截止期限的資料。    
`retentionPeriod`  
您的 SiteWise Edge 閘道會在儲存指定保留期間之後，從本機儲存體刪除邊緣早於截止期間的任何資料。保留期間必須介於一分鐘到 30 天之間，且大於或等於輪換期間。  
您可以在指定保留期間`d`時使用 `m``h`、 和 。請注意， `m`代表分鐘， `h` 代表小時， `d`代表天數。  
`rotationPeriod`  
將早於截止期間的資料批次儲存到單一檔案的時間間隔。SiteWise Edge 閘道會在每個輪換期間結束時，將一批資料傳輸到下列本機目錄：`/greengrass/v2/work/aws.iot.SiteWiseEdgePublisher/exports`。輪換期間必須大於一分鐘，且等於或小於保留期間。  
您可以在指定輪換期間`d`時使用 `m``h`、 和 。請注意， `m`代表分鐘， `h` 代表小時， `d`代表天數。  
`exportSizeLimitGB`  
本機儲存的資料允許大小上限，以 GB 為單位。如果違反此配額，SiteWise Edge 閘道會開始刪除最早的資料，直到本機存放的資料大小等於或小於配額為止。此參數的值必須大於或等於 1。

`SiteWiseS3PublisherConfiguration`    
`accessRoleArn`  
授予管理您要發佈之 Amazon S3 儲存貯體 AWS IoT SiteWise 許可的存取角色。  
`streamToS3ConfigMapping`  
將串流映射至 Amazon S3 組態的組態陣列。    
`streamName`  
要從 Amazon S3 組態讀取和發佈的串流。  
`targetBucketArn`  
ARN 要發佈的儲存貯體。  
`publishPolicy`  
    
`publishFrequency`  
SiteWise Edge 閘道發佈至 Amazon S3 儲存貯體的頻率。  
`localSizeLimitGB`  
寫入本機磁碟的檔案大小上限。如果超過此閾值，發佈者會將所有緩衝資料發佈至其目的地。  
`siteWiseImportPolicy`  
    
`enableSiteWiseStorageImport`  
將此設定為 `true`，將資料從 Amazon S3 儲存貯體匯入至 AWS IoT SiteWise 儲存體。  
`enableDeleteAfterImport`  
將此設為 `true` 以在擷取至 AWS IoT SiteWise 儲存體後刪除 Amazon S3 儲存貯體中的檔案。

------

# 目的地和 AWS IoT Greengrass 串流管理員
<a name="destinations-gg-stream-manager"></a>

AWS IoT Greengrass 串流管理員可讓您將資料傳送至下列 AWS 雲端 目的地： 中的頻道 AWS IoT Analytics、Amazon Kinesis Data Streams 中的串流、 中的資產屬性 AWS IoT SiteWise，或 Amazon Simple Storage Service (Amazon S3) 中的物件。如需詳細資訊，請參閱[《 AWS IoT Greengrass 開發人員指南》中的管理 核心上的資料串流](https://docs.aws.amazon.com/greengrass/v2/developerguide/manage-data-streams.html)。 *AWS IoT Greengrass Version 2 *

**Example ：資料串流訊息結構**  
下列範例顯示串流管理員傳輸的必要資料 AWS IoT Greengrass 串流訊息結構。  

```
{
   "assetId": "string",
   "propertyAlias": "string",
   "propertyId": "string",
   "propertyValues": [
      {
         "quality": "string",
         "timestamp": {
            "offsetInNanos": number,
            "timeInSeconds": number
         },
         "value": {
            "booleanValue": boolean,
            "doubleValue": number,
            "integerValue": number,
            "stringValue": "string"
         }
      }
   ]
}
```

**注意**  
資料串流訊息必須在其結構`propertyAlias`中包含 (`assetId` 和 `propertyId`) 或 。

`assetId`  
（選用） 要更新的資產 ID。

`propertyAlias`  
（選用） 識別 屬性的別名，例如 OPC UA 伺服器資料串流路徑。例如：  

```
/company/windfarm/3/turbine/7/temperature
```
如需詳細資訊，請參閱*AWS IoT SiteWise 《* [ 使用者指南》中的管理資料串流](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/manage-data-streams.html)。

`propertyId`  
（選用） 此項目的資產屬性 ID。

`propertyValues`  
（必要） 要上傳的屬性值清單。您最多可以指定 10 個`propertyValues`陣列元素。    
`quality`  
（選用） 資產屬性值的品質。  
 `timestamp`   
（必要） 資產屬性值的時間戳記。    
 `offsetInNanos`   
（選用） 與 的奈秒位移`timeInSeconds`。  
 `timeInSeconds`   
（必要） 時間戳記日期，以秒為單位，以 Unix epoch 格式顯示。分數奈秒資料由 提供`offsetInNanos`。  
 `value`   
（必要） 資產屬性的值。  
`value` 欄位中只能存在下列其中一個值。  
 `booleanValue`   
（選用） 布林值 (`true` 或 ) 類型的資產屬性資料`false`。  
 `doubleValue`   
（選用） 類型為雙的資產屬性資料 （浮點編號）。  
 `integerValue`   
（選用） 類型整數的資產屬性資料 （整數）。  
 `stringValue`   
（選用） 類型字串的資產屬性資料 （字元序列）。

# 在 Edge 上設定 AWS IoT SiteWise 邊緣功能
<a name="edge-data-collection-and-processing"></a>

**注意**  
資料處理套件 (DPP) 功能不再提供給新客戶使用。現有客戶可以繼續正常使用該服務。如需詳細資訊，請參閱[資料處理套件可用性變更](https://docs.aws.amazon.com/iot-sitewise/latest/appguide/iotsitewise-dpp-availability-change.html)。

您可以使用 AWS IoT SiteWise Edge 收集和暫時儲存資料，以便在本機組織和處理裝置資料。透過啟用邊緣處理，您可以選擇僅將彙總資料傳送至 AWS 雲端 ，以最佳化頻寬用量和雲端儲存成本。搭配 使用 AWS IoT SiteWise 元件時 AWS IoT Greengrass，您可以在將資料傳送到 之前收集和處理邊緣的資料 AWS 雲端，或使用 SiteWise Edge APIs 管理內部部署資料。

資料收集會透過在 上執行的資料套件和 AWS IoT SiteWise 元件進行 AWS IoT Greengrass。

**注意**  
AWS IoT SiteWise 會在 SiteWise Edge 閘道上保留您的邊緣資料最多 30 天。資料的保留期間取決於裝置的可用磁碟空間。
如果您的 SiteWise Edge 閘道已從 中斷連線 AWS 雲端 30 天，[資料處理套件](configure-opcua-source.md)會自動停用。

**Topics**
+ [

## 在 SiteWise Edge 中設定邊緣功能
](#using-sitewise-edge)

## 在 SiteWise Edge 中設定邊緣功能
<a name="using-sitewise-edge"></a>

AWS IoT SiteWise 提供下列套件，您的 SiteWise Edge 閘道可用來判斷如何收集和處理您的資料。選取套件以啟用 SiteWise Edge 閘道的邊緣功能。
+ **資料收集套件**可讓 SiteWise Edge 閘道從多個 OPC UA 伺服器收集資料，然後將資料從邊緣匯出至 AWS 雲端。將資料來源新增至 SiteWise Edge 閘道後，它會變成作用中。
+ **資料處理套件**可讓您的 SiteWise Edge 閘道在邊緣處理您的設備資料。例如，您可以使用資產模型來計算指標和轉換。如需資產模型和資產的詳細資訊，請參閱 [模型工業資產](industrial-asset-models.md)。
**注意**  
資料處理套件僅適用於 x86 平台。

**設定邊緣功能**

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

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

1. 選取您要啟用邊緣功能的 SiteWise Edge 閘道。

1. 在 **Edge 功能**區段中，選擇**編輯**

1. 在 **Edge 功能**區段中，選取**啟用資料處理套件 （會產生額外費用）**。

1. （選用） 在 **Edge LDAP 連線**區段中，您可以授予公司目錄中使用者群組存取此 SiteWise Edge 閘道的權限。使用者群組可以使用輕量型目錄存取通訊協定 (LDAP) 登入資料來存取 SiteWise Edge 閘道。然後，他們可以使用 AWS OpsHub AWS IoT SiteWise 應用程式、 AWS IoT SiteWise API 操作或其他工具來管理 SiteWise Edge 閘道。如需詳細資訊，請參閱[管理 SiteWise Edge 閘道](manage-gateways-ggv2.md)。
**注意**  
您也可以使用 Linux 或 Microsoft Windows 登入資料來存取 SiteWise Edge 閘道。如需詳細資訊，請參閱[使用 Linux 作業系統登入資料存取 SiteWise Edge 閘道](manage-gateways-ggv2.md#linux-user-pool)。

   1. 選取**已啟用**。

   1. 針對**提供者名稱**，輸入 LDAP 提供者的名稱。

   1. 針對**主機名稱或 IP 地址**，輸入 LDAP 伺服器的主機名稱或 IP 地址。

   1. 在**連接埠**中，輸入連接埠號碼。

   1. 針對**基本辨別名稱 (DN)**，輸入基本的辨別名稱 (DN)。

      支援下列屬性類型：commonName (CN)、localityName (L)、stateOrProvinceName (ST)、organizationName (O)、organizationalUnitName (OU)、countryName (C)、 streetAddress (STREET)、 domainComponent (DC) 和 userid (UID)。

   1. 針對**管理員群組 DN**，輸入 DN。

   1. 針對**使用者群組 DN**，輸入 DN。

1. 選擇**儲存**。

現在您已在 SiteWise Edge 閘道上啟用邊緣功能，您需要為邊緣設定資產模型。您的資產模型邊緣組態會指定資產屬性的計算位置。您可以在邊緣運算所有屬性，也可以分別設定資產模型屬性。資產模型屬性包括[指標](concept-overview.md#concept-metric)、[轉換](concept-overview.md#concept-transform)和[測量](concept-overview.md#concept-measurement)。

如需資產屬性的詳細資訊，請參閱 [定義資料屬性](asset-properties.md)。

 建立資產模型之後，您就可以針對邊緣進行設定。如需為邊緣設定資產模型的詳細資訊，請參閱 [建立資產模型 （主控台）](create-asset-models.md#create-asset-model-console)。

**注意**  
每 10 分鐘會自動同步 Cloud 和 SiteWise Edge 閘道之間的 AWS 資產模型和儀表板。您也可以從本機 SiteWise Edge 閘道應用程式手動同步。

# 設定 AWS IoT SiteWise 模型和資產的邊緣資料處理
<a name="edge-processing"></a>

**注意**  
資料處理套件 (DPP) 功能不再提供給新客戶使用。現有客戶可以繼續正常使用該服務。如需詳細資訊，請參閱[資料處理套件可用性變更](https://docs.aws.amazon.com/iot-sitewise/latest/appguide/iotsitewise-dpp-availability-change.html)。

 您可以使用 AWS IoT SiteWise Edge 在本機收集、存放、整理和監控設備資料。您可以使用 SiteWise Edge 來建立工業資料的模型，並在本機將其視覺化。您可以在本機處理資料並將其傳送至 AWS 雲端，或使用 AWS IoT SiteWise API 在內部部署處理。

您可以使用 AWS IoT SiteWise Edge 在本機處理原始資料，並選擇僅將彙總資料傳送至 AWS 雲端，以最佳化頻寬用量和雲端儲存成本。

**注意**  
AWS IoT SiteWise 會在 SiteWise Edge 閘道上保留您的邊緣資料最多 30 天。資料的保留期間取決於裝置的可用磁碟空間。
如果您的 SiteWise Edge 閘道已從 AWS 雲端中斷連線 30 天，[在 SiteWise Edge 中設定 OPC UA 來源](configure-opcua-source.md)則 會自動停用。

## 設定用於 SiteWise Edge 上資料處理的資產模型
<a name="process-gateway-data-edge"></a>

您必須先為邊緣設定資產模型，才能在邊緣處理 SiteWise Edge 閘道資料。您的資產模型邊緣組態會指定資產屬性的計算位置。您可以選擇在邊緣運算所有屬性，並將結果 AWS 傳送至 雲端，或自訂個別運算每個資產屬性的位置。如需詳細資訊，請參閱[設定 AWS IoT SiteWise 模型和資產的邊緣資料處理](#edge-processing)。

資產屬性包括指標、轉換和測量：
+ 指標是指定期間內資產的彙總資料。您可以使用現有的指標資料來運算新的指標。 AWS IoT SiteWise 一律將您的指標傳送至 AWS 雲端，以供長期儲存。 預設情況下， 會在 AWS 雲端上 AWS IoT SiteWise 運算指標。您可以設定資產模型在邊緣運算指標。 會將處理的結果 AWS IoT SiteWise 傳送至 AWS 雲端。
+ 轉換是數學表達式，可將資產屬性的資料點從一種形式對應到另一種形式。轉換可以使用指標做為輸入資料，而且必須計算並存放在與其輸入相同的位置。如果您將指標輸入設定為在邊緣運算， AWS IoT SiteWise 也會在邊緣運算其相關聯的轉換。
+ 根據預設，測量會格式化為您的裝置收集並傳送至 AWS 雲端的原始資料。您可以設定資產模型，將此資料存放在本機裝置上。

如需資產屬性的詳細資訊，請參閱 [定義資料屬性](asset-properties.md)。

 建立資產模型之後，您就可以針對邊緣進行設定。如需為邊緣設定資產模型的詳細資訊，請參閱 [建立資產模型 （主控台）](create-asset-models.md#create-asset-model-console)。

**注意**  
每 10 分鐘會自動同步 Cloud 和 SiteWise Edge 閘道之間的 AWS 資產模型和儀表板。您也可以從 手動同步[管理 SiteWise Edge 閘道](manage-gateways-ggv2.md)。

您可以使用 AWS IoT SiteWise REST APIs和 AWS Command Line Interface (AWS CLI) 來查詢 SiteWise Edge 閘道的邊緣資料。在查詢 SiteWise Edge 閘道的邊緣資料之前，您必須符合下列先決條件：
+ 您必須為 REST APIs設定登入資料。如需設定登入資料的詳細資訊，請參閱 [管理 SiteWise Edge 閘道](manage-gateways-ggv2.md)。
+ SDK 端點必須指向 SiteWise Edge 閘道的 IP 地址。您可以在 SDK 的文件中找到更多資訊。例如，請參閱《 *AWS SDK for Java 2.x 開發人員指南*》中的[指定自訂端點](https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/specifying-endpoints.html)。
+ 您的 SiteWise Edge 閘道憑證必須註冊。您可以在 SDK 的文件中找到有關註冊 SiteWise Edge 閘道憑證的詳細資訊。例如，請參閱《 *AWS SDK for Java 2.x 開發人員指南*》中的在 [Node.js 中註冊憑證套件。](https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/node-registering-certs.html)

如需使用 查詢資料的詳細資訊 AWS IoT SiteWise，請參閱 [從 查詢資料 AWS IoT SiteWise](query-industrial-data.md)。

# 將資料來源新增至 AWS IoT SiteWise Edge 閘道
<a name="add-data-sources"></a>

設定 AWS IoT SiteWise Edge 閘道之後，您可以新增和設定資料來源，以從本機工業設備擷取資料 AWS IoT SiteWise。SiteWise Edge 支援各種通訊協定，包括 OPC UA，以及透過合作夥伴資料來源提供的許多其他通訊協定。這些來源可讓您的閘道與本機伺服器連線，並擷取工業資料。透過設定資料來源，您可以從各種資料來源擷取資料，然後將資料串流與資產屬性建立關聯，從而實現全面的工業資產建模和資料映射 AWS IoT SiteWise。

**Topics**
+ [

# AWS IoT SiteWise Edge 閘道的 OPC UA 資料來源
](configure-sources-opcua.md)
+ [

# SiteWise Edge 閘道上的合作夥伴資料來源
](partner-data-sources.md)

# AWS IoT SiteWise Edge 閘道的 OPC UA 資料來源
<a name="configure-sources-opcua"></a>

設定 AWS IoT SiteWise Edge 閘道之後，您可以設定資料來源，以便 SiteWise Edge 閘道可以從本機工業設備擷取資料 AWS IoT SiteWise。每個來源都代表本機伺服器，例如您的 SiteWise Edge 閘道連線和擷取工業資料串流的 OPC UA 伺服器。如需設定 SiteWise Edge 閘道的詳細資訊，請參閱 [建立自我託管 SiteWise Edge 閘道](create-gateway-ggv2.md)。

閘道類型、啟用 MQTT 的 V3 閘道與 Classic 串流、V2 閘道，會影響 OPC UA 資料的處理方式。在 Classic 串流中，V2 閘道會將 OPC UA 資料來源直接新增至閘道 IoT SiteWise 發佈者組態。每個資料來源都會與閘道結合，並針對每個來源個別設定資料路由。相反地，使用啟用 MQTT 的 V3 閘道，OPC UA 資料來源會轉換為 MQTT 主題，並透過集中式目的地進行管理。如需每種類型的詳細資訊，請參閱 [啟用 MQTT 的 AWS IoT SiteWise Edge V3 閘道](mqtt-enabled-v3-gateway.md)和 [傳統串流、適用於 AWS IoT SiteWise Edge 的 V2 閘道](classic-streams-v2-gateway.md)。

**注意**  
AWS IoT SiteWise 每次新增或編輯來源時， 都會重新啟動 SiteWise Edge 閘道。更新來源組態時，您的 SiteWise Edge 閘道不會擷取資料。重新啟動 SiteWise Edge 閘道的時間取決於 SiteWise Edge 閘道來源上的標籤數量。重新啟動時間的範圍可以從幾秒鐘 （對於具有幾個標籤的 SiteWise Edge 閘道） 到幾分鐘 （對於具有許多標籤的 SiteWise Edge 閘道）。

建立來源之後，您可以將資料串流與資產屬性建立關聯。如需建立和使用運作資產的詳細資訊，請參閱[模型工業資產](industrial-asset-models.md)。

您可以檢視 CloudWatch 指標，以驗證資料來源是否已連線 AWS IoT SiteWise。如需詳細資訊，請參閱[AWS IoT Greengrass Version 2 閘道指標](monitor-cloudwatch-metrics.md#gateway-metrics-ggv2)。

目前， AWS IoT SiteWise 支援下列資料來源通訊協定：
+ [OPC UA](https://en.wikipedia.org/wiki/OPC_Unified_Architecture) – 用於工業自動化的machine-to-machine(M2M) 通訊協定。

## 支援其他工業通訊協定
<a name="additional-protocols"></a>

SiteWise Edge 透過與資料來源合作夥伴整合，支援各種工業通訊協定。這些合作夥伴關係可與超過 200 種不同的通訊協定連線，以容納各種工業系統和裝置。

如需可用資料來源合作夥伴的清單，請參閱 [SiteWise Edge 閘道合作夥伴資料來源選項](connect-partner-data-source.md)。

# 在 SiteWise Edge 中設定 OPC UA 來源
<a name="configure-opcua-source"></a>

您可以使用 AWS IoT SiteWise 主控台或 SiteWise Edge 閘道功能來定義 OPC UA 來源，並將其新增至 SiteWise Edge 閘道，以代表本機 OPC UA 伺服器。

**Topics**
+ [

## 設定 OPC UA 來源 （主控台）
](#config-opcua-source-console)
+ [

## 設定 OPC UA 來源 (AWS CLI)
](#configure-opc-ua-source-cli)

## 設定 OPC UA 來源 （主控台）
<a name="config-opcua-source-console"></a>

您可以使用 主控台，透過下列程序設定 OPC UA 來源。

**注意**  
警告：重複TQVs 可能會導致重複充電。

**使用 AWS IoT SiteWise 主控台設定 OPC UA 來源**

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

1. 在左側導覽中，選擇 **Edge 區段中的 Edge 閘道**。 ****

1. 選取 SiteWise Edge 閘道以新增 OPC UA 來源。

1. 選擇**新增資料來源**。

1. 輸入來源的名稱。

1. 輸入資料來源伺服器的 **Local endpoint (本機端點)**。端點可以是 IP 地址或主機名稱。您也可以將連接埠號碼新增至本機端點。例如，您的本機端點可能如下所示： **opc.tcp://203.0.113.0:49320**

1. （選用） 對於**用於選取的節點 ID**，請新增節點篩選條件，以限制要擷取至 AWS 雲端的資料串流。根據預設，SiteWise Edge 閘道會使用伺服器的根節點來擷取所有資料串流。您可以使用節點篩選條件來減少 SiteWise Edge 閘道的啟動時間和 CPU 使用量，方法是只包含您建模資料的路徑 AWS IoT SiteWise。根據預設，SiteWise Edge 閘道會上傳所有 OPC UA 路徑，但以 開頭的路徑除外`/Server/`。若要定義 OPC UA 節點篩選條件，您可以使用節點路徑和 `*`和 `**` 萬用字元。如需詳細資訊，請參閱[在 SiteWise Edge 中使用 OPC UA 節點篩選條件](opc-ua-node-filters.md)。

1. **目的地**會因啟用 MQTT 的 V3 閘道和 Classic 串流、V2 閘道而有所不同。
   + **傳統蒸汽、V2 閘道目的地**與來源有 1：1 的關係。每個來源都會將資料傳送至特定目的地。
   + **啟用 MQTT 的 V3 閘道目的地**會分別設定，因為中樞和輻條模型可讓您集中設定和管理不同閘道的多個資料來源。若要在 V3 閘道中設定目的地，請參閱 [了解 AWS IoT SiteWise Edge 目的地](gw-destinations.md#source-destination)。

------
#### [ Classic steams, V2 gateway destinations ]
   + **AWS IoT SiteWise 即時** – 選擇此選項以直接將資料傳送至 AWS IoT SiteWise 儲存體。在邊緣即時擷取和監控資料。
   + **AWS IoT SiteWise 使用 Amazon S3 緩衝** – 將 Parquet 格式的資料傳送至 Amazon S3，然後匯入儲存 AWS IoT SiteWise 體。選擇此選項以批次擷取資料，並以經濟實惠的方式存放歷史資料。您可以設定偏好的 Amazon S3 儲存貯體位置，以及您希望將資料上傳至 Amazon S3 的頻率。您也可以選擇在擷取資料之後如何處理資料 AWS IoT SiteWise。您可以選擇在 AWS IoT SiteWise 和 Amazon S3 中同時提供資料，也可以選擇在匯入 Amazon S3 之後自動將其刪除 AWS IoT SiteWise。
     + Amazon S3 儲存貯體是一種預備和緩衝機制，並支援 Parquet 格式的檔案。
     + 如果您選取核取方塊**將 AWS IoT SiteWise 資料匯入儲存**，資料會先上傳到 Amazon S3，然後再上傳到 AWS IoT SiteWise 儲存。
       + 如果您選取核取方塊**從 Amazon S3 刪除資料**，資料會在匯入 SiteWise 儲存體後從 Amazon S3 刪除。
       + 如果您清除核取方塊**從 Amazon S3 刪除資料**，資料會同時儲存在 Amazon S3 和 SiteWise 儲存中。
     + 如果您清除核取方塊**將 AWS IoT SiteWise 資料匯入儲存**，資料只會儲存在 Amazon S3 中。它不會匯入 SiteWise 儲存體。

     [管理資料儲存](manage-data-storage.md) 如需各種儲存選項 AWS IoT SiteWise 的詳細資訊，請造訪 。若要進一步了解定價選項，請參閱[AWS IoT SiteWise 定價](https://aws.amazon.com/iot-sitewise/pricing/)。

      
   + **AWS IoT Greengrass 串流管理員** – AWS IoT Greengrass 使用串流管理員將資料傳送至下列 AWS 雲端目的地： 中的頻道 AWS IoT Analytics、Amazon Kinesis Data Streams 中的串流、 中的資產屬性 AWS IoT SiteWise，或 Amazon Simple Storage Service (Amazon S3) 中的物件。如需詳細資訊，請參閱[《 開發人員指南》中的管理 AWS IoT Greengrass 核心上的資料串流](https://docs.aws.amazon.com/greengrass/v2/developerguide/manage-data-streams.html)。 *AWS IoT Greengrass Version 2 *

     輸入 AWS IoT Greengrass 串流的名稱。

------
#### [ MQTT-enabled, V3 gateway destinations ]

   1. [啟用 MQTT 的 AWS IoT SiteWise Edge V3 閘道](mqtt-enabled-v3-gateway.md) 如需新增相關目的地的資訊，請參閱 。

   1. 新增來源目的地後，請返回此程序。

------

1. 在**進階組態**窗格中，您可以執行下列動作：

   1. 針對來源伺服器和 SiteWise Edge 閘道之間的連線和傳輸中的資料，選擇**訊息安全模式**。此欄位是 OPC UA 安全政策和訊息安全模式的組合。選擇您為 OPC UA 伺服器指定的相同安全政策和訊息安全模式。

   1. 如果您的來源需要身分驗證，請從身分**驗證組態**清單中選擇 AWS Secrets Manager 秘密。SiteWise Edge 閘道會在連線至此資料來源時，使用此秘密中的身分驗證憑證。您必須將秘密連接至 SiteWise Edge 閘道的 AWS IoT Greengrass 元件，以將其用於資料來源身分驗證。如需詳細資訊，請參閱[設定 SiteWise Edge 的資料來源身分驗證](configure-source-authentication-ggv2.md)。
**提示**  
您的資料伺服器可能具有稱為 **Allow anonymous login (允許匿名登入)** 的選項。如果此選項為 **Yes (是)**，則您的來源不需要身分驗證。

   1. （選用） 您可以選取啟用資料串流字首 **- *選用*，以啟用資料串流字首**。

      1. 輸入**資料串流字首**。SiteWise Edge 閘道會將此字首新增至來自此來源的所有資料串流。使用資料流前置詞以區分來自不同來源但具有相同名稱的資料串流。您帳戶中的每個資料串流應該都有唯一的名稱。

   1. （選用） 選擇**資料類型轉換**選項，將不支援的 OPC UA 資料類型轉換為字串，然後再將其擷取至 AWS IoT SiteWise。將具有簡單資料類型的陣列值轉換為 JSON 字串，並將 DateTime 資料類型轉換為 ISO 8601 字串。如需詳細資訊，請參閱[轉換不支援的資料類型](string-conversion.md)。

   1. 針對未包含在使用者定義屬性群組中的節點，選擇**預設資料變更觸發**條件。預設資料變更觸發會決定 OPC UA 伺服器何時將更新的值傳送至閘道。您可以選擇下列其中一個選項：
      + **狀態** – 僅在狀態變更時接收資料。
      + **StatusValue** – 在狀態或值變更時接收資料。
      + **StatusValueTimestamp** – 在狀態、值或時間戳記變更時接收資料。

   1. （選用） 在啟用 MQTT 的 V3 閘道上，您可以使用**探索組態**來設定 OPC UA 節點探索程序。探索組態會以主控台型設定取代這些選項的先前組態覆寫檔案系統，這些設定會動態更新，而不需要重新啟動閘道。
**注意**  
**預設資料變更觸發**需要 3.1.0 版或更新版本的 IoT SiteWise OPC UA 收集器元件。如需詳細資訊，請參閱[更新 AWS IoT SiteWise 元件的版本](manage-gateways-ggv2.md#update-component-version)。

      1. 針對**並行瀏覽請求計數上限**，輸入 OPC UA 伺服器可同時處理的瀏覽請求數目上限。每個資料來源最多可設定 500 個並行瀏覽請求。

      1. 針對**每個瀏覽請求的節點計數上限**，輸入每個瀏覽請求中傳送至 OPC UA 伺服器的節點數目上限。每個瀏覽請求最多可以傳送 1，000 個節點。

      1. 選擇**避免節點樹狀結構迴圈**，以防止閘道在瀏覽 OPC UA 伺服器結構時卡在循環參考中。選取時，閘道會追蹤造訪的位置，以避免伺服器節點以循環模式互相參考時發生無限迴圈。

      1. 選擇**啟用節點周遊**，以允許閘道探索 OPC UA 伺服器的完整結構，從設備和裝置探索所有可用的資料點。選取時，閘道會在根層級之外導覽設備的資料組織，以自動尋找所有感應器、控制項和測量點。

      1. 選擇**啟用定期探索**以定期自動執行探索操作，以偵測 OPC UA 伺服器結構中的變更。選取後，閘道會持續監控新新增的設備或資料點，確保自動偵測並可供資料收集使用。

         1. 針對**定期探索間隔**，設定執行定期探索時自動探索操作之間的時間間隔。最小定期探索間隔為 30 秒，最長為 30 天。

         1. 針對**每個間隔探索的節點數量上限**，設定每個探索間隔應探索的節點數量上限。這有助於在探索操作期間控制閘道和 OPC UA 伺服器的負載。

   1. （選用） 對於**屬性群組**，選擇**新增群組**。

      1. 輸入屬性群組**的名稱**。

      1. 對於**屬性**：

         1. 對於**節點路徑**，新增 OPC UA 節點篩選條件以限制要上傳哪些 OPC UA 路徑 AWS IoT SiteWise。格式類似於**用於選取的節點 ID**。

      1. 對於**群組設定**，請執行下列動作：

         1. 針對**資料品質設定**，選擇您希望 AWS IoT SiteWise 收集器擷取的資料品質類型。

         1. 對於**掃描模式設定**，使用**掃描模式**設定標準訂閱屬性。您可以選取**訂閱**或**輪詢**。如需掃描模式的詳細資訊，請參閱 [使用 OPC UA 篩選資料擷取範圍](opcua-data-acquisition.md)。

------
#### [ Subscribe ]

**傳送每個資料點**

            1. 選擇**訂閱**並設定下列項目：

               1. **[資料變更觸發](https://reference.opcfoundation.org/v104/Core/docs/Part4/7.17.2/)** – 啟動資料變更提醒的條件。

               1. **[訂閱佇列大小](https://reference.opcfoundation.org/v104/Core/docs/Part4/7.16/)** – OPC UA 伺服器上特定指標的佇列深度，其中監控項目的通知會排入佇列。

               1. **[訂閱發佈間隔](https://reference.opcfoundation.org/v104/Core/docs/Part4/5.13.2/)** – 建立訂閱時指定的發佈週期間隔 （以毫秒為單位）。

               1. **快照間隔 - *選用*** - 快照頻率逾時設定，以確保 AWS IoT SiteWise Edge 擷取穩定的資料串流。

               1. **掃描速率** – 您希望 SiteWise Edge 閘道讀取暫存器的速率。 AWS IoT SiteWise 會自動計算 SiteWise Edge 閘道允許的最小掃描速率。

               1. **時間戳記** – 要包含在 OPC UA 資料點中的時間戳記。您可以使用伺服器時間戳記或裝置的時間戳記。
**注意**  
使用 IoT SiteWise OPC UA 收集器元件的 2.5.0 版或更新版本。如果您搭配舊版使用時間戳記功能，組態更新會失敗。如需詳細資訊，請參閱[更新 AWS IoT SiteWise 元件的版本](manage-gateways-ggv2.md#update-component-version)。

            1. 在**無效頻帶設定**中，設定**無效頻帶類型**。無效頻帶類型會控制來源傳送至 的資料 AWS IoT SiteWise，以及其捨棄的資料。如需無效頻帶設定的詳細資訊，請參閱 [使用 OPC UA 篩選資料擷取範圍](opcua-data-acquisition.md)。
               + **無** – 關聯的伺服器會傳送此屬性群組的所有資料點。
               + **百分比** – 關聯的伺服器只會傳送超出資料範圍指定百分比的資料。此範圍是由伺服器根據為每個節點定義的工程單位最小值和最大值來計算。如果伺服器不支援百分比無效頻帶或缺少定義的工程單位，閘道會使用下列提供的最小值和最大值來計算範圍。
               + **絕對** – 相關聯的伺服器只會傳送超出特定範圍的資料。

               1. 將 **Deadband 值**設定為 Deadband 的資料範圍百分比。

               1. （選用） 使用最小範圍 **- *選用*和最大範圍 - 選用，指定無效頻帶範圍的最小值****和最大值****。

------
#### [ Poll ]

**在特定間隔傳送資料點**
            + 選擇**輪詢**並設定下列項目：

              1. **掃描速率** – 您希望 SiteWise Edge 閘道讀取 registers 的速率。 AWS IoT SiteWise 會自動計算 SiteWise Edge 閘道的最低允許掃描速率。

              1. **時間戳記** – 要包含在 OPC UA 資料點中的時間戳記。您可以使用伺服器時間戳記或裝置的時間戳記。
**注意**  
使用 IoT SiteWise OPC UA 收集器元件的 3.1.0 版或更新版本。如果您搭配舊版使用時間戳記功能，組態更新會失敗。如需詳細資訊，請參閱[更新 AWS IoT SiteWise 元件的版本](manage-gateways-ggv2.md#update-component-version)。

**注意**  
當您在掃描模式**設定中選取訂閱時，就會套用無效頻帶**設定。 **** ****

------

1. 選擇**儲存**。

## 設定 OPC UA 來源 (AWS CLI)
<a name="configure-opc-ua-source-cli"></a>

您可以使用 為 SiteWise Edge 閘道定義 OPC UA 資料來源 AWS CLI。若要這樣做，請建立 OPC UA 功能組態 JSON 檔案，並使用 [ update-gateway-capability-configuration](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iotsitewise/update-gateway-capability-configuration.html#) 命令來更新 SiteWise Edge 閘道組態。您必須在單一功能組態中定義所有 OPC UA 來源。

------
#### [ MQTT-enabled, V3 gateway ]

此功能具有下列命名空間。
+ `iotsitewise:opcuacollector:3`

```
{
  "sources": [
    {
      "name": "string",
      "endpoint": {
        "certificateTrust": {
          "type": "TrustAny" | "X509",
          "certificateBody": "string",
          "certificateChain": "string",
        },
        "endpointUri": "string",
        "securityPolicy": "NONE" | "BASIC128_RSA15" | "BASIC256" | "BASIC256_SHA256" | "AES128_SHA256_RSAOAEP" | "AES256_SHA256_RSAPSS",
        "messageSecurityMode": "NONE" | "SIGN" | "SIGN_AND_ENCRYPT",
        "identityProvider": {
          "type": "Anonymous" | "Username",
          "usernameSecretArn": "string"
        },
        "nodeFilterRules": [
          {
            "action": "INCLUDE",
            "definition": {
              "type": "OpcUaRootPath",
              "rootPath": "string"
            }
          }
        ]
      },
      "measurementDataStreamPrefix": "string",
      "typeConversions": {
        "array": "JsonArray",
        "datetime": "ISO8601String"
        },
      "destination": {
        {
          "type":"MQTT"
        }           
      },
      "defaultPropertyGroupConfig": {
        "dataChangeTrigger": "STATUS" | "STATUS_VALUE" | "STATUS_VALUE_TIMESTAMP"
      },
      "discoveryConfig": {
        "enableNodeTraversal": true | false,
        "avoidNodeTreeLoops": true | false,
        "maxConcurrentBrowseRequests": integer,
        "maxNodesPerBrowseRequest": integer,
        "periodicDiscovery": {
          "interval": "string",
          "maxNodesDiscoveredPerInterval": integer
        }
      },
      "propertyGroups": [
        {
          "name": "string",
          "nodeFilterRuleDefinitions": [
            {
              "type": "OpcUaRootPath",
              "rootPath": "string"
            }
          ],
          "deadband": {
            "type": "PERCENT" | "ABSOLUTE",
            "value": double,
            "eguMin": double,
            "eguMax": double,
            "timeoutMilliseconds": integer
          },
          "scanMode": {
            "type": "EXCEPTION" | "POLL",
            "rate": integer,
            "timestampToReturn": "SOURCE_TIME" | "SERVER_TIME"
          },
          "dataQuality": {
            "allowGoodQuality": true | false,
            "allowBadQuality": true | false,
            "allowUncertainQuality": true | false
          },
          "subscription": {
            "dataChangeTrigger": "STATUS" | "STATUS_VALUE" | "STATUS_VALUE_TIMESTAMP",
            "queueSize": integer,
            "publishingIntervalMilliseconds": integer,
            "snapshotFrequencyMilliseconds": integer
          }  
        }  
      ]  
    }  
  ]  
}
```

------
#### [ Classic streams, V2 gateway ]

此功能具有下列命名空間。
+ `iotsitewise:opcuacollector:2`

請求語法

```
{
  "sources": [
    {
      "name": "string",
      "endpoint": {
        "certificateTrust": {
          "type": "TrustAny" | "X509",
          "certificateBody": "string",
          "certificateChain": "string",
        },
        "endpointUri": "string",
        "securityPolicy": "NONE" | "BASIC128_RSA15" | "BASIC256" | "BASIC256_SHA256" | "AES128_SHA256_RSAOAEP" | "AES256_SHA256_RSAPSS",
        "messageSecurityMode": "NONE" | "SIGN" | "SIGN_AND_ENCRYPT",
        "identityProvider": {
          "type": "Anonymous" | "Username",
          "usernameSecretArn": "string"
        },
        "nodeFilterRules": [
          {
            "action": "INCLUDE",
            "definition": {
              "type": "OpcUaRootPath",
              "rootPath": "string"
            }
          }
        ]
      },
      "measurementDataStreamPrefix": "string",
      "typeConversions": {
        "array": "JsonArray",
        "datetime": "ISO8601String"
        },
      "destination": {
        "type": "StreamManager",
        "streamName": "string",
        "streamBufferSize": integer,                      
      },
      "propertyGroups": [
        {
          "name": "string",
          "nodeFilterRuleDefinitions": [
            {
              "type": "OpcUaRootPath",
              "rootPath": "string"
            }
          ],
          "deadband": {
            "type": "PERCENT" | "ABSOLUTE",
            "value": double,
            "eguMin": double,
            "eguMax": double,
            "timeoutMilliseconds": integer
          },
          "scanMode": {
            "type": "EXCEPTION" | "POLL",
            "rate": integer,
            "timestampToReturn": "SOURCE_TIME" | "SERVER_TIME"
          },
          "dataQuality": {
            "allowGoodQuality": true | false,
            "allowBadQuality": true | false,
            "allowUncertainQuality": true | false
          },
          "subscription": {
            "dataChangeTrigger": "STATUS" | "STATUS_VALUE" | "STATUS_VALUE_TIMESTAMP",
            "queueSize": integer,
            "publishingIntervalMilliseconds": integer,
            "snapshotFrequencyMilliseconds": integer
          }  
        }  
      ]  
    }  
  ]  
}
```

------

### 請求內文
<a name="opcua-request-body"></a>

`sources`  
OPC UA 來源定義結構的清單，每個結構都包含下列資訊：    
`name`  
來源的唯一且易記名稱。  
`endpoint`  
包含下列資訊的端點結構：    
`certificateTrust`  
包含下列資訊的憑證信任政策結構：    
`type`  
來源的憑證信任模式。選擇下列其中一項：  
+ `TrustAny` – SiteWise Edge 閘道會在連線到 OPC UA 來源時信任任何憑證。
+ `X509` – SiteWise Edge 閘道會在連線到 OPC UA 來源時信任 X.509 憑證。如果您選擇此選項，則必須在 `certificateTrust` 中定義 `certificateBody`。您也可以 `certificateTrust` 在中定義 `certificateChain`。  
`certificateBody`  
(選用性) X.509 憑證的主體。  
如果您在 `certificateTrust` 中為 `type` 選擇 `X509`，則此欄位為必要。  
`certificateChain`  
(選用) X.509 憑證的信任鏈。  
僅當您在 `certificateTrust` 中為 `type` 選擇 `X509` 的情況下，才會使用此欄位。  
`endpointUri`  
OPC UA 來源的本機端點。例如，您的本機端點可能看起來會像 `opc.tcp://203.0.113.0:49320`。  
`securityPolicy`  
要使用的安全政策，讓您可以保護從 OPC UA 來源讀取的訊息。選擇下列其中一項：  
+ `NONE` – SiteWise Edge 閘道無法保護來自 OPC UA 來源的訊息。我們建議您選擇不同的安全政策。如果您選擇此選項，您也必須為 `messageSecurityMode` 選擇 `NONE`。
+ `BASIC256_SHA256` – `Basic256Sha256`安全政策。
+ `AES128_SHA256_RSAOAEP` – `Aes128_Sha256_RsaOaep`安全政策。
+ `AES256_SHA256_RSAPSS` – `Aes256_Sha256_RsaPss`安全政策。
+ `BASIC128_RSA15` – （已棄用） OPC UA 規格中的`Basic128Rsa15`安全政策已棄用，因為它不再被視為安全。我們建議您選擇不同的安全政策。如需詳細資訊，請參閱[設定檔 SecurityPolicy – Basic128Rsa15](https://profiles.opcfoundation.org/profile/1532)。
+ `BASIC256` – （已棄用） OPC UA 規格中的`Basic256`安全政策已棄用，因為它不再被視為安全。我們建議您選擇不同的安全政策。如需詳細資訊，請參閱 [SecurityPolicy – Basic256](https://profiles.opcfoundation.org/profile/1536)。
如果您選擇 以外的安全政策`NONE`，您必須`SIGN_AND_ENCRYPT`為 選擇 `SIGN`或 `messageSecurityMode`。您也必須將來源伺服器設定為信任 SiteWise Edge 閘道。如需詳細資訊，請參閱[設定 OPC UA 伺服器以信任 AWS IoT SiteWise Edge 閘道](enable-source-trust.md)。  
`messageSecurityMode`  
用於保護 OPC UA 來源連線的訊息安全模式。選擇下列其中一項：  
+ `NONE` – SiteWise Edge 閘道無法保護與 OPC UA 來源的連線。我們建議您選擇不同的訊息安全模式。如果您選擇此選項，您也必須為 `securityPolicy` 選擇 `NONE`。
+ `SIGN` – SiteWise Edge 閘道與 OPC UA 來源之間傳輸中的資料已簽署但未加密。
+ `SIGN_AND_ENCRYPT` – 閘道與 OPC UA 來源之間傳輸中的資料會經過簽署和加密。
如果您選擇 以外的訊息安全模式`NONE`，則必須選擇 `securityPolicy`以外的 `NONE`。您也必須將來源伺服器設定為信任 SiteWise Edge 閘道。如需詳細資訊，請參閱[設定 OPC UA 伺服器以信任 AWS IoT SiteWise Edge 閘道](enable-source-trust.md)。  
`identityProvider`  
包含下列資訊的身分提供者結構：    
`type`  
來源所需的身分驗證登入資料類型。選擇下列其中一項：  
+ `Anonymous` – 來源不需要身分驗證即可連線。
+ `Username` – 來源需要使用者名稱和密碼才能連線。如果您選擇此選項，則必須在 `identityProvider` 中定義 `usernameSecretArn`。  
`usernameSecretArn`  
（選用） AWS Secrets Manager 秘密的 ARN。SiteWise Edge 閘道會在連線至此來源時，使用此秘密中的身分驗證憑證。您必須將秘密連接到 SiteWise Edge 閘道的 IoT SiteWise 連接器，以將其用於來源身分驗證。如需詳細資訊，請參閱[設定 SiteWise Edge 的資料來源身分驗證](configure-source-authentication-ggv2.md)。  
如果您在 `identityProvider` 中為 `type` 選擇 `Username`，則此欄位為必要。  
`nodeFilterRules`  
定義傳送至 AWS 雲端之 OPC UA 資料串流路徑的節點篩選規則結構清單。您可以使用節點篩選條件來減少 SiteWise Edge 閘道的啟動時間和 CPU 使用量，方法是只包含建立模型的資料路徑 AWS IoT SiteWise。根據預設，SiteWise Edge 閘道會上傳開頭為 的所有 OPC UA 路徑`/Server/`。若要定義 OPC UA 節點篩選條件，您可以使用節點路徑和 `*`和 `**` 萬用字元。如需詳細資訊，請參閱[在 SiteWise Edge 中使用 OPC UA 節點篩選條件](opc-ua-node-filters.md)。  
清單中的每個結構都必須包含下列資訊：    
`action`  
此節點篩選規則的動作。您可以選擇下列選項：  
+ `INCLUDE` – SiteWise Edge 閘道僅包含符合此規則的資料串流。  
`definition`  
包含下列資訊的節點篩選規則結構：    
`type`  
此規則的節點篩選路徑類型。您可以選擇下列選項：  
+ `OpcUaRootPath` – SiteWise Edge 閘道會根據 OPC UA 路徑階層的根目錄評估此節點篩選路徑。  
`rootPath`  
針對 OPC UA 路徑階層的根評估的節點篩選路徑。此路徑必須以 開頭`/`。  
`measurementDataStreamPrefix`  
從來源附加至所有資料串流的字串。SiteWise Edge 閘道會將此字首新增至來自此來源的所有資料串流。使用資料流前置詞以區分來自不同來源但具有相同名稱的資料串流。您帳戶中的每個資料串流應該都有唯一的名稱。  
`typeConversions`  
不支援的 OPC UA 資料類型可用的轉換類型。每個資料類型都會轉換為字串。如需詳細資訊，請參閱[轉換不支援的資料類型](string-conversion.md)。    
`array`  
轉換為字串的簡單陣列資料類型。您可以選擇下列選項：  
+ `JsonArray` – 表示您選擇將簡易陣列資料類型轉換為字串。  
`datetime`  
轉換為字串的 DateTime 資料類型。您可以選擇下列選項：  
+ `ISO8601String` – 表示您選擇將 ISO 8601 資料類型轉換為字串。  
`destination`  
OPC UA 標籤目的地的組態。傳統串流、v2 和啟用 MQTT 的 V3 閘道具有不同的目的地組態。    
`type`  
目的地的類型。  
`streamName` – *僅適用於 Classic 串流、V2 閘道*  
 串流的名稱。串流名稱應該是唯一的。  
`streamBufferSize` – *僅適用於 Classic 串流、V2 閘道*  
串流的緩衝區大小。這對管理來自 OPC UA 來源的資料流程非常重要。  
`defaultPropertyGroupConfig` – *僅啟用 MQTT 的 V3 閘道*  
（選用） 預設屬性群組的組態。預設屬性群組包含使用者定義屬性群組中未包含的所有節點。    
`dataChangeTrigger`  
要在預設屬性群組中使用的預設資料變更觸發條件。有效值為 `STATUS_VALUE_TIMESTAMP`、`STATUS_VALUE` 或 `STATUS`。
`defaultPropertyGroupConfig` 需要 IoT SiteWise OPC UA 收集器元件的 3.1.0 版或更新版本。如需詳細資訊，請參閱[更新 AWS IoT SiteWise 元件的版本](manage-gateways-ggv2.md#update-component-version)。  
`discoveryConfig` – *僅啟用 MQTT 的 V3 閘道*  
（選用） OPC UA 節點探索程序的組態。    
`enableNodeTraversal`  
指定是否繼續周遊資料來源節點篩選條件所定義根節點的子節點。設為 時`false`，探索會在根節點停止。  
`avoidNodeTreeLoops`  
指定是否要在 OPC UA 節點瀏覽程序期間避免無限迴圈。設定為 時`true`，閘道會追蹤造訪的節點，以防止循環參考。  
`maxConcurrentBrowseRequests`  
OPC UA 伺服器可同時處理的並行瀏覽請求數量上限。有效範圍為 1 到 500。  
`maxNodesPerBrowseRequest`  
每次瀏覽請求傳送至 OPC UA 伺服器的節點數量上限。有效範圍為 1 到 1，000。  
`periodicDiscovery`  
以固定間隔定期執行探索的組態。提供此組態時，會啟用定期探索。    
`interval`  
定期探索操作之間的時間量。您可以使用 `m` 分鐘、 `h` 小時和 `d` 天。例如 `90m` 或 `1h`。最小間隔為 30 秒。  
`maxNodesDiscoveredPerInterval`  
每個探索間隔應探索的節點數量上限。這有助於控制閘道和 OPC UA 伺服器的負載。
`periodicDiscovery` 需要 IoT SiteWise OPC UA 收集器元件的 3.1.0 版或更新版本。如需詳細資訊，請參閱[更新 AWS IoT SiteWise 元件的版本](manage-gateways-ggv2.md#update-component-version)。
如果探索無限循環，請啟用 `avoidNodeTreeLoops`。在 `aws.iot.SiteWiseOpcUaCollector`元件下的 CloudWatch 日誌中監控探索進度。

`propertyGroups`  
（選用） 定義通訊協定`scanMode`請求的 `deadband`和 的屬性群組清單。    
`name`  
屬性群組的名稱。這應該是唯一的識別符。  
`deadband`  
`deadband` 值定義資料點值的最小變更，在資料傳送到雲端之前必須發生。其中包含下列資訊：    
`type`  
支援的無效頻帶類型。您可以選擇下列選項：  
+ `ABSOLUTE` – 固定值，指定將資料點視為足夠重要以傳送至雲端所需的最低絕對變更。
+ `PERCENT` – 動態值，以上次傳送資料點值的百分比指定所需的最低變更。當資料值隨時間大幅變化時，這種類型的無效頻帶很有用。  
`value`  
無效頻帶的值。當 `type`為 時`ABSOLUTE`，此值是無單位的兩倍。當 `type`為 時`PERCENT`，此值是介於 `1`和 之間的兩倍`100`。  
`eguMin`  
（選用） 使用`PERCENT`無效頻帶時的工程單位最小值。如果 OPC UA 伺服器未設定工程單位，您可以設定此項目。  
`eguMax`  
（選用） 使用`PERCENT`無效頻帶時的工程單位上限。如果 OPC UA 伺服器未設定工程單位，您可以設定此項目。  
`timeoutMilliseconds`  
逾時前的持續時間，以毫秒為單位。最小值為 `100`。  
`scanMode`  
包含下列資訊的`scanMode`結構：    
`type`  
支援的 類型`scanMode`。接受的值為 `POLL`和 `EXCEPTION`。  
`rate`  
掃描模式的取樣間隔。  
`timestampToReturn`  
時間戳記的來源。您可以選擇下列選項：  
+ `SOURCE_TIME` – 使用您裝置的時間戳記。
+ `SERVER_TIME` – 使用您伺服器的時間戳記。
`TimestampToReturn` 搭配 IoT SiteWise OPC UA 收集器元件的 2.5.0 版或更新版本使用。如果您將此功能與舊版搭配使用，組態更新會失敗。如需詳細資訊，請參閱[更新 AWS IoT SiteWise 元件的版本](manage-gateways-ggv2.md#update-component-version)。  
`nodeFilterRuleDefinitions`  
（選用） 屬性群組中要包含的節點路徑清單。屬性群組無法重疊。如果您未指定此欄位的值，則群組會包含根目錄下的所有路徑，而且您無法建立其他屬性群組。`nodeFilterRuleDefinitions` 結構包含以下資訊：    
`type`  
`OpcUaRootPath` 是唯一支援的類型。這會指定 的值`rootPath`是相對於 OPC UA 瀏覽空間根目錄的路徑。  
`rootPath`  
逗號分隔清單，指定要包含在屬性群組中的路徑 （相對於根）。

### Classic 串流、V2 閘道 (AWS CLI) 的其他功能組態範例
<a name="opc-ua-source-example-cli"></a>

下列範例會從存放在 JSON 檔案中的承載定義 OPC UA SiteWise Edge 閘道功能組態。

```
aws iotsitewise update-gateway-capability-configuration \
--capability-namespace "iotsitewise:opcuacollector:2" \
--capability-configuration file://opc-ua-configuration.json
```

**Example ：OPC UA 來源組態**  
下列`opc-ua-configuration.json`檔案會定義基本、不安全的 OPC UA 來源組態。  

```
{
    "sources": [
        {
            "name": "Wind Farm #1",
            "endpoint": {
                "certificateTrust": {
                    "type": "TrustAny"
                },
                "endpointUri": "opc.tcp://203.0.113.0:49320",
                "securityPolicy": "NONE",
                "messageSecurityMode": "NONE",
                "identityProvider": {
                    "type": "Anonymous"
                },
                "nodeFilterRules": []
            },
            "measurementDataStreamPrefix": ""
        }
    ]
}
```

**Example ：OPC UA 來源組態與定義的屬性群組**  
下列`opc-ua-configuration.json`檔案使用定義的屬性群組來定義基本、不安全的 OPC UA 來源組態。  

```
{
    "sources": [
        {
            "name": "source1",
            "endpoint": {
                "certificateTrust": {
                    "type": "TrustAny"
                },
                "endpointUri": "opc.tcp://10.0.0.9:49320",
                "securityPolicy": "NONE",
                "messageSecurityMode": "NONE",
                "identityProvider": {
                    "type": "Anonymous"
                },
                "nodeFilterRules": [
                    {
                        "action": "INCLUDE",
                        "definition": {
                            "type": "OpcUaRootPath",
                            "rootPath": "/Utilities/Tank"
                        }
                    }
                ]
            },
            "measurementDataStreamPrefix": "propertyGroups",
            "propertyGroups": [
                 {
                     "name": "Deadband_Abs_5",
                     "nodeFilterRuleDefinitions": [
                         {
                             "type": "OpcUaRootPath",
                             "rootPath": "/Utilities/Tank/Temperature/TT-001"
                         },
                         {
                             "type": "OpcUaRootPath",
                             "rootPath": "/Utilities/Tank/Temperature/TT-002"
                         }
                     ],
                     "deadband": {
                         "type":"ABSOLUTE",
                         "value": 5.0,
                         "timeoutMilliseconds": 120000
                     }
                 },
                 {
                     "name": "Polling_10s",
                     "nodeFilterRuleDefinitions": [
                         {
                             "type": "OpcUaRootPath",
                             "rootPath": "/Utilities/Tank/Pressure/PT-001"
                         }
                     ],
                     "scanMode": {
                         "type": "POLL",
                         "rate": 10000
                     }
                 },
                 {
                     "name": "Percent_Deadband_Timeout_90s",
                     "nodeFilterRuleDefinitions": [
                         {
                             "type": "OpcUaRootPath",
                             "rootPath": "/Utilities/Tank/Flow/FT-*"
                         }
                     ],
                     "deadband": {
                         "type":"PERCENT",
                         "value": 5.0,
                         "eguMin": -100,
                         "eguMax": 100,
                         "timeoutMilliseconds": 90000
                     }
                 }
             ]
        }
    ]
}
```

**Example ：OPC UA 來源組態與屬性**  
的下列 JSON 範例`opc-ua-configuration.json`定義具有下列屬性的 OPC UA 來源組態：  
+ 信任任何憑證。
+ 使用`BASIC256`安全政策來保護訊息。
+ 使用 `SIGN_AND_ENCRYPT` 模式來保護連線。
+ 使用存放在 Secrets Manager 秘密中的身分驗證憑證。
+ 篩選資料串流，路徑以 `/WindFarm/2/WindTurbine/` 開頭的資料串流除外。
+ 將 `/Washington` 新增至每個資料串流路徑的開頭，以區分此「風力發電廠 \$12」和另一個區域中的「風力發電廠 \$12」。

```
{
    "sources": [
        {
            "name": "Wind Farm #2",
            "endpoint": {
                "certificateTrust": {
                    "type": "TrustAny"
                },
                "endpointUri": "opc.tcp://203.0.113.1:49320",
                "securityPolicy": "BASIC256",
                "messageSecurityMode": "SIGN_AND_ENCRYPT",
                "identityProvider": {
                    "type": "Username",
                    "usernameSecretArn": "arn:aws:secretsmanager:region:123456789012:secret:greengrass-windfarm2-auth-1ABCDE"
                },
                "nodeFilterRules": [
                  {
                      "action": "INCLUDE",
                      "definition": {
                          "type": "OpcUaRootPath",
                          "rootPath": "/WindFarm/2/WindTurbine/"
                    }
                  }
                ]
            },
            "measurementDataStreamPrefix": "/Washington"
        }
    ]
}
```

**Example ：OPC UA 來源組態與憑證信任**  
的下列 JSON 範例`opc-ua-configuration.json`定義具有下列屬性的 OPC UA 來源組態：  
+ 信任指定的 X.509 憑證。
+ 使用`BASIC256`安全政策來保護訊息。
+ 使用 `SIGN_AND_ENCRYPT` 模式來保護連線。

```
{
    "sources": [
        {
            "name": "Wind Farm #3",
            "endpoint": {
                "certificateTrust": {
                    "type": "X509",
                    "certificateBody": "-----BEGIN CERTIFICATE-----
          MIICiTCCAfICCQD6m7oRw0uXOjANBgkqhkiG9w
 0BAQUFADCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZ
 WF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIw
 EAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5
 jb20wHhcNMTEwNDI1MjA0NTIxWhcNMTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBh
 MCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBb
 WF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMx
 HzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wgZ8wDQYJKoZIhvcNAQE
 BBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ21uUSfwfEvySWtC2XADZ4nB+BLYgVI
 k60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9TrDHudUZg3qX4waLG5M43q7Wgc/MbQ
 ITxOUSQv7c7ugFFDzQGBzZswY6786m86gpEIbb3OhjZnzcvQAaRHhdlQWIMm2nr
 AgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4nUhVVxYUntneD9+h8Mg9q6q+auN
 KyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0FkbFFBjvSfpJIlJ00zbhNYS5f6Guo
 EDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTbNYiytVbZPQUQ5Yaxu2jXnimvw
 3rrszlaEXAMPLE=
          -----END CERTIFICATE-----",
                    "certificateChain": "-----BEGIN CERTIFICATE-----
          MIICiTCCAfICCQD6m7oRw0uXOjANBgkqhkiG9w
 0BAQUFADCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZ
 WF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIw
 EAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5
 jb20wHhcNMTEwNDI1MjA0NTIxWhcNMTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBh
 MCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBb
 WF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMx
 HzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wgZ8wDQYJKoZIhvcNAQE
 BBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ21uUSfwfEvySWtC2XADZ4nB+BLYgVI
 k60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9TrDHudUZg3qX4waLG5M43q7Wgc/MbQ
 ITxOUSQv7c7ugFFDzQGBzZswY6786m86gpEIbb3OhjZnzcvQAaRHhdlQWIMm2nr
 AgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4nUhVVxYUntneD9+h8Mg9q6q+auN
 KyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0FkbFFBjvSfpJIlJ00zbhNYS5f6Guo
 EDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTbNYiytVbZPQUQ5Yaxu2jXnimvw
 3rrszlaEXAMPLE=
          -----END CERTIFICATE-----"
                },
                "endpointUri": "opc.tcp://203.0.113.2:49320",
                "securityPolicy": "BASIC256",
                "messageSecurityMode": "SIGN_AND_ENCRYPT",
                "identityProvider": {
                    "type": "Anonymous"
                },
                "nodeFilterRules": []
              },
            "measurementDataStreamPrefix": ""
              
        }
    ]
}
```

# 設定 OPC UA 伺服器以信任 AWS IoT SiteWise Edge 閘道
<a name="enable-source-trust"></a>

如果您在設定 OPC UA 來源時選擇 **None** `messageSecurityMode`以外的其他 ，則必須啟用來源伺服器來信任 AWS IoT SiteWise Edge 閘道。SiteWise Edge 閘道會產生來源伺服器可能需要的憑證。程序會根據您的來源伺服器而有所不同。如需詳細資訊，請參閱您伺服器的文件。

下列程序概述基本步驟。

**讓 OPC UA 伺服器信任 SiteWise Edge 閘道**

1. 開啟用於設定 OPC UA 伺服器的界面。

1. 輸入 OPC UA 伺服器管理員的使用者名稱和密碼。

1. 在界面中尋找**信任的用戶端**，然後選擇**AWS IoT SiteWise 閘道用戶端**。

1. 選擇 **Trust (信任)**。

## 匯出 OPC UA 用戶端憑證
<a name="export-opc-ua-client-certificate"></a>

有些 OPC UA 伺服器需要存取 OPC UA 用戶端憑證檔案，才能信任 SiteWise Edge 閘道。如果這適用於您的 OPC UA 伺服器，您可以使用下列程序從 SiteWise Edge 閘道匯出 OPC UA 用戶端憑證。然後，您可以在 OPC UA 伺服器上匯入憑證。

**匯出來源的 OPC UA 用戶端憑證檔案**

1. 執行下列命令，以變更至包含憑證檔案的目錄。將 *sitewise-work* 取代為 *aws.iot.SiteWiseEdgeCollectorOpcua* Greengrass 工作資料夾的本機儲存路徑，並將 *source-name* 取代為資料來源的名稱。

   根據預設，Greengrass 工作資料夾在 Linux 上為 */greengrass/v2/work/aws.iot.SiteWiseEdgeCollectorOpcua*，在 上為 *C：/greengrass/v2/work/aws.iot.SiteWiseEdgeCollectorOpcua*Microsoft Windows。

   ```
   cd /sitewise-work/source-name/opcua-certificate-store
   ```

1. 此來源的 SiteWise Edge 閘道 OPC UA 用戶端憑證位於 `aws-iot-opcua-client.pfx` 檔案中。

   執行下列命令，將憑證匯出至名為 `aws-iot-opcua-client-certificate.pem` 的`.pem` 檔案。

   ```
   keytool -exportcert -v -alias aws-iot-opcua-client -keystore aws-iot-opcua-client.pfx -storepass amazon -storetype PKCS12 -rfc > aws-iot-opcua-client-certificate.pem
   ```

1. 將憑證檔案 `aws-iot-opcua-client-certificate.pem`，從 SiteWise Edge 閘道傳輸到 OPC UA 伺服器。

   若要這麼做，您可以使用一般軟體，例如 `scp` 程式來傳輸使用 SSH 通訊協定的檔案。如需詳細資訊，請參閱 *Wikipedia* 上的[安全複製](https://en.wikipedia.org/wiki/Secure_copy)。
**注意**  
如果您的 SiteWise Edge 閘道在 Amazon Elastic Compute Cloud (Amazon EC2) 上執行，而且您第一次連線到它，您必須設定先決條件才能連線。如需詳細資訊，請參閱 *Amazon EC2 User Guide* 中的 [Connect to your Linux instance using SSH](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect-to-linux-instance.html)。

1. 在 OPC UA 伺服器上匯入憑證檔案 `aws-iot-opcua-client-certificate.pem`，以信任 SiteWise Edge 閘道。步驟可能有所不同，取決於您使用的來源伺服器。請參閱伺服器文件。

# 使用 OPC UA 篩選資料擷取範圍
<a name="opcua-data-acquisition"></a>

您可以使用掃描模式和無效頻帶範圍，控制使用 OPC UA 來源擷取資料的方式。這些功能可讓您控制要擷取哪些類型的資料，以及伺服器和 SiteWise Edge 閘道如何和何時交換此資訊。

## 根據品質收集或篩選資料
<a name="opcua-data-quality"></a>

您可以設定資料品質設定，以控制從 OPC UA 來源收集哪些資料。資料來源在傳送時包含品質評分做為中繼資料。您可以選取下列其中一個或所有選項：
+ `Good`
+ `Bad`
+ `Uncertain`

### 處理 NaN 或 null 值
<a name="nan-null"></a>

SiteWise Edge 支援收集和處理 NaN 和 null 值。
+ *NaN （非數字）：*代表未定義或無法表示的數值結果。
+ *Null：*表示遺失資料。

IoT SiteWise OPC UA 收集器會擷取具有 BAD 或 UNCERTAIN 品質的 NaN 和 Null 值。這些特殊值會寫入本機串流，讓資料收集更為完整。

## 使用掃描模式控制資料收集頻率
<a name="opcua-scanmode"></a>

您可以設定 OPC UA 掃描模式，以控制從 OPC UA 來源收集資料的方式。您可以選擇訂閱或輪詢模式。
+ 訂閱模式 – OPC UA 來源會依掃描速率定義的頻率，收集資料以傳送至 SiteWise Edge 閘道。伺服器只會在值變更時傳送資料，因此這是 SiteWise Edge 閘道接收資料的最大頻率。
+ 輪詢模式 – SiteWise Edge 閘道會以掃描速率定義的設定頻率輪詢 OPC UA 來源。無論值是否已變更，伺服器都會傳送資料，因此 SiteWise Edge 閘道一律會在此間隔接收資料。
**注意**  
輪詢模式選項會覆寫此來源的無效頻帶設定。

## 使用無效頻帶範圍篩選 OPC UA 資料擷取
<a name="opcua-deadbanding"></a>

 您可以將無效頻帶套用至 OPC UA 來源屬性群組，以篩選和捨棄特定資料，而不是將其傳送至 AWS 雲端。無效頻帶會指定 OPC UA 來源傳入資料值中預期波動的時段。如果值落在此視窗中，您的 OPC UA 伺服器不會將其傳送至 AWS 雲端。您可以使用無效頻帶篩選來減少您正在處理和傳送至 AWS 雲端的資料量。若要了解如何設定 SiteWise Edge 閘道的 OPC UA 來源，請參閱 [AWS IoT SiteWise Edge 閘道的 OPC UA 資料來源](configure-sources-opcua.md)。

**注意**  
 伺服器會刪除位於無效頻帶指定時段內的所有資料。您無法復原此捨棄的資料。

### 無效頻帶的類型
<a name="deadband-types"></a>

 您可以為 OPC UA 伺服器屬性群組指定兩種類型的無效頻帶。這些選項可讓您選擇傳送至 AWS 雲端的資料量，以及捨棄的資料量。
+ 百分比 – 您可以使用測量值中的預期波動百分比來指定視窗。伺服器會從此百分比計算確切的時段，並將超過 的資料傳送至超出該時段的 AWS 雲端。例如，在感應器上指定 2% 的無效頻帶值，範圍從華氏 -100 度到華氏 \$1100 度，指示伺服器在值變更為華氏 4 度或更高時，將資料傳送至 AWS 雲端。
**注意**  
 如果您的來源伺服器未定義工程單位，您可以選擇為此時段指定最小和最大無效頻帶值。如果未提供工程單位範圍，OPC UA 伺服器會預設為測量資料類型的完整範圍。
+ 絕對 – 您可以使用確切的單位來指定視窗。例如，在感應器上指定無效頻帶值 2，會指示伺服器在其值變更至少 2 個單位時，將資料傳送至 AWS 雲端。對於在正常操作期間定期預期波動的動態環境，您可以使用絕對無效頻帶。

### Deadband 逾時
<a name="deadband-timeout"></a>

 您可以選擇性地設定無效頻帶逾時設定。在此逾時之後，OPC UA 伺服器會傳送目前的測量值，即使其在預期的無效頻帶波動內。您可以使用逾時設定來確保 始終 AWS IoT SiteWise 擷取穩定的資料串流，即使值不超過定義的無效頻帶時段也一樣。

# 在 SiteWise Edge 中使用 OPC UA 節點篩選條件
<a name="opc-ua-node-filters"></a>

當您定義 SiteWise Edge 閘道的 OPC UA 資料來源時，您可以定義節點篩選條件。節點篩選條件可讓您限制 SiteWise Edge 閘道傳送至雲端的資料串流路徑。您可以使用節點篩選條件來減少 SiteWise Edge 閘道的啟動時間和 CPU 用量，方法是只包含您建模資料的路徑 AWS IoT SiteWise。根據預設，SiteWise Edge 閘道會上傳所有 OPC UA 路徑，但以 開頭的路徑除外`/Server/`。您可以在節點篩選器中使用 `*` 和 `**` 萬用字元，將多個資料串流路徑包含在一個篩選器中。若要了解如何設定 SiteWise Edge 閘道的 OPC UA 來源，請參閱 [AWS IoT SiteWise Edge 閘道的 OPC UA 資料來源](configure-sources-opcua.md)。

**注意**  
AWS IoT SiteWise 每次新增或編輯來源時， 都會重新啟動 SiteWise Edge 閘道。您的 SiteWise Edge 閘道在更新來源組態時不會擷取資料。重新啟動 SiteWise Edge 閘道的時間取決於 SiteWise Edge 閘道來源上的標籤數量。重新啟動時間的範圍可以從幾秒鐘 （對於具有數個標籤的 SiteWise Edge 閘道） 到幾分鐘 （對於具有許多標籤的 SiteWise Edge 閘道）。

下表列出可用來篩選 OPC UA 資料來源的萬用字元。


**OPC UA 節點篩選條件萬用字元**  

| 萬用字元 | Description | 
| --- | --- | 
| \$1 | 比對資料串流路徑中的單一層級。 | 
| \$1\$1 | 比對資料串流路徑中的多個層級。 | 

**注意**  
如果您使用廣泛的篩選條件設定來源，然後稍後將來源變更為使用更嚴格的篩選條件， 會 AWS IoT SiteWise 停止儲存不符合新篩選條件的資料。

**Example ：使用節點篩選條件的案例**  
考慮以下的假設性資料串流：  
+ `/WA/Factory 1/Line 1/PLC1`
+ `/WA/Factory 1/Line 1/PLC2`
+ `/WA/Factory 1/Line 2/Counter1`
+ `/WA/Factory 1/Line 2/PLC1`
+ `/OR/Factory 1/Line 1/PLC1`
+ `/OR/Factory 1/Line 2/Counter2`
您可以使用先前的資料串流定義節點篩選條件，以限制要從 OPC UA 來源包含的資料。  
+ 若要選取此範例中的所有節點，請使用 `/`或 `/**/`。使用 `**` 萬用字元可以包含多個目錄或資料夾。
+ 若要選取所有 `PLC` 資料串流，請使用 `/*/*/*/PLC*` 或 `/**/PLC*`。
+ 若要選取此範例中的所有計數器，請使用 `/**/Counter*`或 `/*/*/*/Counter*`。
+ 若要從 `Line 2` 中選取所有計數器，請使用 `/**/Line 2/Counter*`。

# 轉換不支援的資料類型
<a name="string-conversion"></a>

針對簡單陣列和 DateTime 資料類型，選擇性地 AWS IoT SiteWise 在 中啟用資料類型轉換。 AWS IoT SiteWise 不支援所有 OPC UA 資料類型。當您將不支援的資料傳送到 AWS IoT Greengrass 資料串流時，該資料會遺失。不過，透過將不支援的原生資料類型轉換為字串，您可以將資料擷取至 AWS IoT SiteWise ，而不是將其捨棄。 AWS IoT SiteWise 會序列化轉換後的資料，以便您稍後在需要時使用自己的函數，將字串轉換回其原始資料類型下游。

您可以隨時更新資料來源的資料類型轉換設定，而且每個資料來源都可以有自己的設定。

當您在 中新增資料來源時 AWS IoT SiteWise 主控台，**進階組態**中的**資料類型轉換**下有兩個核取方塊。您可以指出要轉換為字串的資料類型。

此外，IoT SiteWise OPC UA 收集器可以在邊緣接受 NaN 或 null 值。
+ 將具有簡單資料類型的陣列值轉換為 JSON 字串
+ 將 DateTime 值轉換為 ISO 8601 字串

## 先決條件
<a name="string-conversion-prereq"></a>
+ 使用 [IoT SiteWise OPC UA 收集器 2.5](https://docs.aws.amazon.com/greengrass/v2/developerguide/iotsitewise-opcua-collector-component.html).0 版或更新版本。

## 限制
<a name="string-conversion-limits"></a>

這些是將 OPC UA 資料類型轉換為 中字串的限制 AWS IoT SiteWise。
+ 不支援複雜的資料類型轉換。
+ 轉換後的字串限制為 1024 個位元組。如果字串超過 1024 個位元組，則字串會遭到 拒絕 AWS IoT SiteWise。

# 設定 SiteWise Edge 的資料來源身分驗證
<a name="configure-source-authentication-ggv2"></a>

如果您的 OPC UA 伺服器需要身分驗證憑證才能連線，您可以使用 來 AWS Secrets Manager 建立秘密並將其部署到您的 SiteWise Edge 閘道。 會在裝置上 AWS Secrets Manager 加密秘密，以保持使用者名稱和密碼的安全，直到您需要使用它們為止。如需 AWS IoT Greengrass 秘密管理員元件的詳細資訊，請參閱《 *AWS IoT Greengrass Version 2 開發人員指南*》中的[秘密管理員](https://docs.aws.amazon.com/greengrass/v2/developerguide/secret-manager-component.html)。

如需管理 Secrets Manager 秘密存取權的資訊，請參閱：
+ [ 誰有權存取您的 AWS Secrets Manager 秘密](https://docs.aws.amazon.com/secretsmanager/latest/userguide/determine-acccess_examine-iam-policies.html)。
+ [ 判斷帳戶內是否允許或拒絕請求](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html#policy-eval-denyallow)。

## 步驟 1：建立來源身分驗證秘密
<a name="create-secrets-ggv2"></a>

您可以使用 AWS Secrets Manager 為您的資料來源建立身分驗證秘密。在秘密中，定義包含資料來源身分驗證詳細資訊的 **username**和 **password**金鑰值對。

**若要建立機密 (控制台)**

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

1. 選擇**儲存新機密**。

1. 在**秘密類型**下，選擇**其他類型的秘密**。

1. 在**鍵/值對**下，執行下列動作：

   1. 在第一個輸入方塊中，輸入 **username** ，然後在第二個輸入方塊中輸入使用者名稱。

   1. 選擇**新增列**。

   1. 在第一個輸入方塊中，輸入 **password** ，然後在第二個輸入方塊中輸入密碼。

1. 針對**加密金鑰**，選取 **aws/secretsmanager**，然後選擇**下一步**。

1. 在**儲存新的秘密**頁面上，輸入**秘密名稱**。

1. （選用） 輸入可協助您識別此秘密的**描述**，然後選擇**下一步**。

1. （選用） 在**儲存新的秘密**頁面上，開啟**自動輪換**。如需詳細資訊，請參閱*AWS Secrets Manager 《 使用者指南*》中的[輪換秘密](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets.html)。

1. 指定輪換排程。

1. 選擇可輪換此秘密的 Lambda 函數，然後選擇**下一步**。

1. 檢閱您的秘密組態，然後選擇**儲存**。

若要授權 SiteWise Edge 閘道與 互動 AWS Secrets Manager，SiteWise Edge 閘道的 IAM 角色必須允許 `secretsmanager:GetSecretValue`動作。您可以使用 **Greengrass 核心裝置**來搜尋 IAM 政策。如需更新 IAM 政策的詳細資訊，請參閱*AWS Identity and Access Management 《 使用者指南*》中的[編輯 IAM 政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-edit.html)。

**Example 政策**  
以您在上一個步驟中建立的秘密的 Amazon Resource Name (ARN) 取代 *secret-arn*。如需如何取得秘密 ARN 的詳細資訊，請參閱*AWS Secrets Manager 《 使用者指南*》中的在 [中尋找秘密 AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_search-secret.html)。    
****  

```
{
"Version":"2012-10-17",		 	 	 
"Statement":[
  {
     "Action":[
        "secretsmanager:GetSecretValue"
     ],
     "Effect":"Allow",
     "Resource":[
        "arn:aws:secretsmanager:us-east-1:123456789012:secret/*"
     ]
  }
]
}
```

## 步驟 2：將秘密部署到您的 SiteWise Edge 閘道裝置
<a name="deploy-secrets-ggv2"></a>

您可以使用 AWS IoT SiteWise 主控台將秘密部署到您的 SiteWise Edge 閘道。

**部署秘密 （主控台）**

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

1. 在導覽窗格中，選擇 ** Gateways** (網際網路閘道)。

1. 從**閘道**清單中，選擇目標 SiteWise Edge 閘道。

1. 在**閘道組態**區段中，選擇 **Greengrass 核心裝置**連結以開啟與 SiteWise Edge 閘道相關聯的 AWS IoT Greengrass 核心。

1. 在導覽窗格中，選擇**部署**。

1. 選擇目標部署，然後選擇**修訂**。

1. 在**指定目標**頁面上，選擇**下一步**。

1. 在**選取元件**頁面的**公有元件**區段中，關閉**僅顯示選取的元件**。

1. 搜尋並選擇 **aws.greengrass.SecretManager** 元件，然後選擇**下一步**。

1. 從**選取的元件**清單中，選擇 **aws.greengrass.SecretManager** 元件，然後選擇**設定元件**。

1. 在**要合併的組態**欄位中，新增下列 JSON 物件。
**注意**  
以您在上一個步驟中建立的秘密 ARN 取代 *secret-arn*。如需如何取得秘密 ARN 的詳細資訊，請參閱*AWS Secrets Manager 《 使用者指南*》中的在 [中尋找秘密 AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_search-secret.html)。

   ```
   {
   "cloudSecrets":[
     {
        "arn":"secret-arn"
     }
   ]
   }
   ```

1. 選擇**確認**。

1. 選擇**下一步**。

1. 在**設定進階設定**頁面上，選擇**下一步**。

1. 檢閱您的部署組態，然後選擇**部署**。

## 步驟 3：新增身分驗證組態
<a name="add-authentication-configurations"></a>

您可以使用 AWS IoT SiteWise 主控台將身分驗證組態新增至 SiteWise Edge 閘道。

**新增身分驗證組態 （主控台）**

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

1. 從**閘道**清單中，選擇目標 SiteWise Edge 閘道。

1. 從**資料來源**清單中，選擇目標資料來源，然後選擇**編輯**。

1. 在**新增資料來源**頁面上，選擇**進階組態**。

1. 針對**身分驗證組態**，選擇您在上一個步驟中部署的秘密。

1. 選擇**儲存**。

# SiteWise Edge 閘道上的合作夥伴資料來源
<a name="partner-data-sources"></a>

使用 AWS IoT SiteWise Edge 閘道時，您可以將合作夥伴資料來源連線至 SiteWise Edge 閘道，並從 SiteWise Edge 閘道和 AWS 雲端中的合作夥伴接收資料。這些合作夥伴資料來源是在 AWS 和 合作夥伴之間共同開發的 AWS IoT Greengrass 元件。當您新增合作夥伴資料來源時， AWS IoT SiteWise 會建立此元件，並將其部署到您的 SiteWise Edge 閘道。

**注意**  
您可以為每個閘道中的每個合作夥伴新增一個資料來源。

若要新增合作夥伴資料來源，請執行下列動作：

1. [在 SiteWise Edge 中新增合作夥伴資料來源](cpa-add-source.md)

1. 前往合作夥伴的 Web 入口網站，如適用，並設定合作夥伴資料來源，使其連線至 SiteWise Edge 閘道。

**Topics**
+ [

## 安全
](#cpa-security)
+ [

# 在 SiteWise Edge 閘道Docker上設定
](cpa-install-docker.md)
+ [

# 在 SiteWise Edge 中新增合作夥伴資料來源
](cpa-add-source.md)
+ [

# SiteWise Edge 閘道合作夥伴資料來源選項
](connect-partner-data-source.md)

## 安全
<a name="cpa-security"></a>

作為 AWS我們客戶和合作夥伴之間[共同責任模型](https://aws.amazon.com/compliance/shared-responsibility-model/)的一部分，以下說明誰負責不同的安全層面：

**客戶責任**  
+ 審核合作夥伴。
+ 設定提供給合作夥伴的網路存取權。
+ 監控 SiteWise Edge 閘道機器資源 (CPU、記憶體和檔案系統） 的合理使用情況。

**AWS 責任**  
+ 將合作夥伴與客戶 AWS 雲端資源隔離，但合作夥伴所需的資源除外。在此情況下，即為 AWS IoT SiteWise 擷取。
+ 將合作夥伴解決方案限制為合理使用 SiteWise Edge 閘道機器資源 (CPU 和記憶體）。

**合作夥伴責任**  
+ 使用安全預設值。
+ 透過修補程式和其他適當的更新，在一段時間內保護解決方案的安全。
+ 將客戶資料保密。

# 在 SiteWise Edge 閘道Docker上設定
<a name="cpa-install-docker"></a>

AWS IoT SiteWise 提供的Docker映像可讓您在各種平台和環境中執行 SiteWise Edge 應用程式。此Docker映像會封裝從工業設備收集、處理和傳送資料至 AWS 雲端所需的所有必要元件和相依性。透過使用 Docker 映像，您可以在 Docker 相容主機上部署和執行 SiteWise Edge 應用程式，例如伺服器、邊緣裝置或雲端容器服務。

若要新增合作夥伴資料來源，您的本機裝置上必須安裝 [Docker 引擎](https://docs.docker.com/engine/) 1.9.1 或更新版本。

**注意**  
20.10 版是經過驗證可與 SiteWise Edge 閘道軟體搭配使用的最新版本。

## 確認Docker已安裝
<a name="cpa-install-docker-verify"></a>

若要驗證Docker是否已安裝，請從連線至 SiteWise Edge 閘道的終端機執行下列命令：

```
docker info
```

如果命令傳回`docker is not recognized`結果，或已安裝較舊版本的 Docker ，請在繼續之前[安裝 Docker 引擎](https://docs.docker.com/engine/install/)。

## 設定 Docker
<a name="cpa-install-docker-setup"></a>

執行Docker容器元件的系統使用者必須具有根或管理員許可，或者您必須Docker將 設定為以非根或非管理員使用者身分執行。

在 Linux 裝置上，您必須將`ggc_user`使用者新增至 `docker`群組，才能在沒有 的情況下呼叫Docker命令`sudo`。

若要將 `ggc_user`或您用來執行Docker容器元件的非根使用者新增至 `docker`群組，請執行下列命令：

```
sudo usermod -aG docker ggc_user
```

如需詳細資訊，請參閱 [Docker引擎的 Linux 安裝後步驟](https://docs.docker.com/engine/install/linux-postinstall/)。

# 在 SiteWise Edge 中新增合作夥伴資料來源
<a name="cpa-add-source"></a>

若要將合作夥伴資料來源連線至 SiteWise Edge 閘道，請將其新增為資料來源。當您將其新增為資料來源時， AWS IoT SiteWise 會將私有 AWS IoT Greengrass 元件部署到您的 SiteWise Edge 閘道。

## 先決條件
<a name="cpa-add-prereqs"></a>

若要新增合作夥伴資料來源，您必須執行下列動作：
+ 對於 EasyEdge和 CloudRail，與合作夥伴建立帳戶，然後繫結帳戶。
+ [在 SiteWise Edge 閘道Docker上設定](cpa-install-docker.md)

## 使用合作夥伴資料來源建立 SiteWise Edge 閘道
<a name="cpa-add-create-gateway"></a>

如果您想要建立新的 SiteWise Edge 閘道，請完成 中的步驟[建立自我託管 SiteWise Edge 閘道](create-gateway-ggv2.md)。建立 SiteWise Edge 閘道之後，請依照中的步驟[將合作夥伴資料來源新增至現有的 SiteWise Edge 閘道](#cpa-existing-gateway)新增合作夥伴資料來源。

## 將合作夥伴資料來源新增至現有的 SiteWise Edge 閘道
<a name="cpa-existing-gateway"></a>

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

1. 在左側導覽中，選擇 **Edge 區段中的 Edge 閘道**。 ****

1. 選擇您要連接合作夥伴資料來源的 SiteWise Edge 閘道。

1. 在**資料來源**下，選擇**新增資料來源**。

1. 在**新增資料來源**畫面上，選擇**來源類型**，以選取連接 SiteWise Edge 閘道的合作夥伴。每個資料來源都有自己的組態選項。資料來源有兩種類別： AWS 來源和合作夥伴來源。

   使用合作夥伴資料來源，您可以為每個閘道選擇一個來源。如需資料來源合作夥伴整合選項的清單，請參閱 [SiteWise Edge 閘道合作夥伴資料來源選項](connect-partner-data-source.md)。請注意，您最多可以新增 100 個 OPC UA 資料來源 (AWS 來源）。若要開始使用 OPC UA 資料來源，請參閱 [AWS IoT SiteWise Edge 閘道的 OPC UA 資料來源](configure-sources-opcua.md)。

1. 輸入來源的名稱。

1. 選取下方的資料來源標籤，然後遵循組態程序。

------
#### [ CloudRail ]

   在儲存 SiteWise Edge 閘道的資料來源CloudRail之後，入口網站中會完成大部分的CloudRail組態。不過，需要授權連線。

**注意**  
CloudRail 連線僅適用於 Linux。

   1. [建立 CloudRail帳戶](https://devices.cloudrail.com/signup)以開始使用 連線 AWS IoT SiteWise。

   1. 確定 Docker 已安裝在您的閘道上。如需詳細資訊，請參閱[在 SiteWise Edge 閘道Docker上設定](cpa-install-docker.md)。

   1. 閱讀**授權存取和部署**協議，然後選擇**授權**。勾選方塊會授予 AWS 合作夥伴存取您資料來源的權限 AWS ，並允許 在合作夥伴的元件上部署 。

**注意**  
**測量字首 - *選用***是在CloudRail入口網站中設定。

**注意**  
合作夥伴軟體是由 AWS 合作夥伴開發、維護和支援。 AWS 不負責介面、組態或軟體。

   如需詳細資訊，請參閱[CloudRail](connect-partner-data-source.md#cp-cloudrail)。

------
#### [ EasyEdge ]

   大部分EasyEdge組態會在儲存 SiteWise Edge 閘道的資料來源後，在EasyEdge入口網站中完成。不過，需要授權連線。

**注意**  
EasyEdge 連線僅適用於 Linux。

   1. [建立 EasyEdge帳戶](https://accounts.easyedge.io/signup?partner=aws)以開始使用 連線 AWS IoT SiteWise。

   1. 確定 Docker 已安裝在您的閘道上。如需詳細資訊，請參閱[在 SiteWise Edge 閘道Docker上設定](cpa-install-docker.md)。

   1. 閱讀**授權存取和部署**協議，然後選擇**授權**。勾選方塊會授予 AWS 合作夥伴存取您資料來源的權限 AWS ，並允許 在合作夥伴的元件上部署 。

**注意**  
**測量字首 - *選用***是在EasyEdge入口網站內設定。

**注意**  
合作夥伴軟體是由 AWS 合作夥伴開發、維護和支援。 AWS 不負責介面、組態或軟體。

   如需詳細資訊，請參閱[EasyEdge](connect-partner-data-source.md#cp-easyedge)。

------
#### [ Litmus Edge ]

   您可以透過兩種方式啟用Litmus組態。使用Litmus Edge Manager入口網站的資訊Litmus Edge直接透過 AWS IoT SiteWise 啟用 。或者，您可以透過 手動啟用 Litmus Edge 的 AWS IoT SiteWise Litmus Edge Manager。

**注意**  
Litmus Edge 連線僅適用於 Linux。

    

**在 上使用啟用碼Litmus Edge啟用 AWS IoT SiteWise**

   在 新增具有Litmus Edge啟用碼的Litmus Edge資料來源時，請使用此程序 AWS IoT SiteWise 主控台。

   1. 選取**立即使用程式碼啟用**。其他組態選項隨即出現。

   1. 輸入 Litmus Edge Manager 以Litmus Edge連線至 SiteWise Edge 閘道。如需詳細資訊，請參閱 Litmus Edge Manager 文件中的[步驟 3a：設定資料和裝置管理端點](https://docs.litmus.io/edgemanager/quickstart-guide/activate-an-edge-device/step-3-activation-request)。

   1. 提供要在 Litmus Edge上啟用的Litmus Edge Manager啟用碼 AWS IoT SiteWise

   1. 或者， AWS IoT SiteWise 提供 **Litmus Edge Manager CA 憑證**。憑證Litmus Edge可防止 在未經授權的 上啟用 Litmus Edge Manager。

   1. 確定 Docker 已安裝在您的閘道上。如需詳細資訊，請參閱[在 SiteWise Edge 閘道Docker上設定](cpa-install-docker.md)。
**注意**  
AWS IoT SiteWise 會將合作夥伴應用程式部署為 Docker 容器。應用程式使用 `NET_ADMIN`功能部署，以便透過 管理 Litmus Edge Docker 容器Litmus Edge Manager。 Litmus Edge需要此特殊權限存取才能在您的裝置上執行。如需 Litmus Edge Docker 需求的詳細資訊，請參閱 Litmus Edge 文件中的 *QuickStart 指南*中的 [Docker 安裝](https://docs.litmus.io/litmusedge-v1/quickstart-guide/installation-and-deployments/docker-installation)。

   1. 閱讀**授權存取和部署**協議，然後選擇**授權**。勾選方塊會授予 AWS 合作夥伴存取您資料來源的權限 AWS ，並允許 在合作夥伴的元件上部署 。

    

**透過 手動啟用 Litmus Edge**

   1. 選取**稍後在 上啟用Litmus Edge**。

   1. 確定 Docker 已安裝在您的閘道上。如需詳細資訊，請參閱[在 SiteWise Edge 閘道Docker上設定](cpa-install-docker.md)。
**注意**  
AWS IoT SiteWise 會將合作夥伴應用程式部署為 Docker 容器。應用程式使用 `NET_ADMIN`功能部署，以便透過 管理 Litmus Edge Docker 容器Litmus Edge Manager。 Litmus Edge需要此特殊權限存取才能在您的裝置上執行。如需 Litmus Edge Docker 需求的詳細資訊，請參閱 Litmus Edge 文件中的 *QuickStart 指南*中的 [Docker 安裝](https://docs.litmus.io/litmusedge-v1/quickstart-guide/installation-and-deployments/docker-installation)。

   1. 閱讀**授權存取和部署**協議，然後選擇**授權**。勾選方塊會授予 AWS 合作夥伴存取您資料來源的權限 AWS ，並允許 在合作夥伴的元件上部署 。

   1. 部署完成後，請遵循 Litmus Edge *QuickStart Guide* 文件中的[存取 Litmus Edge Web UI](https://docs.litmus.io/litmusedge/quickstart-guide/access-the-litmus-edge-web-ui) 說明。

**注意**  
合作夥伴軟體是由 AWS 合作夥伴開發、維護和支援。 AWS 不負責介面、組態或軟體。

   如需詳細資訊，請參閱[Litmus Edge](connect-partner-data-source.md#cp-litmus)。

------

1. 選擇 **Save** (儲存)。

# SiteWise Edge 閘道合作夥伴資料來源選項
<a name="connect-partner-data-source"></a>

AWS IoT SiteWise 可讓您從各種合作夥伴資料來源連接和擷取資料，例如工業設備、感應器和其他第三方系統。若要連接合作夥伴資料來源，您需要遵循幾個步驟，包括設定資料來源以傳送資料 AWS IoT SiteWise、設定必要的許可和身分驗證，以及將資料映射到您的資產模型。此程序可確保合作夥伴資料無縫整合至您的 AWS IoT SiteWise 環境，讓您與其他資料來源一起監控和分析。

本節列出 SiteWise Edge 閘道上第三方資料來源整合的可用合作夥伴。使用以下資訊來設定合作夥伴資料來源。

**注意**  
您可以為每個閘道中的每個合作夥伴新增一個資料來源

## CloudRail
<a name="cp-cloudrail"></a>

**入口網站：**  
[https://devices.cloudrail.com/](https://devices.cloudrail.com/)

**需求**  
如需CloudRail需求的詳細資訊，請參閱 CloudRail 網站上的[常見問答集](https://cloudrail.com/faqs/)。

**CloudRail 文件：**  
[邊緣運算：SiteWise Edge](https://devices.cloudrail.com/documentation?service=AWSIoTSitewiseEdge#awsiotsitewiseEdge1)

## EasyEdge
<a name="cp-easyedge"></a>

**入口網站：**  
[https://studio.easyedge.io/](https://studio.easyedge.io/)

**需求**  
[EasyEdge 需求](https://docs.easyedge.io/getting-started/requirements.html) – EasyEdge需求的相關資訊，包括設定防火牆所需的端點和連接埠。**注意**：您將需要 EasyEdge帳戶才能存取此文件。

**EasyEdge 文件：**  
[EasyEdge 適用於 的 AWS](https://www.easyedge.io/easyedge-for-aws/)

## Litmus Edge
<a name="cp-litmus"></a>

**存取 Litmus Edge Manager：**  
若要存取 Litmus Edge，請設定 [Litmus Edge Manager 帳戶](https://docs.litmus.io/edgemanager/quickstart-guide/access-to-litmus-edge-manager)。

**需求**  
[Litmus Edge 需求 ](https://docs.litmus.io/litmusedge/quickstart-guide/system-requirements) – 部署 的建議組態和系統需求Litmus Edge。

**Litmus 文件：**  
+ [整合到 AWS IoT SiteWise](https://docs.litmus.io/litmusedge-v1/litmusedge-with-aws-iot-sitewise)
+ [Litmus Edge 文件](https://docs.litmus.io/litmusedge/)

# AWS IoT Greengrass AWS IoT SiteWise Edge 的 元件
<a name="sw-edge-components"></a>

SiteWise Edge 使用 AWS IoT Greengrass 元件來收集、處理和傳輸邊緣的工業資料。這些元件可共同運作，以啟用本機資料處理，並與 AWS IoT SiteWise 雲端服務無縫整合。

**IoT SiteWise 發佈者**  
IoT SiteWise 發佈者元件 (`aws.iot.SiteWiseEdgePublisher`) 負責：  
+ 將收集的資料安全地傳輸到 AWS IoT SiteWise 雲端服務
+ 在連線問題期間管理資料緩衝和重試
如需設定 SiteWise Edge 發佈者的詳細資訊，請參閱 [設定 AWS IoT SiteWise 發佈者元件](configure-publisher-component.md)。此外，如需發佈者元件的詳細資訊，請參閱《 *AWS IoT Greengrass Version 2 開發人員指南*》中的 [IoT SiteWise 發佈者](https://docs.aws.amazon.com/greengrass/v2/developerguide/iotsitewise-publisher-component.html)。

**IoT SiteWise 處理器**  
IoT SiteWise 處理器元件 (`aws.iot.SiteWiseEdgeProcessor`) 會執行下列任務：  
+ 在邊緣執行資料轉換和計算
+ 在本機實作資產屬性定義和運算
+ 在傳輸之前彙總或篩選資料，以減少資料量
如需處理器元件的詳細資訊，請參閱《 *AWS IoT Greengrass Version 2 開發人員指南*》中的 [IoT SiteWise 處理器](https://docs.aws.amazon.com/greengrass/v2/developerguide/iotsitewise-processor-component.html)。

**IoT SiteWise OPC UA 收集器**  
IoT SiteWise OPC UA 收集器 (`aws.iot.SiteWiseEdgeCollectorOpcua`) 元件旨在：  
+ 連線至工業環境中的 OPC UA 伺服器
+ 有效率地從 OPC UA 資料來源收集資料
+ 將 OPC UA 資料轉換為與 相容的格式 AWS IoT SiteWise
如需 OPC UA 收集器元件的詳細資訊，請參閱《 *AWS IoT Greengrass Version 2 開發人員指南*》中的 [IoT SiteWise OPC UA 收集器](https://docs.aws.amazon.com/greengrass/v2/developerguide/iotsitewise-opcua-collector-component.html)。

**IoT SiteWise OPC UA 資料來源模擬器**  
IoT SiteWise OPC UA 資料來源模擬器元件 (`aws.iot.SiteWiseEdgeOpcuaDataSourceSimulator`) 提供下列功能：  
+ 啟動產生範例資料的本機 OPC UA 伺服器
+ 模擬閘道上 AWS IoT SiteWise OPC UA 收集器元件可以讀取的資料來源 AWS IoT SiteWise 
+ 使用產生的範例資料來探索 AWS IoT SiteWise 功能
此元件特別適用於測試和開發用途，可讓您模擬工業資料來源，而不需要實體設備。  
如需資料來源模擬元件的詳細資訊，請參閱《 *AWS IoT Greengrass Version 2 開發人員指南*》中的 [IoT SiteWise OPC UA 資料來源模擬器](https://docs.aws.amazon.com/greengrass/v2/developerguide/iotsitewise-opcua-data-source-simulator-component.html)。

這些 AWS IoT Greengrass 元件可啟用 SiteWise Edge 功能。IoT SiteWise 發佈者可確保將資料可靠地傳送至雲端，IoT SiteWise 處理器會處理本機運算和資料最佳化，而 IoT SiteWise OPC UA 收集器可促進與常見工業通訊協定的整合。

**注意**  
若要使用這些元件，您必須在邊緣裝置上安裝 AWS IoT Greengrass V2 或更新版本。每個元件的適當組態對於 SiteWise Edge 的最佳效能至關重要。

# 在 SiteWise Edge 閘道上篩選資產
<a name="filter-assets-ggv2"></a>

您可以使用邊緣篩選，透過僅將資產子集傳送至特定的 SiteWise Edge 閘道，以更有效地管理資產。如果您的資產配置在樹狀目錄或父子系結構中，您可以設定連接到 SiteWise Edge 閘道 IAM 角色的 IAM 政策，僅允許將樹狀目錄或父系及其子系傳送至特定的 SiteWise Edge 閘道。

**注意**  
如果您要將現有資產配置為樹狀結構，請在建立結構之後，前往您新增至結構的每個現有資產，然後選擇**編輯**，然後選擇**儲存**以確保 AWS IoT SiteWise 辨識新結構。

## 設定邊緣篩選
<a name="set-up-edge-filter-ggv2"></a>

在 SiteWise Edge 閘道上設定邊緣篩選，方法是將下列 IAM 政策新增至 SiteWise Edge 閘道的 IAM 角色，以您想要傳送至 SiteWise Edge 閘道的根資產 ID 取代 *<root-asset-id>*。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Deny",
            "Action": [
                "iotsitewise:DescribeAsset",
                "iotsitewise:ListAssociatedAssets"
            ],
            "Resource": "arn:aws:iotsitewise:*:*:asset/*",
            "Condition": {
                "StringNotLike": {
                    "iotsitewise:assetHierarchyPath": "/<root-asset-id>*"
                }
            }
        }
    ]
}
```

------

如果您想要移除 SiteWise Edge 閘道上目前有資產，請登入 SiteWise Edge 閘道並執行下列命令， AWS IoT SiteWise 透過刪除快取強制 SiteWise Edge 閘道與 同步。

```
sudo rm /greengrass/v2/work/aws.iot.SiteWiseEdgeProcessor/sync-app/sync_resource_bundles/edge.json
```

# 設定代理支援和管理 AWS IoT SiteWise Edge 的信任存放區
<a name="edge-apis-manage-trust-stores-proxy"></a>

在 AWS IoT SiteWise Edge 中，設定和管理信任存放區，為您的邊緣裝置設定代理支援。首先，設定代理組態，然後設定信任存放區。您可以在閘道安裝期間設定信任存放區，或在建立閘道之後手動設定信任存放區。
+ **代理** – 促進各種網路環境中的邊緣裝置 AWS 和服務之間的連線。
+ **信任存放區** – 透過管理信任的憑證來確保安全連線。適當的組態可協助您遵守網路安全政策、在受限的網路環境中啟用通訊，以及最佳化邊緣裝置和雲端服務之間的資料傳輸。

SiteWise Edge 會針對不同的元件類型使用多個信任存放區，確保從邊緣裝置到雲端的安全且有效率資料流程。您可以在現有閘道上或在建立新閘道的安裝程序期間設定信任存放區和代理。

## 信任存放區和代理組態的需求
<a name="manage-trust-stores-proxy_implementation-requirements"></a>

在設定信任存放區或使用代理設定安裝 SiteWise Edge 之前，請確定您符合先決條件。根據您的元件用量和功能需求，有不同的實作需求。

**Proxy 支援需求**
+ 代理伺服器的 URL。URL 應包含使用者資訊、主機的連接埠號碼。例如 `scheme://[userinfo@]host[:port]`。
  + `scheme` – 必須是 HTTP 或 HTTPS
  + （選用） `userinfo` – 使用者名稱和密碼資訊
  + `host` – 代理伺服器的主機名稱或 IP 地址
  + `port` – 連接埠號碼
+ 略過代理的地址清單。
+ （選用） 如果您使用 HTTPS 代理搭配自我簽署憑證，則為代理 CA 憑證檔案。

**信任存放區需求**
+ 如需使用 HTTPS 代理的完整資料處理套件功能，您應該更新這三個信任存放區。
+ 如果您只使用 IoT SiteWise OPC UA 收集器和 IoT SiteWise 發佈者，請將 AWS IoT Greengrass Core 和 Java 信任存放區憑證更新為最新版本。

## 信任存放區和代理伺服器邊緣組態的最佳實務
<a name="manage-trust-stores-proxy_best-practices"></a>

對於持續維護和在邊緣環境中維持最高層級的安全性：
+ 定期檢閱和更新代理設定，以符合您的網路安全需求。
+ 監控閘道連線和資料流程，以確保適當的代理通訊
+ 根據組織的憑證管理政策來維護和更新信任存放區
+ 您可以實作並遵循我們在邊緣環境中安全通訊的建議最佳實務，例如：
+ 記錄您的代理和信任存放區組態，以實現操作可見性
+ 遵循組織的登入資料管理安全實務

這些實務有助於維持 SiteWise Edge 閘道的安全和可靠操作，同時與更廣泛的安全政策保持一致。

# 在 AWS IoT SiteWise Edge 閘道安裝期間設定代理設定
<a name="manage-trust-stores-proxy_config"></a>

您可以設定 AWS IoT SiteWise Edge 在閘道安裝期間使用代理伺服器。安裝指令碼同時支援 HTTP 和 HTTPS 代理，並可以自動設定安全代理連線的信任存放區。

當您使用代理設定執行安裝指令碼時，它會執行數個重要的任務：
+ 驗證代理 URL 格式和參數，以確保正確指定它們。
+ 透過設定的代理下載並安裝必要的相依性。
+ 如果提供代理 CA 憑證，它會附加到 AWS IoT Greengrass 根 CA 憑證並匯入到 Java KeyStore。
+ 設定 AWS IoT Greengrass (SiteWise Edge 使用的） 為所有傳出連線使用代理。
+ 使用適當的代理和信任存放區組態完成 SiteWise Edge 安裝。

**安裝閘道軟體時設定代理設定**

1. 建立 SiteWise Edge 閘道。如需詳細資訊，請參閱[建立自我託管 SiteWise Edge 閘道](create-gateway-ggv2.md)及[在本機裝置上安裝 AWS IoT SiteWise Edge 閘道軟體](install-gateway-software-on-local-device.md)。

1. 為您的環境使用適當的代理設定執行安裝指令碼。將預留位置取代為您的特定代理資訊 

   取代下列每個項目：
   + `-p`， `--proxy-url` – 代理伺服器的 URL。URL 必須是 `http`或 `https`。
   + `-n`， `--no-proxy` – 以逗號分隔的地址清單，以略過代理。
   + （選用）`-c`：代理 CA 憑證檔案的`--proxy-ca-cert`路徑。
   + （選用）`-j`， `--javastorepass` – Java KeyStore 密碼。預設密碼為 `changeit`。

------
#### [ Linux ]

   對於 Linux 系統，請使用下列命令結構：

   ```
   sudo ./install.sh -p proxy-url -n no-proxy-addresses [-c proxy-ca-cert-path] [-j javastorepass]
   ```

------
#### [ Windows ]

   對於使用 PowerShell Microsoft Windows的系統，請使用下列命令結構：

   ```
   .\install.ps1 -ProxyUrl proxy-url -NoProxyAddresses no-proxy-addresses [-ProxyCaCertPath proxy-ca-cert-path] [-JavaStorePass javastorepass]
   ```

------

## 在啟用代理的安裝期間進行故障診斷
<a name="manage-trust-stores-proxy_installation-process_troubleshooting"></a>

如需解決 SiteWise Edge 閘道相關信任存放區問題的詳細資訊，請參閱 [啟用代理的安裝問題](troubleshooting-gateway.md#troubleshoot-proxy-during-installation)。

# 在 AWS IoT SiteWise Edge 中手動設定 HTTPS 代理支援的信任存放區
<a name="manage-trust-stores-proxy_trust-store-locations-and-configuration"></a>

設定 AWS IoT SiteWise Edge 元件以透過 HTTPS 代理連線時，請將代理伺服器的憑證新增至適當的信任存放區。SiteWise Edge 使用多個信任存放區來保護通訊。有三個信任存放區，您使用它們取決於閘道實作中的 SiteWise Edge 元件類型。

當提供代理設定時，信任存放區會在安裝程序期間自動更新。
+ [設定 AWS IoT Greengrass 核心元件信任存放區](#manage-trust-stores-proxy_greengrass-core-components) – AWS IoT Greengrass 根 CA 憑證包含在信任存放區中，以驗證 AWS 服務的真實性。

  此信任存放區可協助 AWS IoT Greengrass 元件透過代理安全地與服務 AWS 通訊，同時驗證這些服務的真實性。
+ [設定以 Java 為基礎的元件信任存放區](#manage-trust-stores-proxy_java-based-components) – Java KeyStore (JKS) 是 Java 型元件用於 SSL/TLS 連線的主要信任存放區。

   Java 應用程式依賴 JKS 來建立安全連線。例如，如果您使用IoT Java 為基礎的 IoT SiteWise 發佈者或 IoT SiteWise OPC UA 收集器，則需要設定此信任存放區。這可確保這些元件在將資料傳送至雲端或從 OPC UA 伺服器收集資料時，可以透過 HTTPS 代理安全地通訊。
+ [系統層級元件信任存放區組態](#manage-trust-stores-proxy_system-level-components) – 使用 HTTPS 代理時，必須將憑證新增至適當的信任存放區，以啟用安全連線。

  使用 HTTPS 代理時，其憑證必須新增至適當的信任存放區，才能啟用安全連線。這是必要的，因為通常以 Rust 或 Go 等語言撰寫的系統層級元件依賴系統的信任存放區，而不是 Java 的 JKS。例如，如果您使用的是需要透過代理通訊的系統公用程式 （例如軟體更新或時間同步），則需要設定系統層級信任存放區。這可確保這些元件和公用程式可以透過代理建立安全連線。

## 設定 AWS IoT Greengrass 核心元件信任存放區
<a name="manage-trust-stores-proxy_greengrass-core-components"></a>

對於使用 Amazon 根 CA AWS IoT Greengrass 的核心函數：

1. 在 找到憑證檔案 `/greengrass/v2/AmazonRootCA1.pem`

1. 將 HTTPS 代理根憑證 （自我簽署） 附加至此檔案。

```
-----BEGIN CERTIFICATE-----
MIIEFTCCAv2gAwIQWgIVAMHSAzWG/5YVRYtRQOxXUTEpHuEmApzGCSqGSIb3DQEK
\nCwUAhuL9MQswCQwJVUzEPMAVUzEYMBYGA1UECgwP1hem9uLmNvbSBJbmMuMRww
... content of proxy CA certificate ...
+vHIRlt0e5JAm5\noTIZGoFbK82A0/nO7f/t5PSIDAim9V3Gc3pSXxCCAQoFYnui
GaPUlGk1gCE84a0X\n7Rp/lND/PuMZ/s8YjlkY2NmYmNjMCAXDTE5MTEyN2cM216
gJMIADggEPADf2/m45hzEXAMPLE=
-----END CERTIFICATE-----

-----BEGIN CERTIFICATE-----
MIIDQTCCAimgF6AwIBAgITBmyfz/5mjAo54vB4ikPmljZKyjANJmApzyMZFo6qBg
ADA5MQswCQYDVQQGEwJVUzEPMA0tMVT8QtPHRh8jrdkGA1UEChMGDV3QQDExBBKW
... content of root CA certificate ...
o/ufQJQWUCyziar1hem9uMRkwFwYVPSHCb2XV4cdFyQzR1KldZwgJcIQ6XUDgHaa
5MsI+yMRQ+hDaXJiobldXgjUka642M4UwtBV8oK2xJNDd2ZhwLnoQdeXeGADKkpy
rqXRfKoQnoZsG4q5WTP46EXAMPLE
-----END CERTIFICATE-----
```

### 在已建立的閘道上設定 HTTPS 代理
<a name="manage-trust-stores-proxy_proxy-configuration"></a>

您可以連接至連接埠 443 而非連接埠 8883，將代理支援新增至已建立的閘道。如需使用代理伺服器的詳細資訊，請參閱《 *AWS IoT Greengrass Version 2 開發人員指南*》中的在[連接埠 443 上或透過網路代理連線](https://docs.aws.amazon.com/greengrass/v2/developerguide/configure-greengrass-core-v2.html#configure-alpn-network-proxy)。如果您建立新的閘道，您可以在閘道安裝期間設定代理組態。如需詳細資訊，請參閱[在 AWS IoT SiteWise Edge 閘道安裝期間設定代理設定](manage-trust-stores-proxy_config.md)。

當您在 SiteWise Edge AWS IoT Greengrass 上使用 HTTPS 代理搭配 時，軟體會根據提供的 URL 在 HTTP 和 HTTPS 之間自動選擇代理連線。

**重要**  
在嘗試透過 HTTPS 代理連線之前，更新所有必要的信任存放區。

## 設定以 Java 為基礎的元件信任存放區
<a name="manage-trust-stores-proxy_java-based-components"></a>

對於資料處理套件中的 IoT SiteWise 發佈者、IoT SiteWise OPC UA 收集器和 Java 服務，預設 Java 信任存放區位置為 `$JAVA_HOME/jre/lib/security/cacerts`

**新增憑證**

1. 建立 檔案以存放代理伺服器的憑證，例如 `proxy.crt`。
**注意**  
使用代理伺服器的憑證提前建立檔案。

1. 使用下列命令將檔案新增至 Java 的信任存放區：

   ```
   sudo keytool -import -alias proxyCert -keystore /usr/lib/jvm/java-11-openjdk-amd64/lib/security/cacerts -file proxy.crt
   ```

1. 出現提示時，請使用預設密碼： `changeit`

## 系統層級元件信任存放區組態
<a name="manage-trust-stores-proxy_system-level-components"></a>

對於以 Rust、Go 和其他使用系統信任存放區的語言撰寫的元件：

------
#### [ Linux ]

Linux 系統：將憑證新增至 `/etc/ssl/certs/ca-certificates.crt`

------
#### [ Windows ]

Microsoft Windows 系統：若要設定信任存放區，請遵循 *Microsoft Ignite* 文件中的[憑證存放區](https://learn.microsoft.com/en-us/windows-hardware/drivers/install/certificate-stores)程序。

Windows 提供多個憑證存放區，包括使用者和電腦範圍的個別存放區，每個都有數個子存放區。對於大多數 SiteWise Edge 設定，我們建議將憑證新增至`COMPUTER | Trusted Root Certification Authorities`存放區。不過，根據您的特定組態和安全性需求，您可能需要使用不同的存放區。

------

## 對信任存放區問題進行故障診斷
<a name="manage-trust-stores-proxy_trust-stores-troubleshooting"></a>

如需解決 SiteWise Edge 閘道相關信任存放區問題的詳細資訊，請參閱 [信任存放區問題](troubleshooting-gateway.md#troubleshoot-trust-stores)。

# 邊緣上的 AWS IoT SiteWise APIs
<a name="edge-apis"></a>

AWS IoT SiteWise 提供其 APIs 的子集，以及邊緣特定的 APIs，可與部署在邊緣的資產模型及其關聯資產進行無縫互動。這些資產模型必須設定為在邊緣上執行。如需詳細資訊，請參閱 [設定用於 SiteWise Edge 上資料處理的資產模型](edge-processing.md#process-gateway-data-edge) 以取得此設定程序的詳細說明。

設定這些 APIs之後，您可以擷取資產模型和個別資產的完整資料。擷取資產模型、資產、儀表板、入口網站和專案資訊可協助您監控部署的入口網站和儀表板，以及存取在邊緣層級收集的資產資料。這會在您的網路中提供與 互動的中央主機， AWS IoT SiteWise 而不需要 Web API 呼叫。

**Topics**
+ [

# 所有可用的 AWS IoT SiteWise Edge 裝置 APIs
](edge-apis-available.md)
+ [

# 與邊緣裝置搭配使用的僅限 AWS IoT SiteWise APIs
](edge-local-apis.md)
+ [

# 在 AWS IoT SiteWise Edge APIs上啟用 CORS
](enable-cors-edge-apis.md)
+ [

# 設定 AWS IoT SiteWise Edge 的工作階段逾時
](edge-apis-session-timeout.md)
+ [

# 教學課程：列出 AWS IoT SiteWise Edge 閘道上的資產模型
](edge-apis-tutorial.md)

# 所有可用的 AWS IoT SiteWise Edge 裝置 APIs
<a name="edge-apis-available"></a>

AWS IoT SiteWise 提供各種 APIs以在邊緣裝置上使用，讓您可以在裝置上於本機完成任務。一些可用的邊緣 APIs包括擷取資產模型、建立和更新資產屬性，以及將資料串流傳送至雲端。透過利用這些 APIs，您可以建置可在間歇性或有限網路連線的環境中操作的解決方案。

## AWS IoT SiteWise APIs
<a name="edge-apis-available-sw"></a>

下列 AWS IoT SiteWise APIs可在邊緣裝置上使用：
+ [ListAssetModels](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_ListAssetModels.html)
+ [DescribeAssetModel](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_DescribeAssetModel.html)
+ [ListAssets](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_ListAssets.html)
+ [DescribeAsset](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_DescribeAsset.html)
+ [DescribeAssetProperty](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_DescribeAssetProperty.html)
+ [ListAssociatedAssets](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_ListAssociatedAssets.html)
+ [GetAssetPropertyAggregates](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_GetAssetPropertyAggregates.html)
+ [GetAssetPropertyValue](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_GetAssetPropertyValue.html)
+ [GetAssetPropertyValueHistory](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_GetAssetPropertyValueHistory.html)
+ [ListDashboards](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_ListDashboards.html)
+ [ListPortals](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_ListPortals.html)
+ [ListProjectAssets](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_ListProjectAssets.html)
+ [ListProjects](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_ListProjects.html)
+ [DescribeDashboard](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_DescribeDashboard.html)
+ [DescribePortal](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_DescribePortal.html)
+ [DescribeProject](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_DescribeProject.html)

## 可用的僅限邊緣 APIs
<a name="edge-apis-available-local"></a>

下列 APIs會在本機用於邊緣的裝置：
+ [驗證](edge-local-apis.md#edge-local-apis-authenticate) – 使用此 API 取得您將用來進行 API 呼叫的 SigV4 臨時登入資料。

# 與邊緣裝置搭配使用的僅限 AWS IoT SiteWise APIs
<a name="edge-local-apis"></a>

除了邊緣上可用的 AWS IoT SiteWise APIs 之外，還有特定邊緣的 API。這些邊緣規格 APIs 如下所述。

## 驗證
<a name="edge-local-apis-authenticate"></a>

從 SiteWise Edge 閘道取得憑證。您需要新增本機使用者，或使用 LDAP 或 Linux 使用者集區連線到您的系統。如需新增使用者的詳細資訊，請參閱 [LDAP](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/manage-gateways-ggv2.html#opshub-app) 或 [Linux 使用者集區](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/manage-gateways-ggv2.html#opshub-app)。

### 請求語法
<a name="authenticate-request-syntax"></a>

```
POST /authenticate HTTP/1.1
Content-type: application/json
{
  "username": "string",
  "password": "string",
  "authMechanism": "string"
}
```

### URI 請求參數
<a name="authenticate-request-parameters"></a>

請求不會使用任何 URI 參數。

### 請求內文
<a name="authenticate-request-body"></a>

請求接受採用 JSON 格式的下列資料。

**使用者名稱**  
用來驗證請求呼叫的使用者名稱。  
類型：字串  
必要：是

**password**  
請求登入資料之使用者的密碼。  
類型：字串  
必要：是

**authMechanism**  
在主機中驗證此使用者的身分驗證方法。  
類型：字串  
有效值：`ldap`、`linux`、`winnt`  
必要：是

### 回應語法
<a name="authenticate-response-syntax"></a>

```
HTTP/1.1 200
Content-type: application/json
{
  "accessKeyId": "string",
  "secretAccessKey": "string",
  "sessionToken": "string",
  "region": "edge"
}
```

### 回應元素
<a name="authenticate-response-elements"></a>

如果動作成功，則服務傳回 HTTP 200 回應。

下列資料會以 JSON 格式傳回。

**accessKeyId**  
識別暫時安全登入資料的存取金鑰 ID。  
長度限制：長度下限為 16。長度上限為 128。  
模式：`[\w]*`

**secretAccessKey**  
可用來簽署請求的私密存取金鑰。  
類型：字串

**sessionToken**  
使用者必須傳遞至服務 API 才能使用臨時登入資料的字符。  
類型：字串

**region**  
您為 API 呼叫設定目標的區域。  
類型：CONSTANT - `edge`

### 錯誤
<a name="authenticate-errors"></a>

**IllegalArgumentException**  
請求被拒絕，因為提供的內文文件格式不正確。錯誤訊息說明特定錯誤。  
HTTP 狀態碼：400

**AccessDeniedException**  
根據目前的身分提供者，使用者沒有有效的登入資料。錯誤訊息說明身分驗證機制。  
HTTP 狀態碼：403

**TooManyRequestsException**  
請求已達到其身分驗證嘗試的限制。錯誤訊息包含等待直到進行新的身分驗證嘗試的時間量。  
HTTP 狀態碼：429

# 在 AWS IoT SiteWise Edge APIs上啟用 CORS
<a name="enable-cors-edge-apis"></a>

在 AWS IoT SiteWise Edge APIs 上啟用 CORS （跨來源資源共享） 可讓 Web 應用程式直接與不同網域的 APIs 通訊。這可實現無縫整合、即時資料交換和跨網域資料存取，無需中介伺服器或解決方法。您可以將 CORS 設定設定為指定允許的原始伺服器，以確保受控制的跨來源存取。

**注意**  
CORS 適用於 3.3.1 版和更新版本 此功能適用於 3.3.1 版和更新版本`aws.iot.SiteWiseEdgeProcessor`元件。如需詳細資訊，請參閱《 *AWS IoT Greengrass Version 2 開發人員指南*》中的[AWS IoT SiteWise 處理器](https://docs.aws.amazon.com/greengrass/v2/developerguide/iotsitewise-processor-component.html)。

**在 SiteWise Edge APIs上啟用 CORS**

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

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

1. 選取您要為其啟用 CORS 的 SiteWise Edge 閘道。您可以在 AWS IoT Greengrass V2 部署類型上啟用 CORS。

1. 在**閘道組態**區段中，選擇相關聯的 **Greengrass 核心裝置**。

1. 在**部署**索引標籤的 **Greengrass 裝置**下，選取適當的部署連結。

1. 在**動作**下選擇**修訂**，然後選擇**修訂部署**。
**重要**  
建立已啟用修訂 CORS 的組態會取代裝置目前的組態。

1. 在**步驟 1 指定目標**中，提供選用**的名稱**來識別部署。

1. 在**步驟 2 中，選取元件 - 選用**，您可以依原狀保留所有目前的選擇，然後選擇**下一步**。

1. 在**步驟 3 中，設定元件 - 選用**，選取 **aws.iot.SiteWiseEdgeProcessor**，然後選擇**設定元件**。

1. 在組態更新區段中，於要合併的組態下，輸入下列 JSON：

   ```
   {
       "AWS_SITEWISE_EDGE_ACCESS_CONTROL_ALLOW_ORIGIN": "*"
   }
   ```
**注意**  
使用 `*`作為 的值`AWS_SITEWISE_EDGE_ACCESS_CONTROL_ALLOW_ORIGIN`允許所有原始伺服器。對於生產環境，建議指定確切的原始URLs 以提高安全性。

1. 選擇**確認**。

1. 選擇**下一步**繼續其餘步驟，直到您抵達**Step5，檢閱**為止。

1. 檢閱您的組態變更，然後選擇**部署**，將變更套用至 SiteWise Edge 閘道。
**注意**  
或者，您可以透過將全域環境變數設定為 AWS IoT SiteWise 閘道`*`上的 `AWS_SITEWISE_EDGE_ACCESS_CONTROL_ALLOW_ORIGIN` 來啟用 CORS。

**注意**  
對於已驗證的代理， `userinfo` 必須包含在代理組態的 `url` 欄位中，而不是做為分隔的 `username`和 `password` 欄位。

部署完成後，會在 SiteWise Edge API 上啟用 CORS，允許指定的原始伺服器向 API 提出跨來源請求。

# 設定 AWS IoT SiteWise Edge 的工作階段逾時
<a name="edge-apis-session-timeout"></a>

SiteWise Edge 可讓您設定 SiteWise Edge API 的工作階段逾時。此功能透過在指定的時段後自動終止非作用中工作階段來增強安全性。本節將引導您使用 設定工作階段逾時的程序 AWS IoT SiteWise 主控台。

**注意**  
工作階段逾時組態適用於 `aws.iot.SiteWiseEdgeProcessor` 元件的 3.4.0 版和更新版本。如需詳細資訊，請參閱《 *AWS IoT Greengrass Version 2 開發人員指南*》中的[AWS IoT SiteWise 處理器](https://docs.aws.amazon.com/greengrass/v2/developerguide/iotsitewise-processor-component.html)。

**設定 SiteWise Edge 閘道的工作階段逾時**

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

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

1. 選擇您要設定工作階段逾時的 SiteWise Edge 閘道。
**注意**  
您可以在 AWS IoT Greengrass V2 部署類型上設定工作階段逾時。

1. 在**閘道組態**區段中，選擇相關聯的 **Greengrass 核心裝置**。

1. 在**部署**索引標籤的 **Greengrass 裝置**下，選取適當的部署連結。

1. 在**動作**下選擇**修訂**。閱讀警告，然後選擇**修訂部署**。
**重要**  
建立修訂的工作階段逾時組態會取代裝置目前的組態。

1. 在**步驟 1 指定目標**中，提供選用**的名稱**以識別修訂後的部署，然後選擇**下一步**。

1. 在**步驟 2 中，選取元件 - 選用**，您可以依原狀保留所有目前的選擇，然後選擇**下一步**。

1. 在**步驟 3 中，設定元件 - 選用**，選取 **aws.iot.SiteWiseEdgeProcessor**，然後選擇**設定元件**。

1. 在**組態更新**區段的**要合併的組態**下，輸入下列 JSON：

   ```
   {
       "AWS_SITEWISE_EDGE_SESSION_TIMEOUT_MINUTES": "240"
   }
   ```

1. 以分鐘`AWS_SITEWISE_EDGE_SESSION_TIMEOUT_MINUTES`為單位設定 的值。工作階段逾時值可以是 1 分鐘到 10080 分鐘 (7 天）。預設值為 240 分鐘 (4 小時）。

1. 選擇**確認**。

1. 選擇**下一步**繼續其餘步驟，直到您抵達步驟 5 **檢閱**為止。

1. 檢閱您的組態變更，然後選擇**部署**，將變更套用至 SiteWise Edge 閘道。

**注意**  
或者，您也可以在 SiteWise Edge 閘道上將全域環境變數 **AWS\$1SITEWISE\$1EDGE\$1SESSION\$1TIMEOUT\$1MINUTES** 設定為所需的值 （以分鐘為單位），以設定工作階段逾時。

部署完成後，新的工作階段逾時組態會套用至 SiteWise Edge API。

# 教學課程：列出 AWS IoT SiteWise Edge 閘道上的資產模型
<a name="edge-apis-tutorial"></a>

您可以使用一部分的可用 AWS IoT SiteWise APIs 以及邊緣特定的 APIs，與邊緣上的資產模型及其資產互動。本教學課程將逐步引導您取得 AWS IoT SiteWise Edge 閘道的臨時登入資料，以及 SiteWise Edge 閘道上的資產模型清單。

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

在本教學課程中，您可以使用各種工具。若要使用這些工具，請確定已安裝對應的先決條件。

為了完成本教學，您需要以下項目：
+ 部署和執行中的 [AWS IoT SiteWise Edge 自我託管閘道需求](configure-gateway-ggv2.md)
+ 透過連接埠 443 存取相同網路中的 SiteWise Edge 閘道。
+ 已安裝 [OpenSSL](https://www.openssl.org/) 
+ (AWS OpsHub 適用於 AWS IoT SiteWise) [AWS OpsHubAWS IoT SiteWise 應用程式的](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/manage-gateways-ggv2.html#opshub-app)
+ 已安裝 (curl) [curl](https://ec.haxx.se/install/) 
+ 已安裝 (Python) [urllib3](https://urllib3.readthedocs.io/en/stable/index.html) 
+ (Python) 已安裝 [Python3](https://www.python.org/downloads/) 
+ (Python) 已安裝 [Boto3](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html) 
+ (Python) 已安裝 [BotoCore](https://botocore.amazonaws.com/v1/documentation/api/latest/index.html) 

## 步驟 1：取得 SiteWise Edge 閘道服務簽署的憑證
<a name="edge-apis-tutorial-gateway-cert"></a>

若要建立與 SiteWise Edge 閘道上可用 APIs的 TLS 連線，您需要信任的憑證。您可以使用 OpenSSL 或 AWS OpsHub 產生此憑證 AWS IoT SiteWise。

------
#### [ OpenSSL ]

**注意**  
您需要安裝 [OpenSSL](https://www.openssl.org/) 才能執行此命令。

開啟終端機並執行下列命令，從 SiteWise Edge 閘道取得已簽署的憑證。`<sitewise_gateway_ip>` 將 取代為 SiteWise Edge 閘道的 IP。

```
openssl s_client -connect <sitewise_gateway_ip>:443 </dev/null 2>/dev/null | openssl x509 -outform PEM > GatewayCert.pem
```

------
#### [ AWS OpsHub for AWS IoT SiteWise ]

您可以使用 AWS OpsHub AWS IoT SiteWise。如需詳細資訊，請參閱[管理 SiteWise Edge 閘道](manage-gateways-ggv2.md)。

------

本教學課程使用已下載 SiteWise Edge 閘道憑證的絕對路徑。執行下列命令以匯出憑證的完整路徑，將 取代`<absolute_path_to_certificate>`為憑證的路徑：

```
export PATH_TO_CERTIFICATE='<absolute_path_to_certificate>'
```

## 步驟 2：取得 SiteWise Edge 閘道主機名稱
<a name="edge-apis-tutorial-gateway-hostname"></a>

**注意**  
您需要安裝 [OpenSSL](https://www.openssl.org/) 才能執行此命令。

若要完成教學課程，您需要 SiteWise Edge 閘道的主機名稱。若要取得 SiteWise Edge 閘道的主機名稱，請執行下列動作，`<sitewise_gateway_ip>`將 取代為 SiteWise Edge 閘道的 IP：

```
openssl s_client -connect <sitewise_gateway_ip>:443 </dev/null 2>/dev/null | grep -Po 'CN = \K.*'| head -1
```

執行下列命令以匯出主機名稱以供日後使用，`<your_edge_gateway_hostname>`將 取代為 SiteWise Edge 閘道的主機名稱：

```
export GATEWAY_HOSTNAME='<your_edge_gateway_hostname>'
```

## 步驟 3：取得 SiteWise Edge 閘道的臨時登入資料
<a name="edge-apis-tutorial-temporary-credentials"></a>

現在您已擁有已簽署的憑證和 SiteWise Edge 閘道的主機名稱，您需要取得暫時憑證，才能在閘道上執行 APIs。您可以透過 取得這些登入資料， AWS OpsHub AWS IoT SiteWise 或使用 APIs 直接從 SiteWise Edge 閘道取得這些登入資料。

**重要**  
登入資料每隔 4 小時過期，因此您應該在 SiteWise Edge 閘道上使用 APIs之前取得登入資料。請勿快取登入資料超過 4 小時。

### 使用 AWS OpsHub for 取得臨時登入資料 AWS IoT SiteWise
<a name="edge-apis-tutorial-temp-creds-opshub"></a>

**注意**  
您需要安裝[AWS OpsHubAWS IoT SiteWise 應用程式的 ](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/manage-gateways-ggv2.html#opshub-app)。

若要使用 AWS OpsHub 讓 AWS IoT SiteWise 應用程式取得您的臨時登入資料，請執行下列動作：

1. 登入應用程式。

1. 選擇**設定**。

1. 針對**身分驗證**，選擇**複製登入**資料。

1. 展開適合您環境的選項，然後選擇**複製**。

1. 儲存登入資料以供日後使用。

### 使用 SiteWise Edge 閘道 API 取得臨時憑證
<a name="edge-apis-tutorial-temp-creds-api"></a>

若要使用 SiteWise Edge 閘道 API 取得您可以使用 Python 指令碼或 curl 的臨時登入資料，您必須先擁有 SiteWise Edge 閘道的使用者名稱和密碼。SiteWise Edge 閘道使用 SigV4 身分驗證和授權。如需新增使用者的詳細資訊，請參閱 [LDAP](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/manage-gateways-ggv2.html#opshub-app) 或 [Linux 使用者集區](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/manage-gateways-ggv2.html#opshub-app)。這些登入資料將用於下列步驟，以在 SiteWise Edge 閘道上取得使用 AWS IoT SiteWise APIs。

------
#### [ Python ]

**注意**  
您需要安裝 [urllib3](https://urllib3.readthedocs.io/en/stable/index.html) 和 [Python3](https://www.python.org/downloads/)。

**使用 Python 取得登入資料**

1. 建立名為 **get\$1credentials.py** 的檔案，並將下列程式碼複製到其中。

   ```
   '''
   The following demonstrates how to get the credentials from the SiteWise Edge gateway. You will need to add local users or connect your system to LDAP/AD
   https://docs.aws.amazon.com/iot-sitewise/latest/userguide/manage-gateways-ggv2.html#create-user-pool
   
   Example usage:
       python3 get_credentials.py -e https://<gateway_hostname> -c <path_to_certificate> -u '<gateway_username>' -p '<gateway_password>' -m '<method>'
   '''
   import urllib3
   import json
   import urllib.parse
   import sys
   import os
   import getopt
   
   """
   This function retrieves the AWS IoT SiteWise Edge gateway credentials.
   """
   def get_credentials(endpoint,certificatePath, user, password, method):
       http = urllib3.PoolManager(cert_reqs='CERT_REQUIRED', ca_certs= certificatePath)
       encoded_body = json.dumps({
           "username": user,
           "password": password,
           "authMechanism": method,
       })
   
       url =  urllib.parse.urljoin(endpoint, "/authenticate")
   
       response = http.request('POST', url,
           headers={'Content-Type': 'application/json'}, 
           body=encoded_body)
       
       if response.status != 200:
           raise Exception(f'Failed to authenticate! Response status {response.status}')
   
       auth_data = json.loads(response.data.decode('utf-8'))
   
       accessKeyId = auth_data["accessKeyId"]
       secretAccessKey = auth_data["secretAccessKey"]
       sessionToken = auth_data["sessionToken"]
       region = "edge"
   
       return accessKeyId, secretAccessKey, sessionToken, region
   
   def print_help():
       print('Usage:')
       print(f'{os.path.basename(__file__)} -e <endpoint> -c <path/to/certificate> -u <user> -p <password> -m <method> -a <alias>')
       print('')
       print('-e, --endpoint   edge gateway endpoint. Usually the Edge gateway hostname.')
       print('-c, --cert_path path to downloaded gateway certificate')
       print('-u, --user       Edge user')
       print('-p, --password   Edge password')
       print('-m, --method     (Optional) Authentication method (linux, winnt, ldap), default is linux')
       sys.exit()
   
   
   def parse_args(argv):
       endpoint = ""
       certificatePath = None
       user = None
       password = None
       method = "linux"
       
       try:
           opts, args = getopt.getopt(argv, "he:c:u:p:m:", ["endpoint=","cert_path=", "user=", "password=", "method="])
       except getopt.GetoptError:
           print_help()
   
       for opt, arg in opts:
           if opt == '-h':
               print_help()
           elif opt in ("-e", "--endpoint"):
               endpoint = arg
           elif opt in ("-u", "--user"):
               user = arg
           elif opt in ("-p", "--password"):
               password = arg
           elif opt in ("-m", "--method"):
               method = arg.lower()
           elif opt in ("-c", "--cert_path"):
               certificatePath = arg
   
       if method not in ['ldap', 'linux', 'winnt']:
           print("not valid method parameter, required are ldap, linux, winnt")
           print_help()
   
       if (user == None or password == None):
           print("To authenticate against edge user, password have to be passed together, and the region has to be set to 'edge'")
           print_help()
       
       if(endpoint == ""):
           print("You must provide a valid and reachable gateway hostname")
           print_help()
   
       return endpoint,certificatePath, user, password, method
   
   
   def main(argv):
       # get the command line args
       endpoint, certificatePath, user, password, method = parse_args(argv)
       
       accessKeyId, secretAccessKey, sessionToken, region=get_credentials(endpoint, certificatePath, user, password, method)
   
       print("Copy and paste the following credentials into the shell, they are valid for 4 hours:")
       print(f"export AWS_ACCESS_KEY_ID={accessKeyId}")
       print(f"export AWS_SECRET_ACCESS_KEY={secretAccessKey}")
       print(f"export AWS_SESSION_TOKEN={sessionToken}")
       print(f"export AWS_REGION={region}")
       print()
       
       
       
   
   if __name__ == "__main__":
      main(sys.argv[1:])
   ```

1. 從終端機使用您建立`<gateway_password>`的登入資料取代 `<gateway_username>`和 ，執行 **get\$1credentials.py**。

   ```
   python3 get_credentials.py -e https://$GATEWAY_HOSTNAME -c $PATH_TO_CERTIFICATE -u '<gateway_username>' -p '<gateway_password>' -m 'linux'
   ```

------
#### [ curl ]

**注意**  
您需要安裝 [curl](https://ec.haxx.se/install/)。

**使用 curl 取得登入資料**

1. 從終端機執行下列命令，將 <gateway\$1username> 和 <gateway\$1password> 取代為您建立的登入資料。

   ```
   curl --cacert $PATH_TO_CERTIFICATE --location \
   -X POST https://$GATEWAY_HOSTNAME:443/authenticate \
   --header 'Content-Type: application/json' \
   --data-raw '{
       "username": "<gateway_username>",
       "password": "<gateway_password>",
       "authMechanism": "linux"
   }'
   ```

   回應應如下所示：

   ```
   {
       "username": "sweuser",
       "accessKeyId": "<accessKeyId>",
       "secretAccessKey": "<secretAccessKey>",
       "sessionToken": "<sessionToken>",
       "sessionExpiryTime": "2022-11-17T04:51:40.927095Z",
       "authMechanism": "linux",
       "role": "edge-user"
   }
   ```

1. 從您的終端機中執行下列命令。

   ```
   export AWS_ACCESS_KEY_ID=<accessKeyId>
   export AWS_SECRET_ACCESS_KEY=<secretAccessKey>
   export AWS_SESSION_TOKEN=<sessionToken>
   export AWS_REGION=edge
   ```

------

## 步驟 4：取得 SiteWise Edge 閘道上的資產模型清單
<a name="edge-apis-tutorial-get-asset-models"></a>

現在您已擁有已簽署的憑證、SiteWise Edge 閘道主機名稱和 SiteWise Edge 閘道的臨時憑證，您可以使用 `ListAssetModels` API 取得 SiteWise Edge 閘道上的資產模型清單。

------
#### [ Python ]

**注意**  
您需要安裝 [Python3](https://www.python.org/downloads/)、[Boto3](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html) 和 [BotoCore](https://botocore.amazonaws.com/v1/documentation/api/latest/index.html)。

**使用 Python 取得資產模型的清單**

1. 建立名為 **list\$1asset\$1model.py** 的檔案，並將下列程式碼複製到其中。

   ```
   import json
   import boto3
   import botocore
   import os
   
   # create the client using the credentials
   client = boto3.client("iotsitewise", 
       endpoint_url= "https://"+ os.getenv("GATEWAY_HOSTNAME"),
       region_name=os.getenv("AWS_REGION"), 
       aws_access_key_id=os.getenv("AWS_ACCESS_KEY_ID"), 
       aws_secret_access_key=os.getenv("AWS_SECRET_ACCESS_KEY"), 
       aws_session_token=os.getenv("AWS_SESSION_TOKEN"),
       verify=os.getenv("PATH_TO_CERTIFICATE"),
       config=botocore.config.Config(inject_host_prefix=False))
   
   # call the api using local credentials
   response = client.list_asset_models()
   print(response)
   ```

1. 從終端機執行 **list\$1asset\$1model.py**。

   ```
   python3 list_asset_model.py
   ```

------
#### [ curl ]

**注意**  
您需要安裝 [curl](https://ec.haxx.se/install/)。

**使用 curl 取得資產模型的清單**

從終端機執行下列命令。

```
curl \
  --request GET https://$GATEWAY_HOSTNAME:443/asset-models \
  --cacert $PATH_TO_CERTIFICATE \
  --aws-sigv4 "aws:amz:edge:iotsitewise" \
  --user "$AWS_ACCESS_KEY_ID:$AWS_SECRET_ACCESS_KEY" \
  -H "x-amz-security-token:$AWS_SESSION_TOKEN"
```

回應應如下所示：

```
{
    "assetModelSummaries": [
        {
            "arn": "arn:aws:iotsitewise:{region}:{account-id}:asset-model/{asset-model-id}",
            "creationDate": 1.669245291E9,
            "description": "This is a small example asset model",
            "id": "{asset-model-id}",
            "lastUpdateDate": 1.669249038E9,
            "name": "Some Metrics Model",
            "status": {
                "error": null,
                "state": "ACTIVE"
            }
        },
        .
        .
        .
    ],
    "nextToken": null
}
```

------

# 在 上託管 SiteWise Edge 閘道 Siemens Industrial Edge
<a name="sitewise-edge-on-siemens"></a>

使用 Edge 應用程式在 Siemens Industrial AWS IoT SiteWise Edge 上託管您的閘道。如同 一樣 AWS IoT Greengrass V2，您可以使用 上的 SiteWise Edge 最佳化製造程序或改善操作工作流程Siemens Industrial Edge。

您可以在裝置上執行 SiteWise Edge 閘道，將資料從 Siemens Industrial Edge 裝置擷取至 AWS 您的帳戶。若要這樣做，請向 SiteWise AWS IoT SiteWise Edge 支援團隊請求存取 Edge 應用程式。然後，使用 Siemens Industrial Edge 裝置的部署目標建立新的 SiteWise Edge 閘道資源。 ****接著，下載組態檔案，並透過Siemens Industrial Edge Management入口網站將其上傳至您的應用程式。如需在 上執行應用程式的詳細資訊Siemens Industrial Edge，包括如何設定所需Siemens資源，請參閱 Siemens 文件中的[什麼是 Industrial Edge？](https://docs.eu1.edge.siemens.cloud/)。

**注意**  
Siemens 不是 SiteWise Edge 的廠商或供應商。Siemens Industrial Edge Marketplace 是一個獨立的市場。

**Topics**
+ [

## 安全
](#sa-security)
+ [

## Siemens Secure Storage 和 AWS IoT SiteWise Edge 應用程式
](#sa-secure-storage)
+ [

## Siemens Industrial Edge 裝置目的地
](#siemens-destinations)
+ [

## 從預覽應用程式遷移
](#sa-migrate)
+ [

## 疑難排解
](#sa-troubleshoot)
+ [

## AWS IoT SiteWise Edge 應用程式變更日誌
](#sa-changelog)
+ [

# AWS IoT SiteWise Edge 應用程式的需求
](siemens-app-gateway-requirements.md)
+ [

# 建立 的閘道 Siemens Industrial Edge
](sa-create-config.md)
+ [

# Siemens Databus user 為應用程式建立
](sa-databus-user.md)
+ [

# 存取 AWS IoT SiteWise Edge 應用程式
](sa-get-app.md)
+ [

# 在Siemens裝置上安裝應用程式
](sa-install-app.md)
+ [

# 更新 AWS IoT SiteWise Edge 應用程式組態
](sa-update-config.md)
+ [

# AWS IoT SiteWise – 使用此服務所產生的資料
](sa-data-legal.md)

## 安全
<a name="sa-security"></a>

作為 AWS我們客戶和合作夥伴之間[共同責任模型](https://aws.amazon.com/compliance/shared-responsibility-model/)的一部分，以下說明誰負責不同的安全層面：

**客戶責任**  
+ 審核合作夥伴。
+ 設定提供給合作夥伴的網路存取權。
+ 實體保護執行 SiteWise Edge 的裝置。

**AWS 責任**  
+ 將合作夥伴與客戶 AWS 雲端資源隔離。

**合作夥伴責任**  
+ 使用安全預設值。
+ 透過修補程式和其他適當的更新，在一段時間內保護解決方案的安全。
+ 將客戶資料保密。
+ 審核合作夥伴市集中可用的其他應用程式。

## Siemens Secure Storage 和 AWS IoT SiteWise Edge 應用程式
<a name="sa-secure-storage"></a>

為了保護執行 AWS IoT SiteWise Edge 應用程式所需的登入資料和秘密， Siemens Industrial Edge提供機制來安全地將登入資料存放在裝置上。如果 AWS IoT SiteWise Edge 應用程式不支援安全存放這些登入資料，就無法在裝置上執行。缺少安全儲存支援所造成的執行失敗會記錄在日誌檔案中。

安裝和執行 AWS IoT SiteWise Edge 應用程式需要下列最低作業系統版本。將您的裝置升級至最新版本以安裝應用程式。
+ **對於虛擬裝置：**EVD 1.19 版或更新版本
+ **對於實體裝置：**IED-OS 2.2 版或更新版本

 在您升級裝置之前， 上的 AWS IoT SiteWise Edge 應用程式Siemens Industrial Edge不會執行。

## Siemens Industrial Edge 裝置目的地
<a name="siemens-destinations"></a>

在 上使用 AWS IoT SiteWise Edge 應用程式時Siemens Industrial Edge，目的地有助於在將資料傳送至 AWS IoT SiteWise 以進行進一步分析和分發之前準備資料。您可以使用 Amazon S3 或使用即時資料擷取來設定緩衝資料擷取的資料目的地設定。兩者都可讓您使用Siemens Industrial Edge裝置部署目標上的路徑篩選條件來訂閱 MQTT 主題。

閘道上的Siemens Industrial Edge部署目標支援兩種主要資料處理方法：
+ **AWS IoT SiteWise 即時設定** - 資料在收集 AWS IoT SiteWise 時直接傳送到
+ **AWS IoT SiteWise 使用 Amazon S3 設定緩衝** - 在傳送至 Amazon S3 之前，會批次暫時收集和存放資料

如需設定這些選項的詳細資訊，請參閱 [使用 Amazon S3 新增 AWS IoT SiteWise 緩衝目的地](destinations-buffered.md)和 [新增 AWS IoT SiteWise Edge 即時目的地](destinations-real-time.md)。

### 路徑篩選條件的字首
<a name="siemens-path-filters"></a>

使用Siemens Industrial Edge部署目標的閘道路徑篩選條件會結合主題和資料串流名稱，為您的資料建立唯一識別符。合併主題與資料串流名稱在Siemens Industrial Edge閘道中稱為**字首**。這與自我託管閘道不同，其中路徑篩選條件僅以 MQTT 主題為基礎。

**Example Siemens 資料串流的路徑篩選結構**  
Siemens 資料串流的典型路徑篩選條件包含主題路徑和資料串流名稱：  

```
ie/d/device1/application1/datastream1
```
其中：  
+ `ie/d/` 是 Siemens 資料串流所需的字首
+ `device1/application1` 代表階層路徑
+ `datastream1` 是特定資料串流名稱

**注意**  
使用Siemens Industrial Edge資料串流時，請確定您在路徑篩選條件中同時包含中繼資料 (`ie/m/`) 和資料 (`ie/d/`) 主題，以接收資料串流的完整資訊。

#### 目的地和路徑篩選條件
<a name="create-destination-summary"></a>

檢視下列主題，進一步了解啟用 MQTT 閘道中的目的地和路徑篩選條件：
+ [了解 AWS IoT SiteWise Edge 目的地](gw-destinations.md#source-destination)
+ [新增 AWS IoT SiteWise Edge 即時目的地](destinations-real-time.md)
+ [使用 Amazon S3 新增 AWS IoT SiteWise 緩衝目的地](destinations-buffered.md)
+ [了解 AWS IoT SiteWise Edge 目的地的路徑篩選條件了解路徑篩選條件](gw-destinations.md#destinations-path-filters)
+ [將路徑篩選條件新增至 AWS IoT SiteWise Edge 目的地](destinations-add-path-filters.md)
+ [管理 AWS IoT SiteWise Edge 目的地](destinations-manage.md)

## 從預覽應用程式遷移
<a name="sa-migrate"></a>

如果您在預覽階段Siemens Industrial Edge在 上執行 SiteWise Edge，您將需要從預覽版本 1.0.1 升級至最新版本。執行下列動作來遷移：

1. 建立新的 SiteWise Edge 閘道。如需詳細資訊，請參閱[建立 的閘道 Siemens Industrial Edge](sa-create-config.md)。

1. Siemens Databus user 為每個新閘道建立新的 。如需詳細資訊，請參閱[Siemens Databus user 為應用程式建立](sa-databus-user.md)。

1. 在您的 IED 上解除安裝 1.0.1 AWS IoT SiteWise Edge 版閘道應用程式。
**注意**  
當您重新設定 AWS IoT SiteWise Edge 應用程式預覽版本先前使用的 AWS IoT SiteWise 資產時，請準備資料流程中斷。保留資料歷史記錄時，當您重新安裝新的閘道時，可能會遺失資料。

1. 在 中刪除您在預覽期間建立的 SiteWise Edge 閘道[AWS IoT SiteWise 主控台](https://console.aws.amazon.com/iotsitewise/home?region=us-east-1#/gateway)。

1. 使用新的閘道組態檔案在 IED 上安裝 AWS IoT SiteWise Edge 閘道應用程式。如需詳細資訊，請參閱[在Siemens裝置上安裝應用程式](sa-install-app.md)。
**重要**  
安裝新的閘道會覆寫 SiteWise Edge 應用程式的預覽版本。安裝目前版本後，無法返回 1.0.1 版。

設定新的閘道和 之後Siemens Databus user，您的資料會流向 屬性。

您也可以直接從版本升級 SiteWise Edge 應用程式。不過，仍然需要新的閘道組態。

## 疑難排解
<a name="sa-troubleshoot"></a>

若要對Siemens Industrial Edge裝置上的 SiteWise Edge 閘道進行故障診斷，請參閱 [對 上的 AWS IoT SiteWise Edge 應用程式進行故障診斷 Siemens Industrial Edge](troubleshooting-gateway.md#troubleshoot-siemens-app)。

您也可以存取 [AWS re：Post](https://repost.aws) 來尋找問題的答案。

## AWS IoT SiteWise Edge 應用程式變更日誌
<a name="sa-changelog"></a>

下表說明 AWS IoT SiteWise Edge 應用程式每個版本中的變更。


|  **版本**  |  **變更**  | 
| --- | --- | 
| 3.0.1 |  錯誤修正和改善 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/iot-sitewise/latest/userguide/sitewise-edge-on-siemens.html)  | 
| 3.0.0 |  新功能 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/iot-sitewise/latest/userguide/sitewise-edge-on-siemens.html) 錯誤修正和改善 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/iot-sitewise/latest/userguide/sitewise-edge-on-siemens.html)  | 
| 2.0.1 |  錯誤修正和改善 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/iot-sitewise/latest/userguide/sitewise-edge-on-siemens.html) | 
|  2.0.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/iot-sitewise/latest/userguide/sitewise-edge-on-siemens.html)  | 
|  1.0.1  |  初始版本  | 

# AWS IoT SiteWise Edge 應用程式的需求
<a name="siemens-app-gateway-requirements"></a>

若要在 上執行 AWS IoT SiteWise EdgeSiemens Industrial Edge，您需要下列項目：
+ [Siemens Digital Exchange Platform](https://www.dex.siemens.com/) 帳戶。
+ Siemens Industrial Edge Hub (iehub) 帳戶。
+  Siemens Industrial Edge Management 執行個體。
  + IE 應用程式組態服務。若要進一步了解，請參閱 *Siemens Industrial Edge Management* 文件[https://docs.eu1.edge.siemens.cloud/get_started_and_operate/industrial_edge_management/how_to_setup_operate/vm/operation/app_projects/app_configurations/ie_application_configuration_service/installing_the_ie_acs_manually.html](https://docs.eu1.edge.siemens.cloud/get_started_and_operate/industrial_edge_management/how_to_setup_operate/vm/operation/app_projects/app_configurations/ie_application_configuration_service/installing_the_ie_acs_manually.html)中的 。
+ 存取 AWS IoT SiteWise Edge 應用程式的 2.0.1 版或更新版本。如需詳細資訊，請參閱[存取 AWS IoT SiteWise Edge 應用程式](sa-get-app.md)。
+ Siemens Industrial Edge 裝置 (IED) 或Siemens Industrial Edge虛擬裝置 (IEVD)。
  + 至少 15 GB 的磁碟空間，以滿足硬體需求。
  + 1 GB 的 RAM 以及額外的 1 GB 交換記憶體。
  + 裝置組態，以允許連接埠 443 和 8883 上的傳出流量。
  + x86-64 位元處理器。
  + Siemens Industrial Edge Management 1.13.10 版或更新版本。
  + 裝置符合Siemens Secure Storage要求。
    + 在虛擬裝置上，EVD 1.19 版或更新版本。
    + 在實體裝置上，IED-OS 2.2 版或更新版本。
  + Docker Compose 的最新版本。
  + Docker Engine 18.091 版或更新版本。
+ 必要的網域存取。如需詳細資訊，請參閱[AWS IoT SiteWise 端點](endpoints-and-quotas.md#endpoints)。

# 建立 的閘道 Siemens Industrial Edge
<a name="sa-create-config"></a>

在您擁有適當的 Siemens 帳戶和 IEM 執行個體之後，您可以建立部署類型的 SiteWise Edge 閘道 **Siemens Industrial Edge 裝置**。

**注意**  
請確定您符合在 上執行裝置的所有需求Siemens Industrial Edge Management。如需詳細資訊，請參閱[AWS IoT SiteWise Edge 應用程式的需求](siemens-app-gateway-requirements.md)。

**建立組態檔案**

1. <a name="sitewise-open-console"></a>導覽至 [AWS IoT SiteWise 主控台](https://console.aws.amazon.com/iotsitewise/)。

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

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

1. 針對**部署類型**，選擇 **Siemens Industrial Edge 裝置**。

1. 輸入 SiteWise Edge 閘道的名稱，或使用 產生的名稱 AWS IoT SiteWise。

1. （選用） 在**進階組態**下，執行下列動作：

   1. 輸入 AWS IoT Core 物件的名稱，或使用 產生的名稱 AWS IoT SiteWise。

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

1. 在**產生 SiteWise Edge 閘道組態檔案**對話方塊中，選擇**產生並下載**。 AWS IoT SiteWise 自動產生組態檔案，您將用來設定 AWS IoT SiteWise Edge 應用程式。
**重要**  
如果您需要還原 AWS IoT SiteWise Edge 應用程式執行個體，請將閘道組態檔案保留為備份。為此，您可以將 SiteWise Edge 閘道組態檔案安全地儲存在 [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) 中。Secrets Manager 可安全地存放、管理和擷取敏感資訊。如果您放錯或刪除此組態檔案，如果您需要復原 AWS IoT SiteWise Edge 應用程式執行個體，將無法重新連線至其原始閘道。您需要同時建立新的閘道和新的組態檔案。

# Siemens Databus user 為應用程式建立
<a name="sa-databus-user"></a>

AWS IoT SiteWise Edge on 從Siemens Databus應用程式Siemens Industrial Edge擷取資料。若要將 SiteWise Edge 連線至 Siemens Databus，您需要提供存取您要安全傳輸的資料Siemens Databus user的 AWS IoT SiteWise。若要開始，請建立 ，Siemens Databus user然後將登入資料提供給 SiteWise Edge 應用程式。

**建立 Siemens Databus user**

1. 在Siemens Industrial Edge Management執行個體中，選擇**平台應用程式**區段中的**邊緣管理**。

1. 選擇 **資料連線** 圖示。

1. 選取 **Databus**。您的連線裝置清單隨即顯示。

1. 選取要連線至 AWS IoT SiteWise Edge 應用程式的裝置。

1. 選擇**啟動**。Databus Configurator 您所選裝置的 隨即出現。

1. 在使用者下為您的 Edge 裝置建立**使用者**。如需建立使用者的詳細資訊，請參閱 *Siemens Industrial Edge Management* 文件中的[使用者](https://docs.eu1.edge.siemens.cloud/get_started_and_operate/industrial_edge_management/operation/iam/03_user-management.html)。

1. 選取Siemens Databus應可存取的主題。這些主題會限制 AWS IoT SiteWise Edge 可存取的內容。
**重要**  
Siemens Databus user 可存取 的所有主題都會發佈至 AWS IoT SiteWise。
**注意**  
Siemens Databus user需要同時存取資料和中繼資料主題。開頭為 的主題`ie/d`是資料主題。開頭為 的主題`ie/m`是中繼資料主題。成對共用主題，讓 SiteWise Edge 可以存取每個個別主題的資料和中繼資料。  

![\[顯示 Siemens 主題類型的螢幕擷取畫面。影像會圈出檔案路徑中分別以「ie/d」和「ie/m」開頭的部分。\]](http://docs.aws.amazon.com/zh_tw/iot-sitewise/latest/userguide/images/gateway-sa-topics.png)


1. 為您的Siemens Databus組態設定適當的許可。

建立Siemens Databus組態後，您可以在 上安裝 AWS IoT SiteWise Edge 應用程式Siemens Industrial Edge Management。如需詳細資訊，請參閱[在Siemens裝置上安裝應用程式](sa-install-app.md)。

您也可以選擇性地設定Siemens Industrial Edge閘道的目的地和路徑篩選條件。如需詳細資訊，請參閱[目的地和路徑篩選條件](gw-destinations.md)。

# 存取 AWS IoT SiteWise Edge 應用程式
<a name="sa-get-app"></a>

若要存取 上的 AWS IoT SiteWise Edge 應用程式Siemens Industrial Edge，[請傳送電子郵件](mailto:aws-iot-swe-siemens-app-support@amazon.com?subject=Access request for SiteWise Edge on Siemens Industrial Edge)請求 SiteWise Edge 支援團隊的存取權。

在您的電子郵件中包含下列資訊：
+ 您的姓名和聯絡資訊
+ 公司名稱
+ Siemens Industrial Edge 租戶 ID

# 在Siemens裝置上安裝應用程式
<a name="sa-install-app"></a>

傳送電子郵件給 SiteWise Edge 支援團隊以取得 AWS IoT SiteWise Edge 應用程式的存取權後Siemens Industrial Edge，請將應用程式指派給 執行個體Siemens Industrial Edge Management。然後，您可以在裝置上安裝 AWS IoT SiteWise Edge 應用程式。

**安裝 AWS IoT SiteWise Edge 應用程式**

1. 確認 中提供的Docker摘要Siemens Industrial Edge Management符合 中列出的最新版本[AWS IoT SiteWise Edge 應用程式變更日誌](sitewise-edge-on-siemens.md#sa-changelog)。

   如需尋找 Siemens Docker 摘要值的詳細資訊，請參閱 Siemens 文件*Siemens Industrial Edge的 裝置*中的[管理應用程式](https://docs.eu1.edge.siemens.cloud/get_started_and_operate/industrial_edge_device/operation/management.html#managing-an-app)。

   Siemens Industrial Edge Management 一次支援一個版本的 AWS IoT SiteWise Edge 應用程式。執行此步驟，以確保您在Siemens Industrial Edge裝置上安裝 AWS IoT SiteWise Edge 應用程式之前使用最新版本的應用程式。

1. 將 **AWS IoT SiteWise Edge** 應用程式指派給 Siemens Industrial Edge Management。如需詳細資訊，請參閱 Siemens 文件*工業邊緣管理*一節中的[管理應用程式](https://docs.eu1.edge.siemens.cloud/get_started_and_operate/industrial_edge_management/how_to_setup_operate/vm/operation/my_installed_apps/managing_an_app.html)。

1. 在 **Edge Management** 中，瀏覽 **AWS IoT SiteWise Edge** 的目錄，然後選擇它。

1. 選擇 **Install (安裝)**。
**注意**  
如果顯示**聯絡我們**按鈕，請選擇該按鈕，然後依照步驟請求存取 上的 AWS IoT SiteWise Edge 應用程式Siemens Industrial Edge。如需詳細資訊，請參閱[存取 AWS IoT SiteWise Edge 應用程式](sa-get-app.md)。

1. 在結構描述組態選項中選取 **Databus\$1Configuration**。

1. 輸入 Databus 組態****的**使用者名稱和密碼**。如需建立 的詳細資訊Siemens Databus user，請參閱 [Siemens Databus user 為應用程式建立](sa-databus-user.md)。

1. 選擇 **Databus\$1Configuration** 旁的小型圓形灰色核取記號圖示，將圖示變成綠色。
**注意**  
輸入組態只有在核取記號圖示從灰色變更為綠色時才適用。否則，會忽略輸入組態。  
![\[Siemens Databus Configurator 螢幕螢幕擷取畫面，顯示未完成的程序，並顯示灰色圓圈核取記號圖示。\]](http://docs.aws.amazon.com/zh_tw/iot-sitewise/latest/userguide/images/gateway-sa-gray-checkmark.png)  
![\[Siemens Databus Configurator 螢幕螢幕擷取畫面，顯示已完成的程序，並顯示綠色圓圈核取記號圖示。\]](http://docs.aws.amazon.com/zh_tw/iot-sitewise/latest/userguide/images/gateway-sa-green-checkmark.png)

1. 選擇**下一步**以移至**其他組態**，您可以在其中上傳閘道組態檔案。

1. 選擇 **SiteWise\$1Edge\$1Gateway\$1Config** 作為上傳閘道組態檔案的位置。
**注意**  
請確定您選擇 **SiteWise\$1Edge\$1Gateway\$1Config**，而不是 **SiteWise\$1Edge\$1Support\$1Config\$1Optional**。

1. 選取裝置以安裝應用程式。

1. 選擇**立即安裝**。

您可以選擇性地設定發佈者元件，將資料匯出至 AWS 雲端。如需詳細資訊，請參閱[設定 AWS IoT SiteWise 發佈者元件](configure-publisher-component.md)。

若要設定Siemens Industrial Edge閘道的目的地，請參閱 [目的地和路徑篩選條件](gw-destinations.md)。

# 更新 AWS IoT SiteWise Edge 應用程式組態
<a name="sa-update-config"></a>

在 上更新 AWS IoT SiteWise Edge 應用程式組態時，有幾件事需要考慮**Siemens Industrial Edge**。

**注意**  
 AWS IoT SiteWise Edge 應用程式組態的任何變更都需要重新啟動應用程式。

**重新啟動 AWS IoT SiteWise Edge 應用程式的原因**
+ Edge 應用程式的新 Siemens Databus user AWS IoT SiteWise 。
+ 閘道組態檔案 （您的 **SiteWise\$1Edge\$1Gateway\$1Config** 檔案） 的變更。
+ 代理組態更新 （也需要完整 IEVD 重新啟動）
+ 啟用偵錯日誌以偵錯問題

## 重新啟動應用程式
<a name="sa-restart-app"></a>

1. 在Siemens Industrial Edge Management執行個體中，選擇**平台應用程式**區段中的**邊緣管理**。

1. 選擇**我的已安裝應用程式**。

1. 選取 AWS IoT SiteWise Edge 應用程式。

1. 選擇**重新啟動**。

# AWS IoT SiteWise – 使用此服務所產生的資料
<a name="sa-data-legal"></a>

AWS IoT SiteWise 上的 Siemens Industrial Edge 將雲端功能擴展到工業邊緣環境，實現本機資料處理、分析和決策。SiteWise Edge 與 AWS IoT SiteWise 和其他 AWS 服務整合，以提供全方位的工業 AWS IoT 解決方案。

資料類型  
Siemens Industrial Edge 上的 SiteWise Edge 應用程式會產生應用程式效能、用量以及與其他 AWS 服務互動的資料，特別是 Amazon S3。

資料磁碟區和收集  
產生的資料量取決於您使用應用程式和服務的方式。

資料儲存體  
來自您應用程式的資料會安全地存放在 AWS 伺服器上。它以機器可讀取的格式儲存。

資料存取  
您可以透過 AWS 帳戶存取您的資料。您可以按照本使用者指南 [SiteWise Edge on Siemens ](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/sitewise-edge-on-siemens.html)中列出的說明下載資料的副本。對於應用程式的組態資料，您可以遵循本使用者指南[查詢工業資料](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/query-industrial-data.html)中的指示。如需大量資料存取和匯出的進一步指示，請參閱[執行大量操作匯出](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/running-bulk-operations-export.html)。

資料管理  
若要進一步了解應用程式的資料實務，請檢閱我們的[服務條款](https://aws.amazon.com/service-terms/)、[隱私權聲明](https://aws.amazon.com/privacy/)[和服務文件](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/what-is-sitewise.html)，其中包含有關如何管理資料的資料。

資料刪除  
如需資料保留和刪除選項的相關資訊，請參閱《 使用者指南》中的這些頁面：[管理資料儲存](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/manage-data-storage.html)、[刪除資料串流](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/delete-data-streams-method.html)，以及[刪除模型和資產](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/delete-assets-and-models.html)。

與他人共用資料  
您可以透過[識別和存取管理](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_third-party.html)程序，授權第三方存取您的 AWS 資源。 會在[AWS 隱私權聲明](https://aws.amazon.com/privacy/)中包含的有限情況下與第三方 AWS 共用個人資料。

需要協助嗎？  
請造訪[客戶支援](https://aws.amazon.com/contact-us/)以聯絡我們的支援團隊。這不會影響您根據相關法律提出投訴的權利。

資料持有者  
Amazon Web Services EMEA SARL， 38 Avenue John F. Powered， L-1855， Luxembourg

# 目的地和路徑篩選條件
<a name="gw-destinations"></a>

 AWS IoT SiteWise Edge 中的目的地提供靈活且有效率的方式來管理工業資料如何從邊緣裝置流向雲端。本節說明如何設定目的地、使用路徑篩選條件路由特定資料串流，以及為您的使用案例選擇正確的目的地類型。

您可以在啟用自我託管 MQTT 的 V3 閘道和與 上託管的 AWS IoT SiteWise Edge 應用程式搭配使用的閘道上使用目的地和路徑篩選條件Siemens Industrial Edge。目的地和路徑篩選條件不適用於 Classic Streams、V2 閘道。

**Topics**
+ [

## 了解 AWS IoT SiteWise Edge 目的地
](#source-destination)
+ [

## 了解 AWS IoT SiteWise Edge 目的地的路徑篩選條件
](#destinations-path-filters)
+ [

# 新增 AWS IoT SiteWise Edge 即時目的地
](destinations-real-time.md)
+ [

# 使用 Amazon S3 新增 AWS IoT SiteWise 緩衝目的地
](destinations-buffered.md)
+ [

# 將路徑篩選條件新增至 AWS IoT SiteWise Edge 目的地
](destinations-add-path-filters.md)
+ [

# 管理 AWS IoT SiteWise Edge 目的地
](destinations-manage.md)

## 了解 AWS IoT SiteWise Edge 目的地
<a name="source-destination"></a>

使用 AWS IoT SiteWise Edge 目的地來判斷傳送來源資料的位置。您可以根據所需的特定特性來選擇資料目的地，例如成本效益、低延遲或儲存需求。整合由 AWS IoT SiteWise、我們的合作夥伴或自訂應用程式擷取的裝置資料，以在邊緣發佈和訂閱路徑篩選條件 （主題）。然後，您可以將裝置資料建模、傳輸和存放在雲端。

**注意**  
若要完整使用自我託管閘道上的所有目的地功能，請升級至最新版本的 IoT SiteWise 發佈者和 IoT SiteWise OPC UA 收集器。在 Classic 串流、V2 閘道上繼續支援串流，以維持與現有設定的相容性。如需詳細資訊，請參閱[傳統串流、適用於 AWS IoT SiteWise Edge 的 V2 閘道](classic-streams-v2-gateway.md)

**Topics**
+ [

### SiteWise Edge 目的地如何增強資料管理
](#how-destinations-work)
+ [

### 目的地類型
](#destination-types)
+ [

### 比較閘道版本之間的目的地功能
](#destinations-vs-publisher-component)
+ [

### 目的地限制
](#destinations-limitiations)
+ [

### SiteWise Edge 目的地的使用案例
](#destinations-use-cases)

### SiteWise Edge 目的地如何增強資料管理
<a name="how-destinations-work"></a>

 AWS IoT SiteWise 即時將資料從邊緣匯出到 ，或使用 Amazon S3 分批匯出。

目的地可增強您 AWS IoT SiteWise 環境中的靈活性和可擴展性。目的地會實作集中式資料管理模型，其中來源會將資料發佈至中央系統。目的地會使用路徑篩選條件來判斷資料的傳送位置。目的地可以訂閱多個路徑篩選條件。

啟用 MQTT 的閘道，無論是自我託管還是在 上執行Siemens Industrial Edge，請使用 MQTT 進行本機通訊，並隨附預設即時目的地，其篩選條件設定為 `#`。這表示根據預設，所有主題上的所有訊息都會發佈到 AWS IoT SiteWise 即時目的地。如需詳細資訊，請參閱[了解 AWS IoT SiteWise Edge 目的地的路徑篩選條件了解路徑篩選條件](#destinations-path-filters)。您可以在每個閘道中新增一個即時目的地。

### 目的地類型
<a name="destination-types"></a>

為閘道設定目的地時，您有兩個主要選項：使用 的即時組態 AWS IoT SiteWise，以及使用 Amazon S3 的緩衝組態。每個目的地類型都有自己的一組設定和考量事項。

**AWS IoT SiteWise 即時設定**  
選擇此選項將資料直接傳送到 AWS IoT SiteWise 熱層儲存，以方便即時擷取和監控資料。即時設定會管理資料流程，特別是當閘道遇到與雲端的連線問題時。在連線中斷期間，資料會暫時存放在本機的閘道上。重新建立連線後，儲存的資料會自動傳送至雲端。  
您可以調整資料發佈程序的各個層面，例如要在本機存放的最大資料量、重新連線時將資料傳送至雲端的速率，以及在儲存達到其容量後何時刪除資料。  
如需 AWS IoT SiteWise 儲存層的詳細資訊，請參閱 [在 中管理資料儲存 AWS IoT SiteWise](manage-data-storage.md)。

**AWS IoT SiteWise 使用 Amazon S3 設定緩衝**  
此目的地類型可讓您在本機緩衝閘道上的資料，並定期將其分批傳送至 Amazon S3 儲存貯體。資料會以有效的 Parquet 格式儲存，並針對分析工作負載進行最佳化。資料在 Amazon S3 中後，您可以將其匯入至 AWS IoT SiteWise 以進行儲存、處理和分析。  
選擇此選項以批次擷取資料，並以經濟實惠的方式存放歷史資料。您可以設定偏好的 Amazon S3 儲存貯體位置，以及您希望將資料上傳至 Amazon S3 的頻率。您也可以選擇在擷取資料之後如何處理資料 AWS IoT SiteWise。您可以選擇在 SiteWise 和 Amazon S3 中同時提供資料，也可以選擇從 Amazon S3 自動刪除資料。

### 比較閘道版本之間的目的地功能
<a name="destinations-vs-publisher-component"></a>

啟用 MQTT 的閘道中的目的地功能可簡化資料流程管理。目的地透過將資料路由至各種端點的集中式組態來簡化資料管理。這種方法不需要複雜的個別串流設定，讓整體系統更具彈性且更容易管理。

相較之下，Classic 串流、V2 閘道、SiteWise Edge AWS IoT Greengrass 會透過串流將資料從資料來源傳輸到發佈者，為每個資料來源個別設定資料目的地。

使用 AWS IoT SiteWise 目的地功能時，發佈者路由組態會合併。目的地組態可讓您集中管理目的地和路徑篩選條件。您可以根據您的需求，輕鬆新增目的地、管理路徑篩選條件、刪除不必要的篩選條件或目的地。

此外，目的地功能使用 MQTT （訊息佇列遙測傳輸），這是一種產業標準通訊協定，廣泛用於工業 IoT 應用程式。這種採用 MQTT AWS IoT SiteWise 有助於簡化與各種裝置和系統的整合。

### 目的地限制
<a name="destinations-limitiations"></a>

SiteWise Edge 閘道上目的地的目前限制包括：
+ 啟用 MQTT 的閘道不支援資料處理套件。
+ 資料類型支援僅限於 AWS IoT SiteWise 資料類型。如需啟用資料類型轉換的資訊，請參閱 [轉換不支援的資料類型](string-conversion.md)。

### SiteWise Edge 目的地的使用案例
<a name="destinations-use-cases"></a>

SiteWise Edge 目的地用於各種應用程式。以下是一些關鍵範例：

**工業自動化***即時監控和預測性維護*  
在工業設定中，工廠現場的感應器和裝置可以將資料發佈到 SiteWise Edge。您可以設定目的地來篩選和路由相關資料，以便即時監控和分析機器效能。您可以使用路徑篩選條件訂閱相關 MQTT 主題、處理資料，然後發佈已處理的資料。透過這種方式，您可以選擇性地將處理的資料路由到 AWS 雲端分析服務或內部部署系統。然後，製造商可以實作預測性維護策略、最佳化生產程序，並減少停機時間。

**智慧建物***能源效率和佔用率最佳化*  
建置自動化系統會產生資料串流，以監控和控制建築物的各個層面，例如 HVAC 系統、照明和存取控制。使用 SiteWise Edge，這些資料串流可以擷取、處理和路由到不同的目的地。設施管理員可以設定目的地來篩選和轉送相關資料，啟用能源效率測量和佔用最佳化等進階功能，同時確保資料隱私和合規。

這些使用案例示範如何跨各種產業利用 SiteWise Edge 中的目的地功能，以有效率地擷取、處理和路由資料。這可啟用進階功能，例如即時監控、預測性維護、能源效率和遠端診斷，同時確保資料隱私權和合規性。

## 了解 AWS IoT SiteWise Edge 目的地的路徑篩選條件
<a name="destinations-path-filters"></a>

**Topics**
+ [

### 路徑篩選條件需求
](#path-filter-requirements)
+ [

### 路徑篩選條件的最佳實務
](#create-effective-path-filters)
+ [

### OPC UA 伺服器的路徑篩選條件
](#path-filters-opcua)
+ [

### 路徑篩選條件名稱中的特殊字元
](#path-filters-special-characters)

每個目的地都設定為將資料路由到 AWS IoT SiteWise 或 Amazon S3。路徑篩選條件可讓您選取接收目的地的 MQTT 訊息時要篩選的特定資料。路徑篩選條件代表資料串流的邏輯名稱，做為所需 MQTT 主題的訂閱。

在 MQTT 中，資料會組織成主題，這些主題是以斜線 () 分隔的階層式字串`/`。例如，裝置可能會將溫度資料發佈至主題 `home/livingroom/sensor1/temperature`。在這裡， `home/livingroom/sensor1`代表感應器的路徑或邏輯名稱，而 `temperature`是要發佈的資料類型。

您可以使用路徑篩選條件，使用萬用字元 (`+` 和 ) 訂閱特定主題或一系列主題`#`。`+` 萬用字元符合主題階層中的單一層級。例如， `home/+/sensor1/temperature` 會比對 `home/livingroom/sensor1/temperature`和 `home/bedroom/sensor1/temperature`。萬`#`用字元在篩選條件結尾使用時，會符合多個層級。

您也可以使用路徑篩選條件名稱中 MQTT 規格中通常不允許的各種字元。在 name 中使用時，這些字元不會做為萬用字元運作。 會使用編碼 AWS IoT SiteWise 來轉換這些字元，以確保 MQTT 合規，同時保留原始命名結構。此功能對於容納來自其他系統的現有命名慣例特別有用。如需詳細資訊，請參閱[路徑篩選條件名稱中的特殊字元](#path-filters-special-characters)。

透過仔細選取適當的路徑篩選條件，您可以控制要傳送到特定目的地的資料。使用路徑篩選條件，根據 IoT 系統的需求量身打造資料流程。

### 路徑篩選條件需求
<a name="path-filter-requirements"></a>

使用 輸入路徑篩選條件時 AWS IoT SiteWise 主控台，請記住下列事項：
+ 路徑篩選條件以新行分隔，每行代表單獨的路徑篩選條件。
+ 個別路徑篩選條件可以有 1 到 65，535 個位元組。
+ 路徑篩選條件不能空白。
+ 不允許空值 (U\$10000)。
+ 您一次最多可輸入 100 個路徑篩選條件或 65，535 個字元，以先達到限制為準。
+ 閘道上所有目的地的總限制為 20，000 個路徑篩選條件。
+ 您可以在路徑篩選條件名稱中使用 `%`、`+`、 `#`和 `$` 字元，但 AWS IoT SiteWise 會自動將其轉換為 URI 編碼。

### 路徑篩選條件的最佳實務
<a name="create-effective-path-filters"></a>

為您的 AWS IoT SiteWise 目的地建立路徑篩選條件時，請考慮下列策略以有效管理您的資料。
+ 建構您的篩選條件以鏡射您的裝置階層。例如，在製造設定中， `factory/+/machine/#`會從不同生產線的所有機器擷取資料。
+ 針對裝置類型、位置或函數使用特定層級。例如 `factory/assembly-line/robot/temperature`。或者，在智慧農業中， `farm/+/crop/+/moisture`會監控不同欄位間各種作物的濕度等級。
+ 策略性地利用萬用字元：`+`用於單一層級的變化`#`，並擷取所有後續層級。例如， `building/+/+/energy-consumption`會追蹤建築物中不同區域和地板的能源使用量。這會假設第一個`+`擷取所有樓層，第二個`+`擷取所有區域。
+ 透過建立足以擷取相關資料的篩選條件，但足以適應未來變更的彈性，來平衡特異性和靈活性。例如， `site/+/equipment-type/+/measurement` 允許新增新的站點或設備類型，而不變更篩選條件結構。

徹底測試您的篩選條件，以確保它們擷取預期資料，並與 IoT 系統的架構和目標保持一致。

### OPC UA 伺服器的路徑篩選條件
<a name="path-filters-opcua"></a>

對於 OPC UA 伺服器，您的路徑篩選條件必須對應至 OPC UA 標籤名稱。路徑篩選條件的最終層級必須完全符合 OPC UA 標籤名稱。例如，如果您的 OPC UA 標籤為 `Device1.Temperature`，您的路徑篩選條件可能為 `factory/line1/Device1.Temperature`。您可以在上述關卡中使用萬用字元，例如`factory/+/Device1.Temperature`跨多個生產線擷取標籤。如果您的路徑篩選條件名稱中有特殊字元，請參閱 [路徑篩選條件名稱中的特殊字元](#path-filters-special-characters) 以取得詳細資訊。

### 路徑篩選條件名稱中的特殊字元
<a name="path-filters-special-characters"></a>

AWS IoT SiteWise 可容納 OPC UA 等工業通訊協定中常用的字元，通常在標準 MQTT 主題名稱中是不允許的。此功能有助於更順暢地整合工業系統與 MQTT 型架構。

**注意**  
雖然我們的特殊字元處理有助於整合和遷移，但建議盡可能符合新實作的標準 MQTT 命名慣例，以確保更廣泛的相容性。

從工業來源接收資料時， 會使用特殊字元的 URI 編碼 AWS IoT SiteWise 標準化主題名稱：
+ `%` 變成 `%25`（先編碼為逸出字元）
+ `#` 成為 `%23`
+ `+` 成為 `%2B`
+ `$` 變成 `%24`（僅在主題開始時）

此編碼可確保包含這些特殊 MQTT 字元的來源資料可安全地用作 MQTT 主題名稱，同時保留原始工業命名慣例。

**Example ：路徑篩選條件名稱中的特殊字元**  
以下是工業主題名稱如何在 AWS IoT SiteWise 路徑篩選條件中顯示的範例：  
+ `Factory1/Line#2/Sensor+3` 成為 `Factory1/Line%232/Sensor%2B3`
+ `Plant%A/Unit$1/Temp` 成為 `Plant%25A/Unit%241/Temp`
+ `Site1/#Section/+Node` 成為 `Site1/%23Section/%2BNode`

在 中建立訂閱或檢視主題名稱時 AWS IoT SiteWise，您會看到原始、未編碼的版本。系統會自動處理編碼，以確保 MQTT 合規。

# 新增 AWS IoT SiteWise Edge 即時目的地
<a name="destinations-real-time"></a>

即時目的地類型可讓您將 IoT 資料直接從裝置和閘道串流到 AWS IoT SiteWise 儲存體。此選項非常適合需要立即擷取和處理資料的使用案例，而不需要批次處理或緩衝。每個閘道只能設定一個即時目的地，因為它會持續將資料串流到其中 AWS IoT SiteWise。

**注意**  
重複TQVs 可能會導致重複充電。

**新增即時目的地**

使用 AWS IoT SiteWise 主控台或 AWS CLI 將即時目的地新增至已啟用 SiteWise Edge MQTT 的閘道。

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

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

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

1. 選取您要新增目的地的閘道。

1. 在**目的地**區段中，選擇**新增目的地**。

1. 在**新增目的地**頁面上，輸入**目的地詳細資訊**：

   1. 目的地名稱欄位中**目的地的名稱**。

   1. 選取**目的地類型的****AWS IoT SiteWise 即時** 。

1. 透過將發佈順序設定為**先發佈較舊的資料**或**先發佈最新資料**，來設定閘道發佈**順序**。根據預設，閘道會先發佈最舊的資料。

1. 使用**最大批次等待時間**，設定發佈者在傳送一批資料之前等待的最長時間 AWS IoT SiteWise。此設定適用於每個別名。資料會存放在本機，直到：
   + 設定的時間已過，或
   + 別名收到 10 個time-quality-value(TQV) 項目

   無論符合哪種條件， 都會先觸發要傳送至雲端的批次。

1. 若要壓縮上傳的資料，請選取上傳**資料時啟用壓縮**核取方塊。讓閘道在上傳資料到雲端之前壓縮資料，可減少頻寬使用量。

1. 若要篩選出過期的發佈者資料，請選取**排除過期的資料**核取方塊。此選擇只會將作用中和目前的資料傳送至 AWS IoT SiteWise。

1. 在**截止期間**欄位中，輸入資料在您的資料集內應視為過期的頻率。您可以判斷資料是以分鐘或天數來計算。最短截止期間為五分鐘。最大截止期間為 7 天。

1. 選擇性地設定**本機儲存設定**：

   1. 設定**保留期間**頻率 – 閘道在本機存放超過截止期間的資料的時間。最短保留期間為一分鐘。

      最長保留期間為 30 天，且大於或等於輪換期間。

   1. 設定**輪換期間** – 儲存超過單一檔案之截止期間的資料時所指定的時間間隔。閘道會在每個輪換期間結束時，將一批資料傳輸到下列本機目錄：`/greengrass/v2/work/aws.iot.SiteWiseEdgePublisher/exports`。

      保留必須大於一分鐘並等於保留期間。

   1. 提供**儲存容量 (GB)** 值，以設定本機以 GB 儲存的資料大小上限。如果資料超過確定的本機儲存大小上限，閘道會先開始刪除最舊的資料。閘道會持續刪除，直到本機存放的資料大小等於或小於配額為止。

      儲存容量必須大於或等於 1 GB。

1. 將路徑篩選條件新增至目的地。如需詳細資訊，請參閱 [將路徑篩選條件新增至 AWS IoT SiteWise Edge 目的地](destinations-add-path-filters.md)。

如需詳細資訊，請參閱[目的地類型](gw-destinations.md#destination-types)。

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

**Example ：建立新的 AWS IoT SiteWise 即時目的地**  
使用 [UpdateGatewayCapabilityConfiguration](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateGatewayCapabilityConfiguration.html) API 來設定發佈者。  
將 `capabilityNamespace` 參數設為 `iotsitewise:publisher:3`。  

```
{
    "sources": [
        {
            "type": "MQTT"
        }
    ],
    "destinations": [
        {
            "type": "SITEWISE_REALTIME",
            "name": "your-destination-name",
            "config": {
                "publishingOrder": "TIME_ORDER",
                "enableCompression": true,
                "maxBatchWaitTime": "10s"
            },
            "filters": [
                {
                    "type": "PATH",
                    "config": {
                        "paths": [
                            "#"
                        ]
                    }
                }
            ]
        }
    ]
}
```

若要更新現有的 AWS IoT SiteWise 即時目的地，請先使用 `DescribeGatewayCapabilityConfiguration` API 尋找 `destinationId`。

**Example ：更新 AWS IoT SiteWise 即時目的地**  
使用 [UpdateGatewayCapabilityConfiguration](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateGatewayCapabilityConfiguration.html) API 來設定發佈者。  
將 `capabilityNamespace` 參數設為 `iotsitewise:publisher:3`。  

```
{
    "sources": [
        {
            "type": "MQTT"
        }
    ],
    "destinations": [
        {
            "id": "your-existing-destination-id",
            "type": "SITEWISE_REALTIME",
            "name": "your-destination-name",
            "config": {
                "publishingOrder": "TIME_ORDER",
                "enableCompression": true,
                "dropPolicy": {
                    "cutoffAge": "7d",
                    "exportPolicy": {
                        "retentionPeriod": "7d",
                        "rotationPeriod": "6h",
                        "exportSizeLimitGB": 10
                    }
                },
                "maxBatchWaitTime": "10s"
            },
            "filters": [
                {
                    "type": "PATH",
                    "config": {
                        "paths": [
                            "#"
                        ]
                    }
                }
            ]
        }
    ]
}
```

下列組態選項專屬於使用 `iotsitewise:publisher:3` 命名空間的閘道。

`sources`  
定義將資料從工業設備傳輸到 的資料來源 AWS IoT SiteWise。對於啟用 MQTT 的閘道，請使用 `MQTT`。  
類型： 物件陣列  
必要：是

`destinations`  
定義傳送資料的位置。目的地是即時的或使用 Amazon S3 緩衝。至少需要一個目的地物件，但您可以新增空陣列。您可以為每個閘道有一個即時目的地。如需詳細資訊，請參閱[了解 AWS IoT SiteWise Edge 目的地](gw-destinations.md#source-destination)。  
類型： 物件陣列  
必要：是    
`id`  
目的地的唯一識別符。您可以提供現有的目的地 ID 或將其保留空白。如果您未指定 ID，則預設會產生 UUID。  
類型：字串  
必要：否  
`type`  
目的地類型。選項包括： `SITEWISE_REALTIME`和 `SITEWISE_BUFFERED`。  
+ `SITEWISE_REALTIME` – 即時將資料直接傳送到 AWS IoT SiteWise 儲存體。
+ `SITEWISE_BUFFERED` – 以 Parquet 格式批次傳送資料至 Amazon S3，然後匯入至 AWS IoT SiteWise 儲存體。
類型：字串  
必要：是  
`name`  
目的地的唯一名稱。  
類型：字串  
必要：是  
`config`  
目的地類型特定的 JSON 格式組態。組態會因即時和緩衝目的地而有所不同。  
類型：物件  
必要：是    
publishingOrder  
決定資料發佈的順序。資料會根據其時間戳記發佈。選項包括 `TIME_ORDER`和 `RECENT_DATA`。  
+ `TIME_ORDER` （預設） – 先發佈較舊的資料。
+ `RECENT_DATA` – 先發佈最新的資料。
類型：字串  
必要：否  
enableCompression  
設定為 時`true`， 會在傳送至 之前啟用資料壓縮 AWS IoT SiteWise。讓閘道在上傳資料到雲端之前壓縮資料，可降低頻寬使用量。預設值為 `true`。  
類型：布林值  
必要：否  
dropPolicy  
定義如何處理較舊的資料。  
類型：物件  
必要：否  
+ `cutoffAge`

  以天、小時和分鐘為單位指定要發佈的資料最長存留期。例如 `7d` 或 `1d7h16m`。不會傳送比您指定內容更舊的資料 AWS IoT SiteWise。

  早於截止期間的資料不會發佈至雲端。截止時間必須介於 5 分鐘到 7 天之間。

  當您指定截止存留期`d`時`m`，可以使用 `h`、 和 。請注意， `m`代表分鐘， `h` 代表小時， `d`代表天數。

  類型：字串

  必要：是
+ `exportPolicy`

  定義如何處理超過截止期限的資料。

  類型：物件

  必要：否
  + `retentionPeriod`

    儲存指定保留期間之後，您的 SiteWise Edge 閘道會從本機儲存體刪除邊緣早於截止期間的任何資料。保留期間必須介於一分鐘到 30 天之間，且大於或等於輪換期間。

    您可以在指定保留期間`d`時使用 `m``h`、 和 。請注意， `m`代表分鐘， `h` 代表小時， `d`代表天數。

    類型：字串

    必要：否
  + `rotationPeriod`

    將早於截止期間的資料批次儲存到單一檔案的時間間隔。SiteWise Edge 閘道會在每個輪換期間結束時，將一批資料傳輸到下列本機目錄：`/greengrass/v2/work/aws.iot.SiteWiseEdgePublisher/exports`。輪換期間必須大於一分鐘，且等於或小於保留期間。

    您可以在指定輪換期間`d`時使用 `m``h`、 和 。請注意， `m`代表分鐘， `h` 代表小時， `d`代表天數。

    類型：字串

    必要：否
  + `exportSizeLimitGB`

    本機儲存的資料允許大小上限，以 GB 為單位。如果違反此配額，SiteWise Edge 閘道會開始刪除最早的資料，直到本機存放的資料大小等於或小於配額為止。此參數的值必須大於或等於 1。

    類型：整數

    必要：否  
`maxBatchWaitTime`  
設定發佈者在傳送一批資料之前等待的最長時間 AWS IoT SiteWise。此設定適用於每個別名。資料會存放在本機，直到：  
+ 設定的時間已過，或 
+ 別名收到 10 個time-quality-value(TQV) 項目
使用 `m`、 `h`和 `d`來指定截止時間。請注意， `m`代表分鐘， `h` 代表小時， `d`代表天數。  
類型：字串  
必要：否

`filters`  
要套用至資料的篩選條件。至少需要一個篩選條件。  
類型：字串  
必要：是    
`type`  
篩選條件類型。請使用 `PATH`。  
類型：字串  
必要：是  
`config`  
JSON 格式的篩選條件類型特定組態。至少需要一個物件，但陣列可以是空的。  
類型：物件  
必要：是  
+ `paths`

  路徑篩選條件的陣列。如需詳細資訊，請參閱[了解 AWS IoT SiteWise Edge 目的地的路徑篩選條件了解路徑篩選條件](gw-destinations.md#destinations-path-filters)。預設路徑為 `#`。

  類型：字串陣列

  必要：是

------

# 使用 Amazon S3 新增 AWS IoT SiteWise 緩衝目的地
<a name="destinations-buffered"></a>

如果您 AWS IoT SiteWise 不需要即時資料，緩衝目的地類型可讓您節省 的擷取成本。它可讓您暫時將 IoT 資料存放在 Amazon S3 儲存貯體中，然後再匯入 AWS IoT SiteWise。或者，您可以直接將資料上傳至 S3 進行儲存，無論您是否打算將其匯入 AWS IoT SiteWise。這在擷取資料之前，對於從裝置和閘道批次處理和緩衝資料非常有用 AWS IoT SiteWise。使用此選項時，資料會以設定的頻率，以 Parquet 格式上傳至指定的 S3 儲存貯體。然後，您可以將此資料匯入 AWS IoT SiteWise 儲存體，以供進一步分析和處理。

**使用 Amazon S3 新增緩衝的目的地**

使用 AWS IoT SiteWise 主控台或 AWS CLI 將使用 Amazon S3 緩衝資料的目的地新增至 SiteWise Edge 閘道。

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

使用 AWS 管理主控台 新增使用 Amazon S3 緩衝的 AWS IoT SiteWise 目的地。

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

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

1. 選取您要新增目的地的閘道。

1. 在**目的地**區段中，選擇**新增目的地**。

1. 在**新增目的地**頁面上，輸入**目的地詳細資訊**：

   1. 目的地名稱欄位中**目的地的名稱**。

   1. 選取**AWS IoT SiteWise 使用 Amazon S3** for **Destination type** 緩衝。使用 Amazon S3 AWS IoT SiteWise 緩衝會以 Parquet 格式批次將資料傳送至 Amazon Simple Storage Service，然後將資料 AWS IoT SiteWise 匯入儲存。

1. 輸入您要存放閘道資料的位置的 Amazon S3 URL。您可以選擇**瀏覽 S3** 來瀏覽路徑。新增儲存貯體後，您也可以選擇檢視來**檢視**儲存貯體。

1. 輸入時間範圍並選取資料上傳頻率的時間增量，以指定閘道將資料上傳至 Amazon S3 的頻率。 ****頻率值應大於 0 且小於或等於 30 天。

1. 在**資料儲存設定**中，決定將閘道資料匯入至 後如何處理 AWS IoT SiteWise。需要對資料儲存做出兩個決策：
   + 如果您想要將匯入的資料複製到 AWS IoT SiteWise 儲存體，請選取**將資料複製到儲存體**核取方塊。此選項會將從您設定的 Amazon S3 儲存貯體匯入的資料複製到 AWS IoT SiteWise 儲存體。
   + 如果您選擇將資料從 Amazon S3 儲存貯體匯入 AWS IoT SiteWise 儲存體，您也可以指定是否應在匯入完成後刪除匯入的資料。選取**從 Amazon S3 刪除資料**核取方塊，以在匯入至 AWS IoT SiteWise 儲存體後，從設定的 Amazon S3 儲存貯體刪除匯入的日期。

1. 將路徑篩選條件新增至目的地。如需詳細資訊，請參閱 [將路徑篩選條件新增至 AWS IoT SiteWise Edge 目的地](destinations-add-path-filters.md)。

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

**Example ：使用 Amazon S3 建立新的緩衝 AWS IoT SiteWise 目的地**  
使用 [UpdateGatewayCapabilityConfiguration](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateGatewayCapabilityConfiguration.html) API 來設定發佈者。  
將 `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": "15m",
            "localSizeLimitGB": 10
          },
          "siteWiseImportPolicy": {
            "enableSiteWiseStorageImport": true,
            "enableDeleteAfterImport": true,
            "bulkImportJobRoleArn": "arn:aws:iam::123456789012:role/your-role-name"
          }
        },
        "filters": [
          {
            "type": "PATH",
            "config": {
              "paths": [
                "#"
              ]
            }
          }
        ]
      }
    ]
  }
```

**Example ：更新使用 Amazon S3 緩衝的 AWS IoT SiteWise 目的地**  
若要更新現有的 AWS IoT SiteWise 即時目的地，請先使用 `DescribeGatewayCapabilityConfiguration` API 尋找 `destinationId`。  
發佈者命名空間： `iotsitewise:publisher:3`  

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

下列組態選項專屬於使用 `iotsitewise:publisher:3` 命名空間啟用 MQTT 的閘道。

`sources`  
定義將資料從工業設備傳輸到 的資料來源 AWS IoT SiteWise。對於啟用 MQTT 的閘道，請使用 `MQTT`。  
類型： 物件陣列  
必要：是

`destinations`  
定義傳送資料的位置。目的地是即時的或使用 Amazon S3 緩衝。至少需要一個目的地物件，但您可以新增空陣列。您可以為每個閘道有一個即時目的地。如需詳細資訊，請參閱[了解 AWS IoT SiteWise Edge 目的地](gw-destinations.md#source-destination)。  
類型： 物件陣列  
必要：是    
`id`  
目的地的唯一識別符。您可以提供現有的目的地 ID，或將其保留空白，讓目的地自動產生新的 ID。  
類型：字串  
必要：否  
`type`  
目的地類型。選項包括： `SITEWISE_REALTIME`和 `SITEWISE_BUFFERED`。選擇 `SITEWISE_BUFFERED`。  
+ `SITEWISE_REALTIME` （預設） – 即時將資料直接傳送到 AWS IoT SiteWise 儲存體。如需詳細資訊，請參閱[新增 AWS IoT SiteWise Edge 即時目的地](destinations-real-time.md)。
+ `SITEWISE_BUFFERED` – 以 Parquet 格式批次傳送資料至 Amazon S3，然後匯入至 AWS IoT SiteWise 儲存體。
類型：字串  
必要：是  
`name`  
目的地的唯一名稱。  
類型：字串  
必要：是  
`config`  
目的地類型特定的 JSON 格式組態。組態會因即時和緩衝目的地而有所不同。  
類型：物件  
必要：是    
`targetBucketArn`  
ARN 要發佈的儲存貯體。 AWS 區域 針對 AWS IoT SiteWise 和 Amazon S3 選擇相同的 。如果選擇字首，它必須介於 1-255 個字元之間。  
AWS IoT SiteWise，包括閘道，將可存取整個指定的 S3 儲存貯體。建議使用專用儲存貯體進行緩衝資料擷取。
類型：字串  
必要：是  
`publishPolicy`  
發佈政策的詳細資訊。  
類型：物件  
必要：是    
`publishFrequency`  
SiteWise Edge 閘道發佈至 Amazon S3 儲存貯體的頻率。資料上傳至 Amazon S3 的頻率必須大於 0 分鐘，且小於或等於 30 天。當您指定發佈頻率存留期`d`時`m`，可以使用 `h`、 和 。請注意， `m`代表分鐘， `h` 代表小時， `d`代表天數。預設值為 15 分鐘。  
類型：字串  
必要：是  
`localSizeLimitGB`  
寫入本機磁碟的檔案大小上限，以 GB 為單位。如果超過此閾值，發佈者會將所有緩衝資料發佈至其目的地。  
類型：整數  
必要：是  
`siteWiseImportPolicy`  
用於匯入資料之匯入政策的詳細資訊 AWS IoT SiteWise。  
類型：物件  
必要：是    
`enableSiteWiseStorageImport`  
將此設定為 `true`，將資料從 Amazon S3 儲存貯體匯入至 AWS IoT SiteWise 儲存體。它最初會在 中複製資料 AWS IoT SiteWise。然後，如果您`enableDeleteAfterImport`將 設為 true，S3 中的資料會在複製到 後刪除 AWS IoT SiteWise。定價含意適用。預設值為 `true`。  
類型：布林值  
必要：是  
`enableDeleteAfterImport`  
將此設定為 `true`，以在擷取至 AWS IoT SiteWise 儲存體後刪除 Amazon S3 儲存貯體中的檔案。預設值為 `true`。  
類型：布林值  
必要：是  
`bulkImportJobRoleArn`  
 AWS IoT SiteWise 擔任 在資料擷取期間從 Amazon S3 讀取緩衝資料的 IAM 角色 ARN。當邊緣裝置呼叫 AWS IoT SiteWise APIs以啟動大量匯入程序時，會使用此角色。  
如果 `enableSiteWiseStorageImport` 設定為 `true`，則需要此參數。
類型：字串  
必要：否

------

新增目的地的路徑篩選條件。如需詳細資訊，請參閱[將路徑篩選條件新增至 AWS IoT SiteWise Edge 目的地](destinations-add-path-filters.md)。

# 將路徑篩選條件新增至 AWS IoT SiteWise Edge 目的地
<a name="destinations-add-path-filters"></a>

將路徑篩選條件新增至目的地。路徑篩選條件使用 MQTT 主題語法，其中 `#` 是符合任意數量關卡的萬用字元，而 `+`是符合單一關卡的萬用字元。您可以將多個目的地新增至閘道，每個目的地都有自己的一組路徑篩選條件訂閱您的設備遙測。

Siemens Industrial Edge 閘道使用字首來實現相容性。如需詳細資訊，請參閱[路徑篩選條件的字首](sitewise-edge-on-siemens.md#siemens-path-filters)。

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

**新增路徑篩選條件**

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

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

1. 選取您要新增路徑篩選條件的閘道。

1. 在**新增目的地**下的**路徑篩選條件**區段中，選擇**新增路徑篩選條件**。

1. 輸入您希望此目的地訂閱的路徑篩選條件。您可以使用萬用字元 (`#` 和 `+`) 來訂閱多個路徑。

1. 選擇**新增路徑篩選條件**，將路徑篩選條件新增至清單。

1. 視需要重複步驟來新增其他路徑篩選條件。

1. 新增所有必要的路徑篩選條件後，請選擇**建立**。

------
#### [ AWS CLI for self-hosted gateways ]

**Example ：路徑篩選條件組態**  

```
{
  "destinations": [
    {
      ...
    }
  ],
  "filters": [
    {
      "type": "PATH",
      "config": {
        "paths": [
          "home/+/sensor1/temperature",
          "home/livingroom/sensor1/temperature",
          "home/livingroom/sensor1/temperature",
          "building/#"
        ]
      }
    }
  ]
}
```

------
#### [ AWS CLI for 西門子 IEgateways ]

**Example ：路徑篩選條件的字首組態**  
使用每個路徑篩選條件的資料 (`ie/d`) 和中繼資料 (`ie/m`) 字首來擷取所有資料。  

```
{
  "destinations": [
    {
      ...
    }
  ],
  "filters": [
    {
      "type": "PATH",
      "config": {
        "paths": [
          "ie/d/home/+/sensor12/temperature",
          "ie/m/home/livingroom/sensor12/temperature",
          "ie/d/home/livingroom/sensor13/temperature2",
          "ie/m/home/livingroom/sensor13/temperature2",
          "ie/d/building/#",
          "ie/m/building/#"
        ]
      }
    }
  ]
}
```

------

**注意**  
透過下載路徑篩選條件清單，在目的地之間複製路徑篩選條件。如需詳細資訊，請參閱[下載目的地中的所有路徑篩選條件 （主控台）](destinations-manage.md#destinations-download-list)。

## 大量上傳路徑篩選條件
<a name="destinations-path-filters-upload-file"></a>

若要大量上傳路徑篩選條件，請使用 CSV 或文字檔案。當您上傳檔案時， AWS IoT SiteWise 會自動移除確切的重複項目。例如， `windfarm/site1/`和 `windfarm/site1/`是完全重複的 AWS IoT SiteWise ，因為字串完全相同。不會移除部分重複項目，並產生額外費用。例如， `windfarm/#`和 `windfarm/site1` 是重疊的主題，因為 `windfarm/site1` 已包含 `windfarm/#`。

**注意**  
避免重複，以避免產生額外費用。上傳的檔案必須是 .csv 或 .txt 格式。它不能包含任何標頭，且應該由單一資料欄組成。在 欄中，列出您的路徑篩選條件，每個篩選條件位於單獨的一行。檔案中不應包含任何其他資訊。

**檔案上傳需求**

這些是額外的路徑篩選條件需求。
+ 您可以上傳一個 .csv 或 .txt 檔案。不支援其他檔案格式。
+ CSV (.csv) 檔案不能有標頭，並且應該只包含一個資料欄。
+ 您可以在每行上有一個路徑篩選條件。
+ 上傳的檔案不能為空白。
+ 使用 `#` 做為萬用字元時，必須是主題篩選條件中的最後一個字元。例如 `topic/#`，或做為特殊定主題層級的獨立字元。但請注意，`#` 也可做為主題層級名稱內的一般字元，例如 `factory/machine#1/topic`。如需詳細資訊，請參閱 [路徑篩選條件名稱中的特殊字元](gw-destinations.md#path-filters-special-characters)
  + 您也可以使用 `+` 字元。例如，使用 `factory/+/temp`取得工廠的所有溫度，而非`factory/machine3/temp`個別的 `factory/machine2/temp`和 。

# 管理 AWS IoT SiteWise Edge 目的地
<a name="destinations-manage"></a>

新增目的地之後，您可以執行各種操作來管理它們，例如編輯目的地組態、刪除目的地和管理路徑篩選條件。

## 編輯目的地
<a name="destinations-edit"></a>

在資料表中選取目的地旁的選項按鈕，然後選擇**編輯**按鈕來編輯目的地。

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

**使用 AWS IoT SiteWise 主控台編輯目的地**

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

1. 在左側導覽中，選擇 **Edge 區段中的 Edge 閘道**。 ****

1. 選取適當的閘道。

1. 在**目的地**區段中，選擇您要編輯的目的地，然後選擇**編輯**。

1. 修改目的地，然後選擇**儲存**。

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

**使用 編輯目的地 AWS CLI**
+ 您可以透過修改 JSON 功能組態資訊來編輯目的地。

  ```
  aws iotsitewise update-gateway-capability-configuration \
  --gateway-id your-gateway-id \
  --capability-namespace "iotsitewise:publisher:3" \
  --capability-configuration '{
      "sources": [
          {
              "type": "MQTT"
          }
      ],
      "destinations": [
          {
              "id": "your-existing-destination-id",
              "type": "SITEWISE_REALTIME",
              "name": "your-updated-destination-name",
              "config": {
                  "publishingOrder": "TIME_ORDER",
                  "enableCompression": true,
                  "dropPolicy": {
                      "cutoffAge": "10d",
                      "exportPolicy": {
                          "retentionPeriod": "10d",
                          "rotationPeriod": "6h",
                          "exportSizeLimitGB": 10
                      }
                  },
                  "maxBatchWaitTime": "15s"
              },
              "filters": [
                  {
                    ...
                  }
              ]
          }
      ]
  }'
  ```

**注意**  
您無法更新目的地`type`或 `capability-namespace`。例如，您無法從 類型切換`SITEWISE_REALTIME`到 `SITEWISE_BUFFERED`。您可以為每個啟用 MQTT 的閘道有一個即時目的地。

------

## 刪除目的地
<a name="destinations-delete"></a>

如果您不再需要目的地，您可以從 SiteWise Edge 閘道將其刪除。

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

**使用 AWS IoT SiteWise 主控台刪除目的地**

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

1. 在左側導覽中，選擇 **Edge 區段中的 Edge 閘道**。 ****

1. 選取適當的閘道。

1. 在**目的地**區段中，選擇您要刪除的目的地，然後選擇**刪除**。確認畫面隨即出現。

1. 若要確認選擇刪除目的地，請在確認方塊中輸入「刪除」。

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

**使用 刪除目的地 AWS CLI**
+ 指定閘道 ID 並修改功能組態以移除您要刪除的目的地，以刪除閘道功能組態。

  ```
  aws iotsitewise update-gateway-capability-configuration \
    --gateway-id your-gateway-id \
    --capability-namespace "iotsitewise:publisher:3" \
    --capability-configuration '{
      "sources": [
          {
              "type": "MQTT"
          }
      ],
      "destinations": []
  }'
  ```

**注意**  
目的地陣列可以是空的 (`[]`)，但目的地物件本身必須包含在功能組態中。

------

## 下載目的地中的所有路徑篩選條件 （主控台）
<a name="destinations-download-list"></a>

在 AWS IoT SiteWise 主控台中下載包含所有路徑篩選條件的 CSV 檔案。您可以使用下載的路徑篩選條件清單，在閘道目的地之間輕鬆共用路徑篩選條件清單。

**使用 AWS IoT SiteWise 主控台下載所有路徑篩選條件的 CSV 檔案**

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

1. 在左側導覽中，選擇 **Edge 區段中的 Edge 閘道**。 ****

1. 選取包含路徑篩選條件的閘道。

1. 選擇**新增目的地**或**編輯目的地**。

1. 導覽至**路徑篩選條件**區段，然後選擇**下載 CSV**。

**注意**  
CSV 檔案包含特定目的地中的所有路徑篩選條件，無論您從路徑篩選條件清單中選擇了哪些路徑篩選條件。

## 編輯路徑篩選條件
<a name="destinations-edit-path-filter"></a>

您可以編輯個別路徑篩選條件，以精簡目的地接收到的資料。

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

使用 AWS IoT SiteWise 主控台，您可以編輯每個個別文字方塊中的每個個別路徑篩選條件。

**使用 AWS IoT SiteWise 主控台編輯路徑篩選條件**

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

1. 在左側導覽中，選擇 **Edge 區段中的 Edge 閘道**。 ****

1. 選取包含路徑篩選條件的閘道。

1. 選取適當的目的地。

1. 選擇**編輯**。

1. 針對包含您要編輯之路徑篩選條件的資料列，選擇文字方塊。

1. 更新路徑篩選條件的文字，確保已選取編輯的路徑篩選條件核取方塊。

1. 選擇**儲存**。

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

若要使用 編輯目的地的路徑篩選條件 AWS CLI，請先擷取目前的組態、修改組態，然後使用 `update-gateway-capability-configuration`命令進行更新。

**使用 編輯路徑篩選條件 AWS CLI**

1. 擷取目前的功能組態：

   ```
   aws iotsitewise describe-gateway-capability-configuration \
     --gateway-id your-gateway-id \
     --capability-namespace "iotsitewise:publisher:3" \
     --query "capabilityConfiguration"
   ```

1. 編輯 JSON 以視需要修改路徑篩選條件。

1. 使用修改過的路徑篩選條件更新功能組態：

   ```
   aws iotsitewise update-gateway-capability-configuration \
     --gateway-id your-gateway-id \
     --capability-namespace "iotsitewise:publisher:3" \
     --capability-configuration json-containing-your-updated-path-filters
   ```

------

## 刪除路徑篩選條件
<a name="destinations-delete-path-filter"></a>

您可以刪除目的地的路徑篩選條件，以控制其從 MQTT 來源和資料處理管道接收的資料。

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

**使用 AWS IoT SiteWise 主控台刪除路徑篩選條件**

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

1. 在左側導覽中，選擇 **Edge 區段中的 Edge 閘道**。 ****

1. 選取包含路徑篩選條件的閘道。

1. 選取適當的目的地。

1. 選擇**編輯**。

1. 在**編輯目的地**畫面的**路徑篩選條件**區段中，選取要刪除的一或多個路徑篩選條件。

1. 選擇 **刪除**。隨即出現刪除確認訊息。如果想要繼續刪除路徑篩選條件，請在確認畫面上選擇**刪除**。

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

**使用 刪除目的地 AWS CLI**
+ 從功能組態中移除路徑篩選條件，以將其刪除。

  ```
  aws iotsitewise update-gateway-capability-configuration \
    --gateway-id your-gateway-id \
    --capability-namespace "iotsitewise:publisher:3" \
    --capability-configuration '{
      "sources": [
          {
              "type": "MQTT"
          }
      ],
      "destinations": [
          {
              "id": "your-destination-id",
              "type": "SITEWISE_REALTIME",
              "name": "your-destination-name",
              "config": {
                  ...
              },
              "filters": [
                  {
                      "type": "PATH",
                      "config": {
                          "paths": [
                              "/path1",
                              "/path2",
                              "/delete-a-path-to-remove-it"
                          ]
                      }
                  }
              ]
          }
      ]
  }
  ```

**注意**  
篩選條件陣列可以是空的 (`[]`)，但篩選條件物件本身必須包含在功能組態中。

------

# 管理 SiteWise Edge 閘道
<a name="manage-gateways-ggv2"></a>

您可以使用 AWS IoT SiteWise 主控台和 API 操作來管理 AWS IoT SiteWise Edge 閘道。您也可以使用 [AWS OpsHubAWS IoT SiteWise for Windows](https://aws-iot-sitewise.s3.amazonaws.com/gateway/OpsHub+for+AWS+IoT+SiteWise.exe) 應用程式，從本機裝置管理 SiteWise Edge 閘道的某些層面。

強烈建議您 AWS OpsHub 針對 AWS IoT SiteWise 應用程式使用 來監控本機裝置上的磁碟用量。您也可以監控 `Gateway.AvailableDiskSpace`和 `Gateway.UsedPercentageDiskSpace` Amazon CloudWatch 指標，並建立警示，以便在磁碟空間不足時收到通知。如需 Amazon CloudWatch 警示的詳細資訊，請參閱[根據靜態閾值建立 CloudWatch 警示](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ConsoleAlarms.html)。

請確定您的裝置有足夠的空間供即將來臨的資料使用。當您即將用盡本機裝置上的空間時，服務會自動刪除具有最舊時間戳記的少量資料，為即將來臨的資料騰出空間。

若要檢查服務是否已刪除您的資料，請執行下列動作：

1. 登入 AWS OpsHub AWS IoT SiteWise 應用程式適用的 。

1. 選擇**設定**。

1. 對於**日誌**，指定時間範圍，然後選擇**下載**。

1. 解壓縮日誌檔案。

1. 如果日誌檔案包含下列訊息，服務會刪除您的資料：已刪除資料的位元組*數*，以防止 SiteWise Edge 閘道儲存體空間不足。 

## 使用 AWS IoT SiteWise 主控台管理您的 SiteWise Edge 閘道
<a name="cloud-console"></a>

您可以使用 AWS IoT SiteWise 主控台來設定、更新和監控 AWS 帳戶中的所有 SiteWise Edge 閘道。

您可以透過導覽至[AWS IoT SiteWise 主控台](https://console.aws.amazon.com/iotsitewise/)中的 Edge Gateways 頁面來檢視 SiteWise Edge 閘道。 ****若要存取特定**閘道的 Edge 閘道詳細資訊**頁面，請選擇 Edge 閘道的名稱。

從 **Edge 閘道詳細資訊**頁面的**概觀**索引標籤中，您可以執行下列動作：
+ 在**資料來源**區段中，更新資料來源組態並設定其他資料來源
+ 選擇**開啟 CloudWatch 指標**以檢視 CloudWatch 指標主控台中每個資料來源擷取的資料點數量
+ 在 **Edge 功能**區段中，按一下**編輯**，將資料套件新增至 SiteWise Edge 閘道
+ 在**閘道組態**區段中，檢視 SiteWise Edge 閘道的連線狀態
+ 在**發佈者組態**區段中，檢視發佈者元件的 SiteWise Edge AWS IoT SiteWise 閘道同步狀態和組態

從 **Edge 閘道詳細資訊**頁面的**更新**索引標籤中，您可以查看部署到 Edge 閘道的目前元件和套件版本。當新版本可用時，您也可以在此部署新版本。

## 使用 AWS OpsHub for 管理 SiteWise Edge 閘道 AWS IoT SiteWise
<a name="opshub-app"></a>

您可以將 AWS OpsHub 用於 AWS IoT SiteWise 應用程式，以管理和監控自我託管的 SiteWise Edge 閘道。此應用程式提供下列監控和管理選項：
+ 在**概觀**下，您可以執行下列動作：
  + 檢視 SiteWise Edge 閘道詳細資訊，協助您深入了解 SiteWise Edge 閘道裝置資料、識別問題並改善 SiteWise Edge 閘道的效能。
  + 檢視 SiteWise Monitor 入口網站，以監控來自本機伺服器和設備邊緣的資料。如需詳細資訊，請參閱《 *AWS IoT SiteWise Monitor 應用程式指南*》中的[什麼是 AWS IoT SiteWise Monitor](https://docs.aws.amazon.com/iot-sitewise/latest/appguide/what-is-monitor-app.html) 。
+ 在**運作**狀態下，有一個儀表板可顯示來自 SiteWise Edge 閘道的資料。程序工程師等網域專家可以使用儀表板來查看 SiteWise Edge 閘道行為的概觀。
+ 在**資產**下，檢視部署至本機裝置的資產，以及為資產屬性收集或計算的最後一個值。
+ 在**設定**下，您可以執行下列動作：
  + 如果已安裝 Data Processing Pack，請檢視 SiteWise Edge 閘道組態資訊， AWS 並將資源與 雲端同步。
  + 下載可用於使用其他工具存取 SiteWise Edge 閘道的身分驗證檔案。
  + 下載可用於對 SiteWise Edge 閘道進行故障診斷的日誌。
  + 檢視部署到 SiteWise Edge 閘道的 AWS IoT SiteWise 元件。

**重要**  
使用 AWS OpsHub 時需要下列項目 AWS IoT SiteWise：  
您的本機裝置和 AWS OpsHub 應用程式的 AWS IoT SiteWise 必須連接到相同的網路。
必須啟用資料處理套件。

**使用 管理 SiteWise Edge 閘道 AWS OpsHub**

1. 下載並安裝 [AWS OpsHubAWS IoT SiteWise for Windows](https://aws-iot-sitewise.s3.amazonaws.com/gateway/OpsHub+for+AWS+IoT+SiteWise.exe) 應用程式的 。

1. 開啟 應用程式。

1. 如果您沒有為閘道設定本機登入資料，請依照下的步驟[使用本機作業系統登入資料存取 SiteWise Edge 閘道](#create-user-pool)進行設定。

1. 您可以使用 Linux 或輕量型目錄存取通訊協定 (LDAP) 登入資料登入 SiteWise Edge 閘道。若要登入 SiteWise Edge 閘道，請執行下列其中一項操作：

------
#### [ Linux ]

   1. 針對**主機名稱或 IP 地址**，輸入本機裝置的主機名稱或 IP 地址。

   1. 針對**身分驗證**，選擇 **Linux**。

   1. 針對**使用者名稱**，輸入 Linux 作業系統的使用者名稱。

   1. 針對**密碼**，輸入 Linux 作業系統的密碼。

   1. 選擇**登入**。

------
#### [ LDAP ]

   1. 針對**主機名稱或 IP 地址**，輸入本機裝置的主機名稱或 IP 地址。

   1. 針對**身分驗證**，選擇 **LDAP**。

   1. 針對**使用者名稱**，輸入 LDAP 的使用者名稱。

   1. 針對**密碼**，輸入 LDAP 的密碼。

   1. 選擇**登入**。

------

## 使用本機作業系統登入資料存取 SiteWise Edge 閘道
<a name="create-user-pool"></a>

除了輕量型目錄存取通訊協定 (LDAP) 之外，您還可以使用 Linux 或 Windows 登入資料來存取自我託管的 SiteWise Edge 閘道。

**重要**  
若要使用 Linux 登入資料存取 SiteWise Edge 閘道，您必須啟用 SiteWise Edge 閘道的資料處理套件。

### 使用 Linux 作業系統登入資料存取 SiteWise Edge 閘道
<a name="linux-user-pool"></a>

 下列步驟假設您使用裝置搭配 Ubuntu。如果您使用不同的 Linux 發行版本，請參閱裝置的相關文件。

**建立 Linux 使用者集區**

1. 若要建立管理員群組，請執行下列命令。

   ```
   sudo groupadd --system SWE_ADMIN_GROUP
   ```

   `SWE_ADMIN_GROUP` 群組中的使用者可以允許 SiteWise Edge 閘道的管理員存取。

1. 若要建立使用者群組，請執行下列命令。

   ```
   sudo groupadd --system SWE_USER_GROUP
   ```

   `SWE_USER_GROUP` 群組中的使用者可以允許 SiteWise Edge 閘道的唯讀存取。

1. 若要將使用者新增至管理員群組，請執行下列命令。** ** 以您要新增的使用者名稱和密碼取代使用者名稱和密碼。

   ```
   sudo useradd -p $(openssl passwd -1 password) user-name
   ```

1. 若要將使用者新增至 `SWE_ADMIN_GROUP`或 `SWE_USER_GROUP`，請以您在上一個步驟中新增的使用者名稱取代 *user-name*。

   ```
   sudo usermod -a -G SWE_ADMIN_GROUP user-name
   ```

您現在可以使用使用者名稱和密碼來登入 AWS OpsHub AWS IoT SiteWise 應用程式 上的 SiteWise Edge 閘道。

### 使用 Windows 登入資料存取 SiteWise Edge 閘道
<a name="windows-user-pool"></a>

 下列步驟假設您使用裝置搭配 Windows。

**重要**  
安全性是 AWS 與您之間的共同責任。建立至少 12 個字元的強式密碼政策，以及大寫、小寫、數字和符號的組合。此外，設定 Windows 防火牆規則以允許連接埠 443 上的傳入流量，並封鎖所有其他連接埠上的傳入流量。

**建立 Windows Server 使用者集區**

1. 以系統管理員身分執行 PowerShell。

   1. 在您要安裝 SiteWise Edge Gateway 的 Windows 伺服器上，以管理員身分登入。

   1. 在 Windows 搜尋列中輸入 **PowerShell**。

   1. 在搜尋結果中，用滑鼠右鍵按一下 Windows PowerShell 應用程式。選擇**以管理員身分執行**。

1. 若要建立管理員群組，請執行下列命令。

   ```
   net localgroup SWE_ADMIN_GROUP /add
   ```

   您必須是 `SWE_ADMIN_GROUP`群組中的使用者，才能允許 SiteWise Edge 閘道的管理員存取。

1. 若要建立使用者群組，請執行下列命令。

   ```
   net localgroup SWE_USER_GROUP /add
   ```

   您必須是 `SWE_USER_GROUP`群組中的使用者，才能允許 SiteWise Edge 閘道的唯讀存取。

1. 若要新增使用者，請執行下列命令。將*使用者名稱和密碼*取代**為您要建立的使用者名稱和密碼。

   ```
   net user user-name password /add
   ```

1. 若要將使用者新增至管理員群組，請執行下列命令。將 *user-name* 取代為您要新增的使用者名稱。

   ```
   net localgroup SWE_ADMIN_GROUP user-name /add
   ```

您現在可以使用使用者名稱和密碼來登入 AWS OpsHub AWS IoT SiteWise 應用程式 上的 SiteWise Edge 閘道。

## 管理 SiteWise Edge 閘道憑證
<a name="manage-gateway-certificate"></a>

您可以在 SiteWise Edge 閘道裝置上使用 SiteWise Monitor 和第三方應用程式，例如 Grafana。這些應用程式需要與 服務的 TLS 連線。SiteWise Edge 閘道目前使用自我簽署憑證。如果您使用瀏覽器開啟應用程式，例如 SiteWise Monitor 入口網站，您可能會收到不受信任憑證的警告。

以下說明如何從 AWS IoT SiteWise 應用程式 AWS OpsHub 下載信任的憑證。

1. 登入應用程式。

1. 選擇**設定**。

1. 針對**身分驗證**，選擇**下載憑證**。

下列假設您使用 Google Chrome 或 FireFox。如果您使用不同的瀏覽器，請參閱瀏覽器的相關文件。若要將您在上一個步驟中下載的憑證新增至瀏覽器，請執行下列其中一項操作：
+ 如果您使用 Google Chrome，請遵循 *Google Chrome Enterprise 說明文件中*[的設定憑證](https://support.google.com/chrome/a/answer/3505249?hl=en)。
+ 如果您使用 Firefox，請遵循 *Oracle 文件*中的[將憑證載入 Mozilla 或 Firefox 瀏覽器](https://docs.oracle.com/cd/E19528-01/819-4639/gaesv/index.html)。

## 變更 SiteWise Edge 閘道元件套件的版本
<a name="manage-gateway-update-packs"></a>

您可以使用 AWS IoT SiteWise 主控台來變更 SiteWise Edge 閘道上的元件套件版本。

**變更 SiteWise Edge 閘道元件套件的版本**

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

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

1. 選取您要變更套件版本的 SiteWise Edge 閘道。

1. 在**閘道組態**下，選擇**檢視軟體版本**。

1. 在**編輯軟體版本**頁面上，針對您要更新 版本的套件，選取您要部署的版本，然後選擇**部署**。

1. 選擇**完成**。

## 列出 SiteWise Edge 閘道
<a name="manage-gateway-list-gateways"></a>

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

**列出 SiteWise Edge 閘道**

1. <a name="sitewise-open-console"></a>導覽至 [AWS IoT SiteWise 主控台](https://console.aws.amazon.com/iotsitewise/)。

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

1. 檢視所有 SiteWise Edge 閘道的清單。

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

若要使用 列出您的閘道 AWS CLI，請遵循下列步驟：
+ 使用 list-gateways 命令來檢視所有閘道：

  ```
  aws iotsitewise list-gateways
  ```

  此命令會傳回閘道的清單，其中包含其 IDs、名稱和其他資訊。

  您也可以指定分頁參數：

  ```
  aws iotsitewise list-gateways --max-results 10 --next-token your-token
  ```

如需詳細資訊，請參閱《 AWS CLI 命令參考》中的 [list-gateways](https://docs.aws.amazon.com/cli/latest/reference/iotsitewise/list-gateways.html)。

------

## 描述 SiteWise Edge 閘道
<a name="manage-gateway-describe-gateway"></a>

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

**檢視閘道詳細資訊**

1. <a name="sitewise-open-console"></a>導覽至 [AWS IoT SiteWise 主控台](https://console.aws.amazon.com/iotsitewise/)。

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

1. 選擇您要檢視詳細資訊的閘道名稱。

1. 在 **Edge 閘道詳細資訊頁面上檢視閘道詳細資訊**。

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

若要使用 取得特定閘道的詳細資訊 AWS CLI，請遵循下列步驟：
+ 使用 describe-gateway 命令搭配閘道 ID：

  ```
  aws iotsitewise describe-gateway --gateway-id a1b2c3d4-5678-90ab-cdef-1a1a1EXAMPLE
  ```

  此命令會傳回閘道的詳細資訊。

如需詳細資訊，請參閱《 AWS CLI 命令參考》中的 [describe-gateway](https://docs.aws.amazon.com/cli/latest/reference/iotsitewise/describe-gateway.html)。

------

## 建立 SiteWise Edge 閘道
<a name="manage-gateway-create-gateway"></a>

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

**建立 SiteWise Edge 閘道**

1. <a name="sitewise-open-console"></a>導覽至 [AWS IoT SiteWise 主控台](https://console.aws.amazon.com/iotsitewise/)。

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

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

1. 輸入閘道的名稱。

1. 選取閘道的 Greengrass 群組。

1. 或者，將標籤新增至閘道。

1. 選擇**建立**。

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

若要使用 建立新的 IoT SiteWise 閘道 AWS CLI，請遵循下列步驟：
+ 使用 create-gateway 命令建立新的閘道：

  ```
  aws iotsitewise create-gateway \
      --gateway-name "NewSiteWiseGateway" \
      --gateway-platform '{
          "greengrass": {
              "groupArn": "arn:aws:greengrass:us-east-1:123456789012:group/a1b2c3d4-5678-90ab-cdef-1a1a1EXAMPLE"
          }
      }' \
      --tags '{
          "Environment": "Production",
          "Location": "Factory1"
      }'
  ```

  此命令會傳回新閘道的 ID 和 ARN：

  ```
  {
      "gatewayId": "a1b2c3d4-5678-90ab-cdef-1a1a1EXAMPLE",
      "gatewayArn": "arn:aws:iotsitewise:us-east-1:123456789012:gateway/a1b2c3d4-5678-90ab-cdef-1a1a1EXAMPLE"
  }
  ```

如需詳細資訊，請參閱《 AWS CLI 命令參考》中的 [create-gateway](https://docs.aws.amazon.com/cli/latest/reference/iotsitewise/create-gateway.html)。

------

## 更新 SiteWise Edge 閘道
<a name="manage-gateway-update-gateway"></a>

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

**更新 SiteWise Edge 閘道**

1. <a name="sitewise-open-console"></a>導覽至 [AWS IoT SiteWise 主控台](https://console.aws.amazon.com/iotsitewise/)。

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

1. 選取您要更新的閘道。

1. 選擇**編輯**。

1. 視需要更新閘道名稱或其他設定。

1. 選擇**儲存**。

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

若要使用 更新現有的閘道 AWS CLI，請遵循下列步驟：
+ 使用 update-gateway 命令更新閘道的名稱：

  ```
  aws iotsitewise update-gateway \
      --gateway-id a1b2c3d4-5678-90ab-cdef-1a1a1EXAMPLE \
      --gateway-name "UpdatedGatewayName"
  ```

  此命令成功後就不會產生輸出。

如需詳細資訊，請參閱《 AWS CLI 命令參考》中的 [update-gateway](https://docs.aws.amazon.com/cli/latest/reference/iotsitewise/update-gateway.html)。

------

## 更新閘道功能組態
<a name="manage-gateway-update-capability"></a>

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

**更新閘道功能組態**

1. <a name="sitewise-open-console"></a>導覽至 [AWS IoT SiteWise 主控台](https://console.aws.amazon.com/iotsitewise/)。

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

1. 選擇您要更新的閘道名稱。

1. 在**資料來源**區段中，選擇**編輯**。

1. 視需要更新資料來源組態。

1. 選擇**儲存**。

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

若要使用 更新閘道的功能組態 AWS CLI，請遵循下列步驟：
+ 使用 update-gateway-capability-configuration 命令來更新功能組態：

  ```
  aws iotsitewise update-gateway-capability-configuration \
      --gateway-id a1b2c3d4-5678-90ab-cdef-1a1a1EXAMPLE \
      --capability-namespace "iotsitewise:opcuacollector:1" \
      --capability-configuration '{
          "sources": [
              {
                  "name": "OPC-UA Server",
                  "endpoint": {
                      "certificateTrust": {
                          "type": "TrustAny"
                      },
                      "endpointUri": "opc.tcp://10.0.0.1:4840",
                      "securityPolicy": "NONE",
                      "messageSecurityMode": "NONE",
                      "identityProvider": {
                          "type": "Anonymous"
                      }
                  },
                  "measurementDataStreamPrefix": ""
              }
          ]
      }'
  ```

  此命令會傳回功能命名空間和同步狀態：

  ```
  {
      "capabilityNamespace": "iotsitewise:opcuacollector:1",
      "capabilitySyncStatus": "CONFIGURING"
  }
  ```

如需詳細資訊，請參閱《 AWS CLI 命令參考》中的 [update-gateway-capability-configuration](https://docs.aws.amazon.com/cli/latest/reference/iotsitewise/update-gateway-capability-configuration.html)。

------

## 標記閘道資源
<a name="manage-gateway-tag-resources"></a>

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

**標記閘道資源**

1. <a name="sitewise-open-console"></a>導覽至 [AWS IoT SiteWise 主控台](https://console.aws.amazon.com/iotsitewise/)。

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

1. 選擇您要標記的閘道名稱。

1. 選擇 **Tags** (標籤) 索引標籤。

1. 選擇**管理標籤**。

1. 選擇**新增標籤**，然後為每個標籤輸入索引鍵和值。

1. 選擇**儲存**。

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

若要使用 將標籤新增至閘道 AWS CLI，請遵循下列步驟：
+ 使用 tag-resource 命令將標籤新增至閘道：

  ```
  aws iotsitewise tag-resource \
      --resource-arn "arn:aws:iotsitewise:us-east-1:123456789012:gateway/a1b2c3d4-5678-90ab-cdef-1a1a1EXAMPLE" \
      --tags '{
          "Department": "Operations",
          "Project": "FactoryAutomation"
      }'
  ```

  此命令成功後就不會產生輸出。

如需詳細資訊，請參閱《 AWS CLI 命令參考》中的 [tag-resource](https://docs.aws.amazon.com/cli/latest/reference/iotsitewise/tag-resource.html)。

------

## 列出閘道的標籤
<a name="manage-gateway-list-tags"></a>

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

**列出閘道的標籤**

1. <a name="sitewise-open-console"></a>導覽至 [AWS IoT SiteWise 主控台](https://console.aws.amazon.com/iotsitewise/)。

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

1. 選擇您要檢視標籤的閘道名稱。

1. 選擇 **Tags** (標籤) 索引標籤。

1. 檢視與閘道相關聯的標籤清單。

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

若要使用 列出與閘道相關聯的標籤 AWS CLI，請遵循下列步驟：
+ 使用 list-tags-for-resource 命令列出閘道的標籤：

  ```
  aws iotsitewise list-tags-for-resource \
      --resource-arn "arn:aws:iotsitewise:us-east-1:123456789012:gateway/a1b2c3d4-5678-90ab-cdef-1a1a1EXAMPLE"
  ```

  此命令會傳回與閘道相關聯的標籤：

  ```
  {
      "tags": {
          "Environment": "Production",
          "Location": "Factory1",
          "Department": "Operations",
          "Project": "FactoryAutomation"
      }
  }
  ```

如需詳細資訊，請參閱《 AWS CLI 命令參考》中的 [list-tags-for-resource](https://docs.aws.amazon.com/cli/latest/reference/iotsitewise/list-tags-for-resource.html)。

------

## 從閘道移除標籤
<a name="manage-gateway-untag-resources"></a>

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

**從閘道移除標籤**

1. <a name="sitewise-open-console"></a>導覽至 [AWS IoT SiteWise 主控台](https://console.aws.amazon.com/iotsitewise/)。

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

1. 選擇您要從中移除標籤的閘道名稱。

1. 選擇 **Tags** (標籤) 索引標籤。

1. 選擇**管理標籤**。

1. 選擇您要移除的每個標籤旁的移除圖示 (X)。

1. 選擇**儲存**。

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

若要使用 從閘道移除標籤 AWS CLI，請遵循下列步驟：
+ 使用 untag-resource 命令從閘道移除標籤：

  ```
  aws iotsitewise untag-resource \
      --resource-arn "arn:aws:iotsitewise:us-east-1:123456789012:gateway/a1b2c3d4-5678-90ab-cdef-1a1a1EXAMPLE" \
      --tag-keys '["Project", "Department"]'
  ```

  此命令成功後就不會產生輸出。

如需詳細資訊，請參閱《 AWS CLI 命令參考》中的 [untag-resource](https://docs.aws.amazon.com/cli/latest/reference/iotsitewise/untag-resource.html)。

------

## 更新 AWS IoT SiteWise 元件的版本
<a name="update-component-version"></a>

更新 AWS IoT Greengrass 核心裝置上的 AWS IoT SiteWise 閘道元件，以確保您存取最新的功能、效能改善和安全性修補程式。

**若要更新 上的 AWS IoT SiteWise 元件 AWS IoT Greengrass**

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

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

1. 選取要編輯的閘道，然後選擇**編輯**。

1. 在 **Edge 功能**中，在**軟體版本**下，選擇**可用的軟體更新**。隨即顯示**編輯軟體版本**頁面。

1. 選擇元件版本。
**注意**  
建議您選取可用的最新版本。讓閘道元件保持up-to-date，可協助您維持工業資料收集和處理的最佳功能。

1. 選擇**部署**。這會啟動 AWS IoT Greengrass V2 部署，以更新閘道上的 AWS IoT SiteWise 元件。

## 刪除 SiteWise Edge 閘道
<a name="manage-gateway-delete-gateway"></a>

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

**刪除 SiteWise Edge 閘道**

1. <a name="sitewise-open-console"></a>導覽至 [AWS IoT SiteWise 主控台](https://console.aws.amazon.com/iotsitewise/)。

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

1. 選擇您要刪除的閘道。

1. 選擇 **刪除**。

1. 若要確認要刪除閘道，請輸入「刪除」，然後在顯示的視窗中選擇**刪除**。

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

若要使用 刪除閘道 AWS CLI，請遵循下列步驟：

1. 列出您的閘道，以識別您要刪除之閘道的閘道 ID。

   ```
   aws iotsitewise list-gateways
   ```

   此命令會傳回閘道的清單，其中包含其 IDs、名稱和其他資訊：

   ```
   {
       "gatewaySummaries": [
           {
               "gatewayId": "a1b2c3d4-5678-90ab-cdef-1a1a1EXAMPLE",
               "gatewayName": "ExampleCorpGateway",
               "gatewayCapabilitySummaries": [
                   {
                       "capabilityNamespace": "iotsitewise:opcuacollector:1",
                       "capabilitySyncStatus": "IN_SYNC"
                   }
               ],
               "creationDate": 1588369971.457,
               "lastUpdateDate": 1588369971.457
           }
       ]
   }
   ```

1. 透過指定閘道的 ID 來刪除閘道：

   ```
   aws iotsitewise delete-gateway --gateway-id a1b2c3d4-5678-90ab-cdef-1a1a1EXAMPLE
   ```

   此命令成功後就不會產生輸出。
**注意**  
當您刪除閘道時，閘道的某些檔案會保留在閘道的檔案系統中。

1. 若要確認閘道已刪除，您可以再次列出閘道：

   ```
   aws iotsitewise list-gateways
   ```

   已刪除的閘道不應再出現在清單中。

如需詳細資訊，請參閱《 AWS CLI 命令參考》中的 [delete-gateway](https://docs.aws.amazon.com/cli/latest/reference/storagegateway/delete-gateway.html)。

------

# 備份和還原 SiteWise Edge 閘道
<a name="backup-restore-gateways-ggv2"></a>

本主題說明如何還原 SiteWise Edge 閘道和備份指標資料。如果您在相同機器上遇到故障的 SiteWise Edge 閘道問題，且需要對問題進行故障診斷，請閱讀 AWS IoT SiteWise 文件[對 SiteWise Edge 閘道問題進行故障診斷](https://docs.aws.amazon.com//iot-sitewise/latest/userguide/troubleshooting-gateway.html#troubleshoot-gateway-issues)。

**注意**  
本主題涵蓋的指引適用於安裝在 2.1.0 AWS IoT Greengrass V2 版或更新版本上的 SiteWise Edge 閘道。

## 指標資料的每日備份
<a name="backup-restore-gateways-ggv2-metrics"></a>

如果您想要在新機器上傳輸或還原資料，建立備份非常重要。備份資料可大幅降低傳輸或還原過程中遺失操作資料的風險。

本節適用於使用資料處理套件的閘道。如需資料處理套件的詳細資訊，請參閱 [設定用於 SiteWise Edge 上資料處理的資產模型](edge-processing.md#process-gateway-data-edge)。

**influxdb** 資料夾路徑如下所示：

------
#### [ Linux ]

`/greengrass/v2/work/aws.iot.SiteWiseEdgeProcessor/influxdb `

------
#### [ Windows ]

`C:\greengrass\v2\work\aws.iot.SiteWiseEdgeProcessor\influxdb`

------

建議您將整個資料夾備份到其中的所有內容。

建議您定期將指標資料從 1.0 SiteWise Edge 備份至外部硬碟或 AWS 雲端。

## 還原 SiteWise Edge 閘道
<a name="backup-restore-gateways-ggv2-restore"></a>

嘗試還原 SiteWise Edge 閘道之前，請確定所有連接至閘道的邊緣裝置都已停止或中斷連線。

使用下列程序還原 SiteWise Edge 閘道：

1. 使用您建立 SiteWise Edge 閘道時下載的安裝指令碼，在新機器上還原 SiteWise Edge 閘道。閱讀[在本機裝置上安裝 SiteWise Edge 閘道軟體](https://docs.aws.amazon.com//iot-sitewise/latest/userguide/install-gateway-software-on-local-device.html)，以設定 SiteWise Edge 閘道。

   如果您遺失或找不到安裝指令碼，請聯絡[AWS 客戶支援](https://aws.amazon.com/contact-us/)。

1. 安裝 SiteWise Edge 閘道後，請登入 [AWS IoT Greengrass 主控台](https://console.aws.amazon.com/greengrass)。

1. 若要重新部署元件，請導覽至**管理**，然後在**AWS IoT Greengrass 裝置**下選取**核心裝置**。

1. 在**AWS IoT Greengrass 核心裝置**表格中，選取對應至 SiteWise Edge 閘道的核心裝置。

1. 在裝置頁面上，開啟**部署**索引標籤並選取您的**部署 ID**，這會使用您選取的 ID **開啟部署**頁面。

1. 進入**部署**頁面後，按一下右上角**的動作**按鈕，然後選取**修訂**選項。 以啟動新的部署。設定 部署。如果您想要保持部署不變，請跳至**檢閱**和**部署**。

1. 等待**部署狀態**變成 `Completed`。
**注意**  
SiteWise Edge 上的所有元件也需要幾分鐘的時間才能完全設定和執行。

## 還原 AWS IoT SiteWise 資料
<a name="backup-restore-gateways-ggv2-restore-sw"></a>

使用下列程序在新機器上還原資料。

1. 將 `influxdb` 資料夾複製到新機器。

1. 在終端機中執行下列命令，以停止 SiteWise EdgeProcessor 元件：

------
#### [ Linux ]

    sudo `/greengrass/v2/bin/greengrass-cli component stop -n aws.iot.SiteWiseEdgeProcessor`

------
#### [ Windows ]

   `C:\greengrass\v2\bin\greengrass-cli component stop -n aws.iot.SiteWiseEdgeProcesso`

------

1. 找到您備份資料的路徑，並執行下列命令：

------
#### [ Linux ]

   `sudo yes | sudo cp -rf <influxdb_backup_path> /greengrass/v2/work/aws.iot.SiteWiseEdgeProcessor/influxdb `

------
#### [ PowerShell ]

   `Copy-Item -Recurse -Force <influxdb_backup_path>\* C:\greengrass\v2\work\aws.iot.SiteWiseEdgeProcessor\`

------
#### [ Windows ]

   `robocopy <influxdb_backup_path> C:\greengrass\v2\work\aws.iot.SiteWiseEdgeProcessor\ /E`

------

1. 重新啟動 SiteWiseEdgeProcessor 元件：

------
#### [ Linux ]

   `sudo /greengrass/v2/bin/greengrass-cli component restart -n aws.iot.SiteWiseEdgeProcessor`

------
#### [ Windows ]

   `C:\greengrass\v2\bin\greengrass-cli component restart -n aws.iot.SiteWiseEdgeProcessor`

------

## 驗證成功的備份和還原
<a name="backup-restore-gateways-ggv2-validate"></a>

使用此程序驗證備份資料和 SiteWise Edge 閘道還原。

**注意**  
此程序需要您已為 安裝 AWS OpsHub AWS IoT SiteWise。如需詳細資訊，請參閱[使用 AWS OpsHub 管理 SiteWise Edge 閘道 AWS IoT SiteWise](https://docs.aws.amazon.com//iot-sitewise/latest/userguide/manage-gateways-ggv2.html)。

1. 適用於 的 Open AWS OpsHub AWS IoT SiteWise。

1. 在 SiteWise Edge Gateway **設定**頁面上，檢查元件資料表中列出的每個**元件**的狀態。確認狀態顏色為綠色，且讀數顯示 **RUNNING**。

1. 在入口網站儀表板上驗證您過去的資料，以檢查過去的資料和新資料是否都已正確設定。過去和新的資料之間會有停機時間。除了 之外，您應該查看未收集任何資料點的持續時間。

如果您在備份或還原 SiteWise Edge 閘道時遇到問題，請參閱下列故障診斷主題 [故障診斷 AWS IoT SiteWise Edge 閘道](https://docs.aws.amazon.com//iot-sitewise/latest/userguide/troubleshooting-gateway.html)。

# 舊版閘道 (AWS IoT Greengrass Version 1)
<a name="gateways-ggv1"></a>

**注意**  
 AWS IoT Greengrass V1 只有在 2021 年 7 月 29 日之前開始使用此功能時，才能使用在 上執行的 SiteWise Edge 閘道。如需使用 執行 AWS IoT SiteWise 閘道的詳細資訊 AWS IoT Greengrass V2，請參閱 [使用 自我託管 AWS IoT SiteWise Edge 閘道 AWS IoT Greengrass V2](gw-self-host-gg2.md)。

SiteWise Edge 閘道現在專門在 上執行 AWS IoT Greengrass V2，為您的工業 IoT 應用程式提供增強的功能並改善效能。此最新版本 AWS IoT Greengrass V2 代表架構演進，以現代元件型架構為基礎，可啟用模組化軟體部署。它透過統一的安裝程式簡化安裝，同時為開發人員提供部署自訂元件和進行本機測試的更大靈活性。元件型模型允許更有效率的資源管理，並透過元件配方引入簡化的組態方法。此設計有助於元件之間的更佳相依性處理、支援持續部署實務，並提供增強型 CLI 功能以進行本機開發。此外， 會透過 AWS IoT Greengrass V2 集中管理組態， AWS IoT Core 並提供改善的記錄和監控功能，所有功能都受到更精細的安全許可模型保護。

如需使用 開始使用 SiteWise Edge 閘道的詳細資訊 AWS IoT Greengrass V2，[AWS IoT SiteWise Edge 自我託管閘道需求](configure-gateway-ggv2.md)請參閱。這些資源提供step-by-step說明。 IoT 

**注意**  
隨著 AWS 持續創新並改善其 IoT 服務，建議您隨時掌握最新的功能和增強功能。定期檢查 AWS IoT SiteWise 和 AWS IoT Greengrass 文件，以取得可進一步最佳化工業 IoT 解決方案的新功能。