

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

# AWS提供的元件
<a name="public-components"></a>

AWS IoT Greengrass 提供和維護預先建置的元件，您可以將這些元件部署到您的裝置。這些元件包括功能 （例如串流管理員）、 AWS IoT Greengrass V1 連接器 （例如 CloudWatch 指標） 和本機開發工具 （例如 AWS IoT Greengrass CLI)。您可以將[這些元件部署](manage-deployments.md)到裝置以進行其獨立功能，也可以將其用作[自訂 Greengrass 元件](develop-greengrass-components.md)中的相依項。

**注意**  <a name="component-nucleus-dependency-update-note"></a>
數個 AWS提供的元件取決於 Greengrass 核的特定次要版本。由於此相依性，當您將 Greengrass 核更新為新的次要版本時，您需要更新這些元件。如需每個元件所依賴之核的特定版本的相關資訊，請參閱對應的元件主題。如需更新核心的詳細資訊，請參閱 [更新 AWS IoT Greengrass 核心軟體 (OTA)](update-greengrass-core-v2.md)。

<a name="component-table-type-description"></a>當元件同時具有通用和 Lambda 的元件類型時，元件的目前版本是通用類型，而元件的先前版本是 Lambda 類型。


| 元件 | 說明 | [元件類型](develop-greengrass-components.md#component-types) | 支援的作業系統 | [開放原始碼](open-source.md) | 與 NVMe lite 相容 | 
| --- | --- | --- | --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | Core AWS IoT Greengrass 軟體的核。使用此元件來設定和更新核心裝置上的軟體。 | Huleus | Linux、Windows | [是](https://github.com/aws-greengrass/aws-greengrass-nucleus) | 否 | 
| [Greengrass nucleus lite](greengrass-nucleus-lite-component.md) | 針對低成本、邊緣裝置和大量應用程式最佳化之資源受限裝置的輕量型核心 | NucleusLite | Linux | [是](https://github.com/aws-greengrass/aws-greengrass-lite) | 否 | 
| <a name="client-device-auth-component-table-row"></a>[用戶端裝置身分驗證](client-device-auth-component.md) | 讓稱為用戶端裝置的本機 IoT 裝置連線至核心裝置。 | 外掛程式 | Linux、Windows | [是](https://github.com/aws-greengrass/aws-greengrass-client-device-auth) | 否 | 
| [CloudWatch 指標](cloudwatch-metrics-component.md) | 將自訂指標發佈至 Amazon CloudWatch。 | 一般、Lambda | Linux、Windows | [是](https://github.com/aws-greengrass/aws-greengrass-cloudwatch-metrics) | 是 | 
| [AWS IoT Device Defender](device-defender-component.md) | 通知管理員 Greengrass 核心裝置狀態的變更，以識別異常行為。 | 一般、Lambda | Linux、Windows | [是](https://github.com/aws-greengrass/aws-greengrass-device-defender) | 否 | 
| [磁碟多工緩衝處理](disk-spooler-component.md) | 針對從 Greengrass 核心裝置到 的多工緩衝處理訊息，啟用持久性儲存選項 AWS IoT Core。此元件會將這些傳出訊息存放在磁碟上。 | 外掛程式 | Linux、Windows | [是](https://github.com/aws-greengrass/aws-greengrass-disk-spooler) | 否 | 
| [Docker 應用程式管理員](docker-application-manager-component.md) |  AWS IoT Greengrass 可讓您從 Docker Hub 和 Amazon Elastic Container Registry (Amazon ECR) 下載 Docker 映像。 | 一般 | Linux、Windows | 否 | 否 | 
| [Kinesis Video Streams 的邊緣連接器](kvs-edge-connector-component.md) | 從本機攝影機讀取影片摘要、將串流發佈至 Kinesis Video Streams，並使用 AWS IoT TwinMaker 在 Grafana 儀表板中顯示串流。 | 一般 | Linux | 否 | 否 | 
| [Greengrass CLI](greengrass-cli-component.md) | 提供命令列界面，您可以用來建立本機部署，並與 Greengrass 核心裝置及其元件互動。 | 外掛程式 | Linux、Windows | [是](https://github.com/aws-greengrass/aws-greengrass-cli) | [否](https://github.com/aws-greengrass/aws-greengrass-lite/blob/main/docs/ggl-cli.md) | 
| <a name="ip-detector-component-table-row"></a>[IP 偵測器](ip-detector-component.md) | 向 報告 MQTT 代理程式連線資訊 AWS IoT Greengrass，以便用戶端裝置可以探索如何連線。 | 外掛程式 | Linux、Windows | [是](https://github.com/aws-greengrass/aws-greengrass-ip-detector) | 否 | 
| [Firehose](kinesis-firehose-component.md) | 透過 Amazon Data Firehose 交付串流將資料發佈至 中的目的地 AWS 雲端。 | Lambda | Linux | 否 | 否 | 
| [Lambda 啟動器](lambda-launcher-component.md) | 處理 Lambda 函數的程序和環境組態。 | 一般 | Linux | 否 | 否 | 
| [Lambda 管理員](lambda-manager-component.md) | 處理 Lambda 函數的處理程序間通訊和擴展。 | 外掛程式 | Linux | 否 | 否 | 
| [Lambda 執行期](lambda-runtimes-component.md) | 提供每個 Lambda 執行時間的成品。 | 一般 | Linux | 否 | 否 | 
| [傳統訂閱路由器](legacy-subscription-router-component.md) | 管理在 AWS IoT Greengrass V1 上執行的 Lambda 函數訂閱。 | 一般 | Linux | 否 | 否 | 
| [本機偵錯主控台](local-debug-console-component.md) | 提供本機主控台，可讓您用來偵錯和管理 Greengrass 核心裝置及其元件。 | 外掛程式 | Linux、Windows | [是](https://github.com/aws-greengrass/aws-greengrass-localdebugconsole) | 否 | 
| [日誌管理員](log-manager-component.md) | 在 Greengrass 核心裝置上收集和上傳日誌。 | 外掛程式 | Linux、Windows | [是](https://github.com/aws-greengrass/aws-greengrass-log-manager) | 否 | 
| [機器學習元件](machine-learning-components.md) | 提供機器學習模型和範例推論程式碼，您可以用來在 Greengrass 核心裝置上執行機器學習推論。 | 請參閱 [機器學習元件](machine-learning-components.md)。 | 否 | 
| [Modbus-RTU 通訊協定轉接器](modbus-rtu-protocol-adapter-component.md) | 從本機 Modbus RTU 裝置輪詢資訊。 | Lambda | Linux | 否 | 否 | 
| [Nucleus 遙測發射器](nucleus-emitter-component.md) | 將從 核收集的系統運作狀態遙測資料發佈至本機主題或 AWS IoT Core MQTT 主題。 | 外掛程式 | Linux、Windows | [是](https://github.com/aws-greengrass/aws-greengrass-telemetry-nucleus-emitter) | 否 | 
| <a name="mqtt-bridge-component-table-row"></a>[MQTT 橋接器](mqtt-bridge-component.md) | 在用戶端裝置、本機 AWS IoT Greengrass 發佈/訂閱和 之間轉送 MQTT 訊息 AWS IoT Core。 | 外掛程式 | Linux、Windows | [是](https://github.com/aws-greengrass/aws-greengrass-mqtt-bridge) | 否 | 
| <a name="mqtt-broker-moquette-component-table-row"></a>[MQTT 3.1.1 代理程式 (Moquette)](mqtt-broker-moquette-component.md) | 執行 MQTT 3.1.1 代理程式，處理用戶端裝置和核心裝置之間的訊息。 | 外掛程式 | Linux、Windows | [是](https://github.com/aws-greengrass/aws-greengrass-moquette-mqtt) | 否 | 
| <a name="mqtt-broker-emqx-component-table-row"></a>[MQTT 5 代理程式 (EMQX)](mqtt-broker-emqx-component.md) | 執行 MQTT 5 代理程式，處理用戶端裝置和核心裝置之間的訊息。 | 一般 | Linux、Windows | 否 | 否 | 
| [PKCS\$111 供應商](pkcs11-provider-component.md) | 讓 Greengrass 元件存取您安全地存放在硬體安全模組 (HSM) 中的私有金鑰和憑證。 | 外掛程式 | Linux | [是](https://github.com/aws-greengrass/aws-greengrass-pkcs11-provider) | 否 | 
| [秘密管理員](secret-manager-component.md) | 從秘密部署 AWS Secrets Manager 秘密，讓您可以在 Greengrass 核心裝置上的自訂元件中安全地使用登入資料，例如密碼。 | 外掛程式 | Linux、Windows | [是](https://github.com/aws-greengrass/aws-greengrass-secret-manager) | 否 | 
| [安全通道](secure-tunneling-component.md) | 啟用 AWS IoT 安全通道連線，您可以使用這些連線與受限防火牆後方的 Greengrass 核心裝置建立競價通訊。 | 一般 | Linux | 否 | 是 | 
| <a name="shadow-manager-component-table-row"></a>[Shadow 管理員](shadow-manager-component.md) | 啟用與核心裝置上陰影的互動。它管理影子文件儲存，以及本機影子狀態與 AWS IoT Device Shadow 服務的同步。 | 外掛程式 | Linux、Windows | [是](https://github.com/aws-greengrass/aws-greengrass-shadow-manager) | 否 | 
| [Amazon SNS](sns-component.md) | 發佈訊息至 Amazon SNS 主題。 | Lambda | Linux | 否 | 否 | 
| [串流管理員](stream-manager-component.md) | 將大量資料從本機來源串流至 AWS 雲端。 | 一般 | Linux、Windows | 否 | 是 | 
| [系統日誌轉寄站](system-log-forwarder-component.md) | 將 systemd-journald 日誌上傳至 AWS 雲端。 | 一般 | Linux | [是](https://github.com/aws-greengrass/aws-greengrass-system-log-forwarder) | 是 | 
| [Systems Manager 代理程式](systems-manager-agent-component.md) | 使用 管理核心裝置 AWS Systems Manager，可讓您修補裝置、執行命令等。 | 一般 | Linux | [是](https://github.com/aws/amazon-ssm-agent/blob/mainline/packaging/greengrass/component.json) | 否 | 
| [字符交換服務](token-exchange-service-component.md) | 提供您可以用來與 AWS 服務互動的 AWS 登入資料。 | 一般 | Linux、Windows | 否 | 否 | 
| [IoT SiteWise OPC UA 收集器](iotsitewise-opcua-collector-component.md) | 從 OPC-UA 伺服器收集資料。 | 一般 | Linux、Windows | 否 | 否 | 
| [IoT SiteWise OPC UA 資料來源模擬器](iotsitewise-opcua-data-source-simulator-component.md) | 執行產生範例資料的本機 OPC-UA 伺服器。 | 一般 | Linux、Windows | 否 | 否 | 
| [IoT SiteWise 發佈者](iotsitewise-publisher-component.md) | 將資料發佈至 AWS 雲端。 | 一般 | Linux、Windows | 否 | 否 | 
| [IoT SiteWise 處理器](iotsitewise-processor-component.md) | 處理 Greengrass 核心裝置上的資料。 | 一般 | Linux、Windows | 否 | 否 | 

# Greengrass 核
<a name="greengrass-nucleus-component"></a>

Greengrass 核元件 (`aws.greengrass.Nucleus`) 是強制性元件，也是在裝置上執行 AWS IoT Greengrass Core 軟體的最低需求。您可以設定此元件以從遠端自訂和更新 AWS IoT Greengrass Core 軟體。部署此元件以在核心裝置上設定代理、裝置角色和 AWS IoT 物件組態等設定。

**注意**  
自 Greengrass 2.14.0 版起，限制邊緣裝置可使用記憶體使用量最佳化版本的 nucleus 裝置執行期。如需其組態和使用方式的詳細資訊，請參閱 [Greengrass nucleus lite](https://docs.aws.amazon.com/greengrass/v2/developerguide/greengrass-nucleus-lite-component.html)。

**重要**  
當核心元件的版本變更，或當您變更特定組態參數時，包含您裝置上的核心 AWS IoT Greengrass 軟體和所有其他元件會開始套用變更。  
<a name="component-patch-update"></a>當您部署元件時， 會 AWS IoT Greengrass 安裝該元件所有相依性的最新支援版本。因此，如果您將新裝置新增至物件群組，或更新以這些裝置為目標的部署，則可能會自動將新修補程式版本的 AWS公有元件部署到您的核心裝置。有些自動更新，例如 核更新，可能會導致您的裝置意外重新啟動。  
<a name="component-version-pinning"></a>為了防止在您裝置上執行之元件的意外更新，我們建議您[在建立部署](create-deployments.md)時直接包含該元件的偏好版本。如需 AWS IoT Greengrass Core 軟體更新行為的詳細資訊，請參閱 [更新 AWS IoT Greengrass 核心軟體 (OTA)](update-greengrass-core-v2.md)。

**Topics**
+ [版本](#greengrass-nucleus-component-versions)
+ [裝置要求](#greengrass-v2-requirements)
+ [支援平台](#greengrass-v2-supported-platforms)
+ [作業系統](#greengrass-nucleus-component-os-support)
+ [需求](#greengrass-nucleus-component-requirements)
+ [相依性](#greengrass-nucleus-component-dependencies)
+ [下載並安裝](#greengrass-nucleus-component-install)
+ [Configuration](#greengrass-nucleus-component-configuration)
+ [本機日誌檔案](#greengrass-nucleus-component-log-file)
+ [變更記錄](#greengrass-nucleus-component-changelog)

## 版本
<a name="greengrass-nucleus-component-versions"></a>

此元件具有下列版本：
+ 2.16.x
+ 2.15.x
+ 2.14.x
+ 2.13.x
+ 2.12.x
+ 2.11.x
+ 2.10.x
+ 2.9.x
+ 2.8.x
+ 2.7.x
+ 2.6.x
+ 2.5.x
+ 2.4.x 版本
+ 2.3.x 版本
+ 2.2.x 版本
+ 2.1.x
+ 2.0.x

## 裝置要求
<a name="greengrass-v2-requirements"></a>

**注意**  
您可以使用 AWS IoT Device Tester 的 AWS IoT Greengrass 來驗證您的裝置是否可以執行 AWS IoT Greengrass 核心軟體並與 通訊 AWS 雲端。如需詳細資訊，請參閱[使用 AWS IoT Device Tester for AWS IoT Greengrass V2](device-tester-for-greengrass-ug.md)。

------
#### [ Linux ]
+ <a name="requirement-supported-region"></a>使用 [AWS 區域](https://en.wikipedia.org/wiki/Amazon_Web_Services#Availability_and_topology) 支援的 AWS IoT Greengrass V2。如需支援區域的清單，請參閱《*AWS 一般參考*》中的 [AWS IoT Greengrass V2 端點和配額](https://docs.aws.amazon.com/general/latest/gr/greengrassv2.html)。
+ Core AWS IoT Greengrass 軟體的可用磁碟空間至少為 256 MB。此要求不包含部署到核心裝置的元件。
+ 配置給 AWS IoT Greengrass Core 軟體的最小 96 MB RAM。此要求不包含在核心裝置上執行的元件。如需詳細資訊，請參閱[使用 JVM 選項控制記憶體配置](configure-greengrass-core-v2.md#jvm-tuning)。
+ Java 執行期環境 (JRE) 第 8 版或更新版本。Java 必須在裝置上的 [PATH](https://en.wikipedia.org/wiki/PATH_(variable)) 環境變數上可用。若要使用 Java 開發自訂元件，您必須安裝 Java 開發套件 (JDK)。我們建議您使用 [Amazon Corretto](https://aws.amazon.com/corretto/) 或 [OpenJDK](https://openjdk.java.net/) 長期支援版本。第 8 版或更新版本為必要項目。
+ [GNU C 程式庫](https://www.gnu.org/software/libc/) (glibc) 2.25 版或更新版本。
+ 您必須以根使用者身分執行 AWS IoT Greengrass Core 軟體。例如`sudo`，使用 。
+ 執行 AWS IoT Greengrass Core 軟體的根使用者，例如 `root`，必須具有`sudo`許可，才能使用任何使用者和任何群組執行 。`/etc/sudoers` 檔案必須授予此使用者執行 `sudo`做為其他群組的許可。中使用者的許可`/etc/sudoers`應如下所示。

  ```
  root    ALL=(ALL:ALL) ALL
  ```
+ 核心裝置必須能夠對一組端點和連接埠執行傳出請求。如需詳細資訊，請參閱[允許透過代理或防火牆的裝置流量](allow-device-traffic.md)。
+ `/tmp` 目錄必須掛載有 `exec` 許可。
+ 下列所有 shell 命令：
  + `ps -ax -o pid,ppid`
  + `sudo`
  + `sh`
  + `kill`
  + `cp`
  + `chmod`
  + `rm`
  + `ln`
  + `echo`
  + `exit`
  + `id`
  + `uname`
  + `grep`
+ 您的裝置也可能需要下列選用的 shell 命令：
  + （選用） `systemctl`。此命令用於將 AWS IoT Greengrass Core 軟體設定為系統服務。
  + （選用） `useradd`、 `groupadd`和 `usermod`。這些命令用於設定`ggc_user`系統使用者和`ggc_group`系統群組。
  + （選用） `mkfifo`。此命令用於執行 Lambda 函數做為元件。
+ 若要設定元件程序的系統資源限制，您的裝置必須執行 Linux 核心版本 2.6.24 或更新版本。
+ 若要執行 Lambda 函數，您的裝置必須符合其他要求。如需詳細資訊，請參閱[Lambda 函數需求](setting-up.md#greengrass-v2-lambda-requirements)。

------
#### [ Windows ]
+ <a name="requirement-supported-region"></a>使用 [AWS 區域](https://en.wikipedia.org/wiki/Amazon_Web_Services#Availability_and_topology)支援的 AWS IoT Greengrass V2。如需支援區域的清單，請參閱《*AWS 一般參考*》中的 [AWS IoT Greengrass V2 端點和配額](https://docs.aws.amazon.com/general/latest/gr/greengrassv2.html)。
+ Core AWS IoT Greengrass 軟體的可用磁碟空間至少為 256 MB。此要求不包含部署到核心裝置的元件。
+ 配置給 AWS IoT Greengrass Core 軟體的最小 160 MB RAM。此要求不包含在核心裝置上執行的元件。如需詳細資訊，請參閱[使用 JVM 選項控制記憶體配置](configure-greengrass-core-v2.md#jvm-tuning)。
+ Java 執行期環境 (JRE) 第 8 版或更新版本。Java 必須在裝置上的 [PATH](https://en.wikipedia.org/wiki/PATH_(variable)) 系統變數上可用。若要使用 Java 開發自訂元件，您必須安裝 Java 開發套件 (JDK)。我們建議您使用 [Amazon Corretto](https://aws.amazon.com/corretto/) 或 [OpenJDK](https://openjdk.java.net/) 長期支援版本。第 8 版或更新版本為必要項目。
**注意**  
若要使用 [Greengrass 核](#greengrass-nucleus-component)的 2.5.0 版，您必須使用 64 位元版本的 Java 執行期環境 (JRE)。Greengrass 核版本 2.5.1 支援 32 位元和 64 位元 JREs。
+ 安裝 AWS IoT Greengrass Core 軟體的使用者必須是管理員。
+ 您必須將 AWS IoT Greengrass Core 軟體安裝為系統服務。在安裝軟體`--setup-system-service true`時指定 。
+ 每個執行元件程序的使用者都必須存在於 LocalSystem 帳戶中，而且使用者名稱和密碼必須位於 LocalSystem 帳戶的 Credential Manager 執行個體中。您可以在遵循[安裝 AWS IoT Greengrass Core 軟體](install-greengrass-core-v2.md)的指示時設定此使用者。
+ 核心裝置必須能夠對一組端點和連接埠執行傳出請求。如需詳細資訊，請參閱[允許透過代理或防火牆的裝置流量](allow-device-traffic.md)。

------

## 支援平台
<a name="greengrass-v2-supported-platforms"></a>

AWS IoT Greengrass 正式支援執行下列平台的裝置。此清單中未包含平台的裝置可能可以運作，但只能在這些指定的平台上 AWS IoT Greengrass 進行測試。

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

架構：
+ Armv7l
+ Armv8 (AArch64)
+ x86\$164

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

架構：
+ x86\$164

版本：
+ Windows 10
+ Windows 11
+ Windows Server 2019
+ Windows Server 2022

**注意**  
Windows 裝置目前不支援某些 AWS IoT Greengrass 功能。如需詳細資訊，請參閱[Greengrass 功能相容性](operating-system-feature-support-matrix.md)及[功能考量](#greengrass-v2-windows-feature-considerations)。

------

### 功能考量
<a name="greengrass-v2-windows-feature-considerations"></a>

Windows 裝置目前不支援某些 AWS IoT Greengrass 功能。檢閱功能差異，以確認 Windows 裝置是否符合您的需求。如需詳細資訊，請參閱[Greengrass 功能相容性](operating-system-feature-support-matrix.md)。

若要建置自訂 Linux 作業系統，您可以在[`meta-aws`專案](https://github.com/aws/meta-aws/tree/master/recipes-iot)中使用適用於 AWS IoT Greengrass 的 BitBake 配方。`meta-aws` 專案提供配方，可讓您在以 [OpenEmbedded](https://www.openembedded.org/wiki/Main_Page) 和 Yocto Project 組建架構建置的[嵌入式 Linux](https://elinux.org/) 系統中建置 AWS 邊緣軟體功能。[Yocto 專案](https://www.yoctoproject.org/)是一種開放原始碼協同合作專案，可協助您為嵌入式應用程式建置自訂 Linux 型系統，而不論硬體架構為何。的 AWS IoT Greengrass BitBake 配方會在您的裝置上安裝、設定和自動執行 AWS IoT Greengrass Core 軟體。

Linux 平台也可以 AWS IoT Greengrass 在 Docker 容器中執行。如需詳細資訊，請參閱[在 Docker 容器中執行 AWS IoT Greengrass 核心軟體](run-greengrass-docker.md)。

## 作業系統
<a name="greengrass-nucleus-component-os-support"></a>

此元件可以安裝在執行下列作業系統的核心裝置上：
+ Linux
+ Windows

如需詳細資訊，請參閱[支援平台](#greengrass-v2-supported-platforms)。

## 需求
<a name="greengrass-nucleus-component-requirements"></a>

裝置必須符合特定需求，才能安裝和執行 Greengrass 核和 AWS IoT Greengrass Core 軟體。如需詳細資訊，請參閱[裝置要求](#greengrass-v2-requirements)。

Greengrass 核元件支援在 VPC 中執行。若要在 VPC 中部署此元件，需要下列項目。
+ Greengrass 核元件必須具有與 AWS IoT data、 AWS IoT Credentials 和 Amazon S3 的連線能力。

## 相依性
<a name="greengrass-nucleus-component-dependencies"></a>

Greengrass 核不包含任何元件相依性。不過，數個 AWS提供的元件包含 核心做為相依性。如需詳細資訊，請參閱[AWS提供的元件](public-components.md)。

如需元件相依性的詳細資訊，請參閱[元件配方參考](component-recipe-reference.md#recipe-reference-component-dependencies)。

## 下載並安裝
<a name="greengrass-nucleus-component-install"></a>

您可以下載安裝程式，在裝置上設定 Greengrass 核元件。此安裝程式會將您的裝置設定為 Greengrass 核心裝置。您可以執行兩種類型的安裝：為您建立必要 AWS 資源的快速安裝，或是自行建立 AWS 資源的手動安裝。如需詳細資訊，請參閱[安裝 AWS IoT Greengrass Core 軟體](install-greengrass-core-v2.md)。

您也可以遵循教學課程來安裝 Greengrass 核，並探索 Greengrass 元件開發。如需詳細資訊，請參閱[教學課程：入門 AWS IoT Greengrass V2](getting-started.md)。

## Configuration
<a name="greengrass-nucleus-component-configuration"></a>

此元件提供下列組態參數，您可以在部署元件時自訂這些參數。有些參數需要 AWS IoT Greengrass Core 軟體重新啟動才能生效。如需為何及如何設定此元件的詳細資訊，請參閱 [設定 AWS IoT Greengrass 核心軟體](configure-greengrass-core-v2.md)。

`iotRoleAlias`  
<a name="nucleus-component-configuration-iot-role-alias"></a>指向字符交換 IAM AWS IoT 角色的角色別名。 AWS IoT 登入資料提供者會擔任此角色，以允許 Greengrass 核心裝置與 AWS 服務互動。如需詳細資訊，請參閱[授權核心裝置與 AWS 服務互動](device-service-role.md)。  
當您使用 `--provision true`選項執行 AWS IoT Greengrass Core 軟體時，軟體會佈建角色別名，並在核心元件中設定其值。

  `interpolateComponentConfiguration`   
（選用） 您可以啟用 Greengrass 核，在[元件組態中插入元件配方變數](component-recipe-reference.md#recipe-variables)，並[合併組態更新](update-component-configurations.md#merge-configuration-update-recipe-variables)。我們建議您將此選項設定為 ，`true`以便核心裝置可以執行在其組態中使用配方變數的 Greengrass 元件。  
此功能適用於此元件的 v2.6.0 和更新版本。  
預設：`false`

`networkProxy`  
（選用） 用於所有連線的網路代理。如需詳細資訊，請參閱[連線至連接埠 443 或透過網路代理](configure-greengrass-core-v2.md#configure-alpn-network-proxy)。  
<a name="nucleus-component-parameter-restart-para"></a>當您部署變更至此組態參數時， AWS IoT Greengrass 核心軟體會重新啟動，讓變更生效。
此物件包含下列資訊：    
`noProxyAddresses`  
（選用） 從代理中豁免的 IP 地址或主機名稱的逗號分隔清單。  
`proxy`  
要連線的代理。此物件包含下列資訊：    
`url`  
代理伺服器的 URL，格式為 `scheme://userinfo@host:port`。  <a name="nucleus-component-configuration-proxy-url-segments"></a>
+ `scheme` – 結構描述，必須是 `http`或 `https`。
**重要**  
<a name="https-proxy-greengrass-nucleus-requirement"></a>Greengrass 核心裝置必須執行 [Greengrass 核 v](#greengrass-nucleus-component)2.5.0 或更新版本，才能使用 HTTPS 代理。  
如果您設定 HTTPS 代理，則必須將代理伺服器 CA 憑證新增至核心裝置的 Amazon 根 CA 憑證。如需詳細資訊，請參閱[讓核心裝置信任 HTTPS 代理](configure-greengrass-core-v2.md#https-proxy-certificate-trust)。
+ `userinfo` – （選用） 使用者名稱和密碼資訊。如果您在 中指定此資訊`url`，Greengrass 核心裝置會忽略 `username`和 `password` 欄位。
+ `host` – 代理伺服器的主機名稱或 IP 地址。
+ `port` – （選用） 連接埠號碼。如果您未指定連接埠，則 Greengrass 核心裝置會使用下列預設值：
  + `http` – 80
  + `https` – 443  
`username`  
（選用） 驗證代理伺服器的使用者名稱。  
`password`  
（選用） 驗證代理伺服器的密碼。

`mqtt`  
（選用） Greengrass 核心裝置的 MQTT 組態。如需詳細資訊，請參閱[連線至連接埠 443 或透過網路代理](configure-greengrass-core-v2.md#configure-alpn-network-proxy)。  
<a name="nucleus-component-parameter-restart-para"></a>當您部署變更至此組態參數時， AWS IoT Greengrass 核心軟體會重新啟動，讓變更生效。
此物件包含下列資訊：    
`port`  
（選用） 用於 MQTT 連線的連接埠。  
預設：`8883`  
`keepAliveTimeoutMs`  
（選用） 用戶端為保持 MQTT 連線持續傳送的每個`PING`訊息之間的時間，以毫秒為單位。此值必須大於 `pingTimeoutMs`。  
預設：`60000`(60 秒）  
`pingTimeoutMs`  
（選用） 用戶端等待從伺服器接收`PINGACK`訊息的時間，以毫秒為單位。如果等待超過逾時，核心裝置會關閉並重新開啟 MQTT 連線。此值必須小於 `keepAliveTimeoutMs`。  
預設：`30000`(30 秒）  
`operationTimeoutMs`  
（選用） 用戶端等待 MQTT 操作 （例如 `CONNECT`或 `PUBLISH`) 完成的時間，以毫秒為單位。此選項不適用於 MQTT `PING`或保持即時訊息。  
預設：`30000`(30 秒）  
`maxInFlightPublishes`  
（選用） 可同時傳輸的未確認 MQTT QoS 1 訊息數量上限。  
此功能適用於此元件的 v2.1.0 和更新版本。  
預設：`5`  
有效範圍：最大值為 100  
`maxMessageSizeInBytes`  
（選用） MQTT 訊息的大小上限。如果訊息超過此大小，Greengrass 核會拒絕發生錯誤的訊息。  
此功能適用於此元件的 v2.1.0 和更新版本。  
預設： `131072` (128 KB)  
有效範圍：最大值 `2621440`(2.5 MB)  
`maxPublishRetry`  
（選用） 重試無法發佈訊息的次數上限。您可以指定 `-1` 重試不限時間。  
此功能適用於此元件的 v2.1.0 和更新版本。  
預設：`100`  
`spooler`  
（選用） Greengrass 核心裝置的 MQTT 多工緩衝處理常式組態。此物件包含下列資訊：    
`storageType`  
儲存訊息的儲存類型。如果 `storageType` 設定為 `Disk`，`pluginName`則可以設定 。您可指定為 `Memory` 或 `Disk`。  
此功能適用於 [Greengrass 核元件](#greengrass-nucleus-component)的 v2.11.0 和更新版本。  
如果 MQTT 多工緩衝處理器`storageType`設定為 ，`Disk`且您想要將 Greengrass 核從 2.11.x 版降級為舊版，您必須將組態變更回 `Memory`。Greengrass 核版本 2.10.x 及更早版本`storageType`支援 的唯一組態是 。 `Memory`未遵循此指引可能會導致多工緩衝處理中斷。這會導致您的 Greengrass 核心裝置無法傳送 MQTT 訊息到 AWS 雲端。
預設：`Memory`  
`pluginName`  
（選用） 外掛程式元件名稱。只有在 `storageType`設定為 時，才會使用此元件`Disk`。此選項預設為 `aws.greengrass.DiskSpooler`，並將使用 Greengrass 提供的 [磁碟多工緩衝處理](disk-spooler-component.md)。  
此功能適用於 [Greengrass 核元件](#greengrass-nucleus-component)的 v2.11.0 和更新版本。  
預設：`"aws.greengrass.DiskSpooler"`  
`maxSizeInBytes`  
（選用） 核心裝置在記憶體中存放未處理 MQTT 訊息的快取大小上限。如果快取已滿，則會拒絕新訊息。  
預設： `2621440` (2.5 MB)  
`keepQos0WhenOffline`  
（選用） 您可以多工緩衝處理核心裝置離線時接收的 MQTT QoS 0 訊息。如果您將此選項設定為 `true`，則核心裝置會多工緩衝處理離線時無法傳送的 QoS 0 訊息。如果您將此選項設定為 `false`，核心裝置會捨棄這些訊息。除非多工緩衝處理已滿，否則核心裝置一律會多工緩衝處理 QoS 1 訊息。  
預設：`false`  
`version`  
（選用） MQTT 的版本。您可指定為 `mqtt3` 或 `mqtt5`。  
此功能適用於 [Greengrass 核元件](#greengrass-nucleus-component)的 v2.10.0 和更新版本。  
預設：`mqtt5`  
`receiveMaximum`  
（選用） 代理程式可以傳送的未確認 QoS1 封包數目上限。  
此功能適用於 [Greengrass 核元件](#greengrass-nucleus-component)的 v2.10.0 和更新版本。  
預設：`100`  
`sessionExpirySeconds`  
（選用） 您可以請求工作階段從 IoT Core 持續的時間，以秒為單位。預設值為 支援的最長時間 AWS IoT Core。  
此功能適用於 [Greengrass 核元件](#greengrass-nucleus-component)的 v2.10.0 和更新版本。  
預設：`604800 (7 days)`  
`minimumReconnectDelaySeconds`  
（選用） 重新連線行為的選項。MQTT 重新連線的最短時間，以秒為單位。  
此功能適用於 [Greengrass 核元件](#greengrass-nucleus-component)的 v2.10.0 和更新版本。  
預設：`1`  
`maximumReconnectDelaySeconds`  
（選用） 重新連線行為的選項。MQTT 重新連線的秒數上限。  
此功能適用於 [Greengrass 核元件](#greengrass-nucleus-component)的 v2.10.0 和更新版本。  
預設：`120`  
`minimumConnectedTimeBeforeRetryResetSeconds`  
（選用） 重新連線行為的選項。在重試延遲重設回最小值之前，連線必須處於作用中狀態的秒數。  
此功能適用於 [Greengrass 核元件](#greengrass-nucleus-component)的 v2.10.0 和更新版本。  
預設：`30`

  `jvmOptions`  
（選用） 用來執行 AWS IoT Greengrass Core 軟體的 JVM 選項。如需執行 AWS IoT Greengrass Core 軟體的建議 JVM 選項相關資訊，請參閱 [使用 JVM 選項控制記憶體配置](configure-greengrass-core-v2.md#jvm-tuning)。  
<a name="nucleus-component-parameter-restart-para"></a>當您部署變更至此組態參數時， AWS IoT Greengrass 核心軟體會重新啟動，讓變更生效。

`iotDataEndpoint`  
<a name="nucleus-component-configuration-iot-data-endpoint"></a>您 AWS IoT 的資料端點 AWS 帳戶。  
<a name="nucleus-component-set-iot-endpoints"></a>當您使用 `--provision true`選項執行 AWS IoT Greengrass 核心軟體時，軟體會從 取得您的資料和登入資料端點 AWS IoT ，並在 核心元件中設定它們。

`iotCredEndpoint`  
<a name="nucleus-component-configuration-iot-cred-endpoint"></a>您 的 AWS IoT 登入資料端點 AWS 帳戶。  
<a name="nucleus-component-set-iot-endpoints"></a>當您使用 `--provision true`選項執行 AWS IoT Greengrass 核心軟體時，軟體會從 取得您的資料和登入資料端點 AWS IoT ，並在 核心元件中設定它們。

`greengrassDataPlaneEndpoint`  
此功能適用於此元件的 v2.7.0 和更新版本。  
如需詳細資訊，請參閱[使用私有 CA 簽署的裝置憑證](configure-greengrass-core-v2.md#configure-nucleus-private-ca)。

`greengrassDataPlanePort`  
此功能適用於此元件的 v2.0.4 和更新版本。  
（選用） 用於資料平面連線的連接埠。如需詳細資訊，請參閱[連線至連接埠 443 或透過網路代理](configure-greengrass-core-v2.md#configure-alpn-network-proxy)。  
您必須指定裝置可以進行傳出連線的連接埠。如果您指定封鎖的連接埠，裝置將無法連線至 AWS IoT Greengrass 以接收部署。
您可以從以下選項中選擇：  
+ `443`
+ `8443`
預設：`8443`

`awsRegion`  
 AWS 區域 要使用的 。

`runWithDefault`  
用來執行元件的系統使用者。  
<a name="nucleus-component-parameter-restart-para"></a>當您部署變更至此組態參數時， AWS IoT Greengrass 核心軟體會重新啟動，讓變更生效。
此物件包含下列資訊：    
`posixUser`  
系統使用者的名稱或 ID，也可以選擇核心裝置用來執行一般和 Lambda 元件的系統群組。以下列格式指定使用者和群組，並以冒號 (`:`) 分隔：`user:group`。群組為選用項目。如果您未指定群組，則 AWS IoT Greengrass Core 軟體會使用使用者的主要群組。例如，您可以指定 `ggc_user` 或 `ggc_user:ggc_group`。如需詳細資訊，請參閱[設定執行元件的使用者](configure-greengrass-core-v2.md#configure-component-user)。  
當您使用 `--component-default-user ggc_user:ggc_group`選項執行 AWS IoT Greengrass Core 軟體安裝程式時，軟體會在 nucleus 元件中設定此參數。  
`windowsUser`  
此功能適用於此元件的 v2.5.0 和更新版本。  
用於在 Windows 核心裝置上執行此元件的 Windows 使用者名稱。使用者必須存在於每個 Windows 核心裝置上，且其名稱和密碼必須存放在 LocalSystem 帳戶的 Credentials Manager 執行個體中。如需詳細資訊，請參閱[設定執行元件的使用者](configure-greengrass-core-v2.md#configure-component-user)。  
當您使用 `--component-default-user ggc_user`選項執行 AWS IoT Greengrass Core 軟體安裝程式時，軟體會在 nucleus 元件中設定此參數。  
`systemResourceLimits`  
此功能在 v2.4.0 和此元件的更新版本中提供。 AWS IoT Greengrass 目前不支援 Windows 核心裝置上的此功能。  
根據預設，要套用至一般和非容器 Lambda 元件程序的系統資源限制。您可以在建立部署時覆寫個別元件的系統資源限制。如需詳細資訊，請參閱[設定元件的系統資源限制](configure-greengrass-core-v2.md#configure-component-system-resource-limits)。  
此物件包含下列資訊：    
`cpus`  
 <a name="system-resource-limits-cpu-definition-each"></a>每個元件程序可在核心裝置上使用的 CPU 時間上限。核心裝置的 CPU 總時間等於裝置的 CPU 核心數。例如，在具有 4 個 CPU 核心的核心裝置上，您可以將此值設定為 `2`，將每個元件的程序限制為每個 CPU 核心的 50% 用量。在具有 1 個 CPU 核心的裝置上，您可以將此值設定為 `0.25`，將每個元件的程序限制為 CPU 的 25% 用量。如果您將此值設定為大於 CPU 核心數量的數字，則 AWS IoT Greengrass Core 軟體不會限制元件的 CPU 用量。  
`memory`  
 <a name="system-resource-limits-memory-definition-each"></a>每個元件程序可在核心裝置上使用的 RAM 數量上限 （以 KB 為單位）。

 `s3EndpointType`   
（選用） S3 端點類型。此參數僅適用於美國東部 （維吉尼亞北部） (`us-east-1`) 區域。從任何其他區域設定此參數將被忽略。您可以從以下選項中選擇：  
+ `REGIONAL` – S3 用戶端和預先簽章的 URL 使用區域端點。
+ `GLOBAL` – S3 用戶端和預先簽章的 URL 使用舊版端點。
+ `DUALSTACK` – S3 預先簽章的 URL 使用雙堆疊端點。
預設：`GLOBAL`

 `fipsMode`   
（選用） 讓 Greengrass 使用 FIPS 端點。如需如何啟用 FIPS 端點的詳細資訊，請參閱 [FIPS 端點](FIPS.html)。  
您可以從以下選項中選擇：  
+ `true` 當設定為 true 時，端點將使用 FIPS 端點。
+ `false` 當 false 時，端點不會使用 FIPS 端點。
預設：`false`

`logging`  
（選用） 核心裝置的記錄組態。如需如何設定和使用 Greengrass 日誌的詳細資訊，請參閱 [監控 AWS IoT Greengrass 日誌](monitor-logs.md)。  
此物件包含下列資訊：    
  `level`   
（選用） 要輸出的日誌訊息最低層級。  
從下列日誌層級中選擇，此處依層級順序列出：  <a name="nucleus-log-levels"></a>
+ `DEBUG`
+ `INFO`
+ `WARN`
+ `ERROR`
預設：`INFO`  
  `format`   
（選用） 日誌的資料格式。您可以從以下選項中選擇：  
+ `TEXT` – 如果您想要以文字形式檢視日誌，請選擇此選項。
+ `JSON` – 如果您想要使用 [Greengrass CLI 日誌命令檢視日誌](gg-cli-logs.md)或以程式設計方式與日誌互動，請選擇此選項。
預設：`TEXT`  
`outputType`  
（選用） 日誌的輸出類型。您可以從以下選項中選擇：  
+ `FILE` – Core AWS IoT Greengrass 軟體會將日誌輸出至您在 中指定的目錄中的檔案`outputDirectory`。
+ `CONSOLE` – Core AWS IoT Greengrass 軟體會將日誌列印到 `stdout`。選擇此選項可在核心裝置列印日誌時檢視日誌。
預設：`FILE`  
  `fileSizeKB`   
（選用） 每個日誌檔案的大小上限 （以 KB 為單位）。日誌檔案超過此檔案大小上限後， AWS IoT Greengrass 核心軟體會建立新的日誌檔案。  
<a name="nucleus-component-logging-parameter-file-only"></a>此參數僅適用於您`FILE`為 指定 時`outputType`。  
預設：`1024`  
  `totalLogsSizeKB`   
（選用） 每個元件的日誌檔案總大小上限 （以 KB 為單位），包括 Greengrass 核。Greengrass 核的日誌檔案也包含[來自外掛程式元件](develop-greengrass-components.md#component-types)的日誌。在元件的日誌檔案總大小超過此大小上限之後， AWS IoT Greengrass Core 軟體會刪除該元件最舊的日誌檔案。  
此參數等同於[日誌管理員元件的](log-manager-component.md)[磁碟空間限制](log-manager-component.md#log-manager-component-configuration)參數 (`diskSpaceLimit`)，您可以為 Greengrass 核 （系統） 和每個元件指定該參數。Core AWS IoT Greengrass 軟體使用兩個值的最小值作為 Greengrass 核和每個元件的總日誌大小上限。  
<a name="nucleus-component-logging-parameter-file-only"></a>此參數僅適用於您`FILE`為 指定 時`outputType`。  
預設：`10240`  
  `outputDirectory`   
（選用） 日誌檔案的輸出目錄。  
<a name="nucleus-component-logging-parameter-file-only"></a>此參數僅適用於您`FILE`為 指定 時`outputType`。  
預設：`/greengrass/v2/logs`，其中 `/greengrass/v2` AWS IoT Greengrass 是根資料夾。

  `fleetstatus`   
此參數適用於此元件的 v2.1.0 和更新版本。  
（選用） 核心裝置的機群狀態組態。  
此物件包含下列資訊：    
`periodicStatusPublishIntervalSeconds`  
（選用） 核心裝置將裝置狀態發佈到 之間的時間量 （以秒為單位） AWS 雲端。  
下限：`86400`(24 小時）  
預設：`86400`(24 小時）

  `telemetry`   
（選用） 核心裝置的系統運作狀態遙測組態。如需遙測指標以及如何對遙測資料採取行動的詳細資訊，請參閱 [從 AWS IoT Greengrass 核心裝置收集系統運作狀態遙測資料](telemetry.md)。  
此物件包含下列資訊：    
`enabled`  
（選用） 您可以啟用或停用遙測。  
預設：`true`  
`periodicAggregateMetricsIntervalSeconds`  
（選用） 核心裝置彙總指標的間隔 （以秒為單位）。  
如果您將此值設定為低於支援的最小值，則 nucleus 會改用預設值。  
下限：`3600`  
預設：`3600`  
`periodicPublishMetricsIntervalSeconds`  
（選用） 核心裝置將遙測指標發佈到 之間的時間量 （以秒為單位） AWS 雲端。  
如果您將此值設定為低於支援的最小值，則 nucleus 會改用預設值。  
下限：`86400`  
預設：`86400`

`deploymentPollingFrequencySeconds`  
（選用） 輪詢部署通知的期間，以秒為單位。  
預設：`15`

`componentStoreMaxSizeBytes`  
（選用） 元件存放區磁碟上的大小上限，其中包含元件配方和成品。  
預設： `10000000000` (10 GB)

  `platformOverride`   
（選用） 識別核心裝置平台的屬性字典。使用此選項來定義元件配方可用來識別元件正確生命週期和成品的自訂平台屬性。例如，您可以定義硬體功能屬性，只部署要執行之元件的最低成品集。如需詳細資訊，請參閱元件配方中的[資訊清單平台參數](component-recipe-reference.md#component-platform-definition)。  
您也可以使用此參數來覆寫核心裝置的 `os`和 `architecture`平台屬性。

  `httpClient`   
此參數適用於此元件的 v2.5.0 和更新版本。  
（選用） 核心裝置的 HTTP 用戶端組態。這些組態選項適用於此元件提出的所有 HTTP 請求。如果核心裝置在較慢的網路上執行，您可以增加這些逾時持續時間，以防止 HTTP 請求逾時。  
此物件包含下列資訊：    
`connectionTimeoutMs`  
（選用） 在連線請求逾時之前等待連線開啟的時間量 （以毫秒為單位）。  
預設：`2000`(2 秒）  
`socketTimeoutMs`  
（選用） 在連線逾時之前，等待資料透過開放連線傳輸的時間量 （以毫秒為單位）。  
預設：`30000`(30 秒）

  `deploymentConfigurationTimeSource`   
此參數適用於此元件的 v2.15.0 和更新版本。  
（選用） 處理部署時要使用的時間戳記。預設值為 `deploymentCreationTime`。  
此物件包含下列值：    
`deploymentCreationTime`  
預設值 `deploymentConfigurationTimeSource`。裝置使用部署建立時間戳記來解決處理期間的組態金鑰衝突。選取此行為時，核心所保留的本機裝置組態可能具有比傳入部署更大的時間戳記，並拒絕現在視為過期的傳入組態變更。  
`deploymentProcessingTime`  
裝置會使用其本機時間戳記來解決部署處理期間的組態金鑰衝突。處理時，裝置會根據處理時間戳記而非部署建立時間戳記來更新組態。此行為假設裝置時鐘已正確校正。  
如果您希望新裝置在第一次連線時使用此行為，請在初始裝置映像或安裝中設定此核心設定，而不是透過部署進行設定。使用此組態的 nucleus 傳統安裝程式[https://docs.aws.amazon.com/greengrass/v2/developerguide/configure-installer.html](https://docs.aws.amazon.com/greengrass/v2/developerguide/configure-installer.html)選項。  
此初始組態至關重要，因為裝置會依任意順序處理多個部署。如果沒有適當的初始組態，裝置可能會在接收將核心組態設定為 的部署之前，使用預設`deploymentCreationTime`行為來處理部署`deploymentProcessingTime`。

**Example 範例：組態合併更新**  

```
{
  "iotRoleAlias": "GreengrassCoreTokenExchangeRoleAlias",
  "networkProxy": {
    "noProxyAddresses": "http://192.168.0.1,www.example.com",
    "proxy": {
      "url": "http://my-proxy-server:1100",
      "username": "Mary_Major",
      "password": "pass@word1357"
    }
  },
  "mqtt": {
    "port": 443
  },
  "greengrassDataPlanePort": 443,
  "jvmOptions": "-Xmx64m",
  "runWithDefault": {
    "posixUser": "ggc_user:ggc_group"
  }
}
```

## 本機日誌檔案
<a name="greengrass-nucleus-component-log-file"></a>

此元件使用以下日誌檔案。

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

```
/greengrass/v2/logs/greengrass.log
```

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

```
C:\greengrass\v2\logs\greengrass.log
```

------

**檢視此元件的日誌**
+ 在核心裝置上執行下列命令，以即時檢視此元件的日誌檔案。將 `/greengrass/v2`或 *C：\$1greengrass\$1v2* 取代為 AWS IoT Greengrass 根資料夾的路徑。

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

  ```
  sudo tail -f /greengrass/v2/logs/greengrass.log
  ```

------
#### [ Windows (PowerShell) ]

  ```
  Get-Content C:\greengrass\v2\logs\greengrass.log -Tail 10 -Wait
  ```

------

## 變更記錄
<a name="greengrass-nucleus-component-changelog"></a>

下表說明每個版本元件的變更。


|  **版本**  |  **變更**  | 
| --- | --- | 
|  2.16.1  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.16.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/greengrass-nucleus-component.html) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.15.1  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.15.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/greengrass-nucleus-component.html) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.14.3  |  錯誤修正和改善 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.14.2  |  錯誤修正和改善 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.14.1  |  錯誤修正和改善 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.14.0  |  此版本不再可用。此版本的改善功能可在此元件的較新版本中使用。  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.13.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.12.6  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.12.5  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.12.4  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.12.3  |   此版本不再可用。此版本的改善功能可在此元件的較新版本中使用。  錯誤修正和改善 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.12.2  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.12.1  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.12.0  |  <a name="changelog-nucleus-2.12.0"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.11.3  |  <a name="changelog-nucleus-2.11.3"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.11.2  |  <a name="changelog-nucleus-2.11.2"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.11.1  |  <a name="changelog-nucleus-2.11.1"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.11.0  |  <a name="changelog-nucleus-2.11.0"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.10.3  |  <a name="changelog-nucleus-2.10.3"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.10.2  |  <a name="changelog-nucleus-2.10.2"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.10.1  |  <a name="changelog-nucleus-2.10.1"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.10.0  |  <a name="changelog-nucleus-2.10.0"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.9.6  |  <a name="changelog-nucleus-2.9.6"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.9.5  |  <a name="changelog-nucleus-2.9.5"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.9.4  |  <a name="changelog-nucleus-2.9.4"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.9.3  |  <a name="changelog-nucleus-2.9.3"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.9.2  |  <a name="changelog-nucleus-2.9.2"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.9.1  |  <a name="changelog-nucleus-2.9.1"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.9.0  |  <a name="changelog-nucleus-2.9.0"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.8.1  |  <a name="changelog-nucleus-2.8.1"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.8.0  |  <a name="changelog-nucleus-2.8.0"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.7.0  |  <a name="changelog-nucleus-2.7.0"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.6.0  |  <a name="changelog-nucleus-2.6.0"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.5.6  |  <a name="changelog-nucleus-2.5.6"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.5.5  |  <a name="changelog-nucleus-2.5.5"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.5.4  |  <a name="changelog-nucleus-2.5.4"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.5.3  |  <a name="changelog-nucleus-2.5.3"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.5.2  |  <a name="changelog-nucleus-2.5.2"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.5.1  |   此版本不再可用。此版本的改善功能可在此元件的較新版本中使用。  <a name="changelog-nucleus-2.5.1"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.5.0  |  <a name="changelog-nucleus-2.5.0"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.4.0  |  <a name="changelog-nucleus-2.4.0"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.3.0  |  <a name="changelog-nucleus-2.3.0"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.2.0  |  <a name="changelog-nucleus-2.2.0"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.1.0  |  <a name="changelog-nucleus-2.1.0"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.0.5  |  <a name="changelog-nucleus-2.0.5"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.0.4  |  <a name="changelog-nucleus-2.0.4"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.0.3  |  初始版本。  | 

# Greengrass nucleus lite
<a name="greengrass-nucleus-lite-component"></a>

Greengrass nucleus lite (`aws.greengrass.NucleusLite`) 是針對限制邊緣裝置的裝置執行時間，針對最少的記憶體使用量 （使用少於 5MB 的 RAM) 進行最佳化。它隨 2.14.0 AWS IoT Greengrass 版推出，並且與 AWS IoT Greengrass 一般元件、Greengrass V2 API 和 SDK 回溯相容。

Greengrass 核精簡版是通用 [Greengrass 核 (`aws.greengrass.Nucleus`)](https://docs.aws.amazon.com/greengrass/v2/developerguide/greengrass-nucleus-component.html) 的替代方案，可用於 Greengrass 裝置的異質機群。

**Topics**
+ [版本](#greengrass-nucleus-lite-component-versions)
+ [作業系統](#greengrass-nucleus-lite-component-os-support)
+ [要求](#greengrass-nucleus-lite-component-requirements)
+ [相容性](#greengrass-nucleus-lite-component-compatibility)
+ [下載並安裝](#greengrass-nucleus-lite-component-install)
+ [Configuration](#greengrass-nucleus-lite-component-configuration)
+ [本機日誌檔案](#greengrass-nucleus-lite-component-log-file)
+ [變更記錄](#greengrass-nucleus-lite-component-changelog)

## 版本
<a name="greengrass-nucleus-lite-component-versions"></a>

此元件具有下列版本：
+ 2.3.x 版本
+ 2.2.x 版本
+ 2.1.x
+ 2.0.x

## 作業系統
<a name="greengrass-nucleus-lite-component-os-support"></a>

此元件可以安裝在執行下列作業系統的核心裝置上：
+ Linux （使用 systemd 的分佈）

如需詳細資訊，請參閱 [Greengrass 核](https://docs.aws.amazon.com/greengrass/v2/developerguide/operating-system-feature-support-matrix.html)。

## 要求
<a name="greengrass-nucleus-lite-component-requirements"></a>

裝置必須符合特定需求，才能安裝和執行 nucleus lite AWS IoT Greengrass 和 AWS IoT Greengrass Core 軟體。如需詳細資訊，請參閱[設定指南](https://github.com/aws-greengrass/aws-greengrass-lite/blob/main/docs/SETUP.md#setting-up-greengrass-nucleus-lite)。
+ 核執行時間的 5MB RAM 空間。
+ 5MB 的儲存體 （磁碟/快閃記憶體）。

其他系統相依性記錄在 [設定指南](https://github.com/aws-greengrass/aws-greengrass-lite/blob/main/docs/SETUP.md#dependencies)中。

Greengrass 核元件支援在 VPC 中執行。若要在 VPC 中部署此元件，需要下列項目：
+ Greengrass 核必須能夠連線至 AWS IoT 資料、 AWS IoT 憑證和 Amazon S3。

## 相容性
<a name="greengrass-nucleus-lite-component-compatibility"></a>

 AWS IoT Greengrass nucleus lite 與 AWS IoT Greengrass v2 API （子集） 和支援的 SDKs 相容。它不依賴任何特定語言執行時間/VMs但新增至部署的元件可能需要特定執行時間 （例如：Java JVM、Python)。如需 Greengrass nucleus lite 支援哪些功能的詳細資訊，請參閱 [Greengrass 功能相容性](operating-system-feature-support-matrix.md)。

## 下載並安裝
<a name="greengrass-nucleus-lite-component-install"></a>

您可以下載 apt 套件、[從來源建置](https://github.com/aws-greengrass/aws-greengrass-lite/blob/main/README.md#getting-started)、[使用 Yocto layer](https://github.com/aws4embeddedlinux/meta-aws)，或[下載相容裝置 （例如 RaspberryPi) 的預先建置 Yocto 映像](https://github.com/aws4embeddedlinux/meta-aws-demos)。 RaspberryPi 從 [AWS IoT Core 主控台](https://console.aws.amazon.com/iot/home)，您將能夠下載包含裝置所有登入資料和初始組態的**連線套件**。如何安裝的指示會包含在每個特定的分發方法中。

您也可以遵循教學課程來安裝 nucleus lite AWS IoT Greengrass 並探索 Greengrass 元件開發。如需詳細資訊，請參閱[教學課程：入門 AWS IoT Greengrass V2](getting-started.md)。

## Configuration
<a name="greengrass-nucleus-lite-component-configuration"></a>

核提供下列[組態](https://github.com/aws-greengrass/aws-greengrass-lite/blob/main/docs/SETUP.md#configuring-greengrass)參數。有些參數需要 AWS IoT Greengrass Core 軟體重新啟動才能生效。

`iotRoleAlias`  
指向字符交換 IAM AWS IoT 角色的角色別名。 AWS IoT 登入資料提供者會擔任此角色，以允許 Greengrass 核心裝置與 AWS 服務互動。如需詳細資訊，請參閱[授權核心裝置以與服務互動 AWS 。](https://docs.aws.amazon.com/greengrass/v2/developerguide/device-service-role.html)

`iotDataEndpoint`  
<a name="nucleus-component-configuration-iot-data-endpoint"></a>您 AWS IoT 的資料端點 AWS 帳戶。

`iotCredEndpoint`  
<a name="nucleus-component-configuration-iot-cred-endpoint"></a>您 的 AWS IoT 登入資料端點 AWS 帳戶。

`greengrassDataPlanePort`  
用於資料平面連線的連接埠。如需詳細資訊，請參閱在[連接埠 443 上或透過網路代理連線](https://docs.aws.amazon.com/greengrass/v2/developerguide/configure-greengrass-core-v2.html#configure-alpn-network-proxy)。  
您必須指定裝置可以進行傳出連線的連接埠。如果您指定封鎖的連接埠，裝置將無法連線至 AWS IoT Greengrass 以接收部署。您可以從以下選項中選擇：  
+ `443`
+ `8443`
+ 預設：`8443`

`awsRegion`  
 AWS 區域 要使用的 。

`runWithDefault`  
用來執行元件的系統使用者。  
<a name="nucleus-component-parameter-restart-para"></a>當您部署變更至此組態參數時， AWS IoT Greengrass 核心軟體會重新啟動，讓變更生效。
此物件包含下列資訊：    
`posixUser`  
系統使用者的名稱或 ID，也可以選擇核心裝置用來執行一般元件的系統群組。以下列格式指定使用者和群組，並以冒號 (`:`) 分隔：`user:group`。群組為選用項目。如果您未指定群組，則 AWS IoT Greengrass Core 軟體會使用使用者的主要群組。例如，您可以指定 `ggc_user` 或 `ggc_user:ggc_group`。如需詳細資訊，請參閱[設定執行元件的使用者](configure-greengrass-core-v2.md#configure-component-user)。

`networkProxy`  
（選用） 用於所有連線的網路代理。如需詳細資訊，請參閱[連線至連接埠 443 或透過網路代理](configure-greengrass-core-v2.md#configure-alpn-network-proxy)。  
當您部署變更至此組態參數時，變更會在下一次重新啟動 AWS IoT Greengrass Core 軟體後生效。
此物件包含下列資訊：    
`noProxyAddresses`  
（選用） 從代理中豁免的 IP 地址或主機名稱的逗號分隔清單。  
`proxy`  
要連線的代理。此物件包含下列資訊：    
`url`  
代理伺服器的 URL，格式為 `http://host:port`。  
+ `scheme` – 結構描述，必須是 `http`。
+ `host` – 代理伺服器的主機名稱或 IP 地址。
+ `port` – （選用） 連接埠號碼。如果您未指定連接埠，則 Greengrass 核心裝置會使用下列預設值：
  + `http` – 80

## 本機日誌檔案
<a name="greengrass-nucleus-lite-component-log-file"></a>

訊息會記錄到 stdout，日誌檔案由系統化處理。

**檢視此元件的日誌**
+ 使用 `journalctl` 來檢視日誌。

## 變更記錄
<a name="greengrass-nucleus-lite-component-changelog"></a>


|  **版本**  |  **變更**  | 
| --- | --- | 
|  2.3.2  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/greengrass-nucleus-lite-component.html)  | 
|  2.3.1  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/greengrass-nucleus-lite-component.html)  | 
|  2.3.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/greengrass-nucleus-lite-component.html)  | 
|  2.2.2  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/greengrass-nucleus-lite-component.html)  | 
|  2.2.1  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/greengrass-nucleus-lite-component.html)  | 
|  2.2.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/greengrass-nucleus-lite-component.html)  | 
|  2.1.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/greengrass-nucleus-lite-component.html)  | 
|  2.0.2  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/greengrass-nucleus-lite-component.html)  | 
|  2.0.1  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/greengrass-nucleus-lite-component.html)  | 
|  2.0.0  |  初始版本。  | 

# 用戶端裝置身分驗證
<a name="client-device-auth-component"></a>

用戶端裝置驗證元件 (`aws.greengrass.clientdevices.Auth`) 會驗證用戶端裝置，並授權用戶端裝置動作。

**注意**  <a name="client-device-component-context"></a>
用戶端裝置是連線至 Greengrass 核心裝置的本機 IoT 裝置，用於傳送 MQTT 訊息和要處理的資料。如需詳細資訊，請參閱[與本機 IoT 裝置互動](interact-with-local-iot-devices.md)。

**Topics**
+ [版本](#client-device-auth-component-versions)
+ [類型](#client-device-auth-component-type)
+ [作業系統](#client-device-auth-component-os-support)
+ [要求](#client-device-auth-component-requirements)
+ [相依性](#client-device-auth-component-dependencies)
+ [Configuration](#client-device-auth-component-configuration)
+ [本機日誌檔案](#client-device-auth-component-log-file)
+ [變更記錄](#client-device-auth-component-changelog)

## 版本
<a name="client-device-auth-component-versions"></a>

**注意**  
用戶端裝置驗證 2.3.0 版已停止。我們強烈建議您升級至用戶端裝置驗證版本 2.3.1 或更新版本。

此元件具有下列版本：
+ 2.5.x
+ 2.4.x 版本
+ 2.3.x 版本
+ 2.2.x 版本
+ 2.1.x
+ 2.0.x

## 類型
<a name="client-device-auth-component-type"></a>

<a name="public-component-type-plugin-para1"></a>此元件是外掛程式元件 (`aws.greengrass.plugin`)。[Greengrass 核心](greengrass-nucleus-component.md)會在與核心相同的 Java 虛擬機器 (JVM) 中執行此元件。當您在核心裝置上變更此元件的版本時，核心會重新啟動。

<a name="public-component-type-plugin-para2"></a>此元件使用與 Greengrass 核相同的日誌檔案。如需詳細資訊，請參閱[監控 AWS IoT Greengrass 日誌](monitor-logs.md)。

<a name="public-component-type-more-information"></a>如需詳細資訊，請參閱[元件類型](develop-greengrass-components.md#component-types)。

## 作業系統
<a name="client-device-auth-component-os-support"></a>

此元件可以安裝在執行下列作業系統的核心裝置上：
+ Linux
+ Windows

## 要求
<a name="client-device-auth-component-requirements"></a>

此元件有下列需求：
+ [Greengrass 服務角色](greengrass-service-role.md)必須與您的 相關聯， AWS 帳戶 並允許 `iot:DescribeCertificate`許可。
+ 核心裝置的 AWS IoT 政策必須允許下列許可：
  + `greengrass:GetConnectivityInfo`，其中資源包含執行此元件之核心裝置的 ARN
  + `greengrass:VerifyClientDeviceIoTCertificateAssociation`，其中資源包含連接至核心裝置之每個用戶端裝置的 Amazon Resource Name (ARN)
  + `greengrass:VerifyClientDeviceIdentity`
  + `greengrass:PutCertificateAuthorities`
  + `iot:Publish`，其中資源包含下列 MQTT 主題的 ARN：
    + `$aws/things/coreDeviceThingName*-gci/shadow/get`
  + `iot:Subscribe`，其中資源包含下列 MQTT 主題篩選條件的 ARNs：
    + `$aws/things/coreDeviceThingName*-gci/shadow/update/delta`
    + `$aws/things/coreDeviceThingName*-gci/shadow/get/accepted`
  + `iot:Receive`，其中資源包含下列 MQTT 主題ARNs：
    + `$aws/things/coreDeviceThingName*-gci/shadow/update/delta`
    + `$aws/things/coreDeviceThingName*-gci/shadow/get/accepted`

  如需詳細資訊，請參閱[AWS IoT 資料平面操作的 政策](device-auth.md#iot-policies)及[支援用戶端裝置的最低 AWS IoT 政策](device-auth.md#client-device-support-minimal-iot-policy)。
+ （選用） 若要使用離線身分驗證，服務使用的 AWS Identity and Access Management AWS IoT Greengrass (IAM) 角色必須包含下列許可：
  + `greengrass:ListClientDevicesAssociatedWithCoreDevice` 讓核心裝置列出用戶端以進行離線身分驗證。
+ 用戶端裝置身分驗證元件支援在 VPC 中執行。若要在 VPC 中部署此元件，需要下列項目。
  + 用戶端裝置身分驗證元件必須連線至 AWS IoT data AWS IoT 、 登入資料和 Amazon S3。

### 端點和連接埠
<a name="client-device-auth-component-endpoints"></a>

除了基本操作所需的端點和連接埠之外，此元件還必須能夠對下列端點和連接埠執行傳出請求。如需詳細資訊，請參閱[允許透過代理或防火牆的裝置流量](allow-device-traffic.md)。


| Endpoint | 連線埠 | 必要 | 說明 | 
| --- | --- | --- | --- | 
|  `iot.region.amazonaws.com`  | 443 | 是 |  用來取得 AWS IoT 物件憑證的相關資訊。  | 

## 相依性
<a name="client-device-auth-component-dependencies"></a>

當您部署元件時， AWS IoT Greengrass 也會部署其相依性的相容版本。這表示您必須符合元件及其所有相依性的要求，才能成功部署元件。本節列出此元件[發行版本的](#client-device-auth-component-changelog)相依性，以及為每個相依性定義元件版本的語意版本限制。您也可以在 [AWS IoT Greengrass 主控台](https://console.aws.amazon.com//greengrass)中檢視每個版本元件的相依性。在元件詳細資訊頁面上，尋找**相依性**清單。

------
#### [ 2.5.5 ]

下表列出此元件 2.5.5 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.6.0 <2.17.0 | 軟式 | 

------
#### [ 2.5.4 ]

下表列出此元件 2.5.4 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.6.0 <2.16.0 | 軟式 | 

------
#### [ 2.5.2 – 2.5.3 ]

下表列出此元件 2.5.2 和 2.5.3 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.6.0 <2.15.0 | 軟式 | 

------
#### [ 2.5.1 ]

下表列出此元件 2.5.1 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.6.0 <2.14.0 | 軟式 | 

------
#### [ 2.4.4 - 2.5.0 ]

下表列出此元件 2.4.4 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.6.0 <2.13.0 | 軟式 | 

------
#### [ 2.4.3 ]

下表列出此元件 2.4.3 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.6.0 <2.12.0 | 軟式 | 

------
#### [ 2.4.1 and 2.4.2 ]

下表列出此元件 2.4.1 和 2.4.2 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.6.0 <2.11.0 | 軟式 | 

------
#### [ 2.3.0 – 2.4.0 ]

下表列出此元件 2.3.0 至 2.4.0 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.6.0 <2.10.0 | 軟式 | 

------
#### [ 2.3.0 ]

下表列出此元件 2.3.0 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.6.0 <2.10.0 | 軟式 | 

------
#### [ 2.2.3 ]

下表列出此元件 2.2.3 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.6.0 <=2.9.0 | 軟式 | 

------
#### [ 2.2.2 ]

下表列出此元件 2.2.2 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.6.0 <=2.8.0 | 軟式 | 

------
#### [ 2.2.1 ]

下表列出此元件 2.2.1 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.6.0 <2.8.0 | 軟式 | 

------
#### [ 2.2.0 ]

下表列出此元件 2.2.0 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.6.0 <2.7.0 | 軟式 | 

------
#### [ 2.1.0 ]

下表列出此元件 2.1.0 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.2.0 <2.7.0 | 軟式 | 

------
#### [ 2.0.4 ]

下表列出此元件 2.0.4 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.2.0 <2.6.0 | 軟式 | 

------
#### [ 2.0.2 and 2.0.3 ]

下表列出此元件 2.0.2 和 2.0.3 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.2.0 <2.5.0 | 軟式 | 

------
#### [ 2.0.1 ]

下表列出此元件 2.0.1 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.2.0 <2.4.0 | 軟式 | 

------
#### [ 2.0.0 ]

下表列出此元件 2.0.0 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.2.0 <2.3.0 | 軟式 | 

------

如需元件相依性的詳細資訊，請參閱[元件配方參考](component-recipe-reference.md#recipe-reference-component-dependencies)。

## Configuration
<a name="client-device-auth-component-configuration"></a>

此元件提供下列組態參數，您可以在部署元件時自訂這些參數。

**注意**  
在向本機 MQTT 代理程式提出用戶端訂閱請求時，會評估訂閱許可。如果用戶端的現有訂閱許可遭到撤銷，用戶端將無法再訂閱主題。不過，它會繼續接收來自任何先前訂閱主題的訊息。為了防止這種行為，應在撤銷訂閱許可以強制重新授權用戶端之後重新啟動本機 MQTT 代理程式。  
對於 MQTT 5 代理程式 (EMQX) 元件，請更新`restartIdentifier`組態以重新啟動 MQTT 5 代理程式。  
對於 MQTT 3.1.1 代理程式 (Moquette) 元件，當伺服器憑證變更強制用戶端重新授權時，預設會每週重新啟動。您可以變更核心裝置的連線資訊 (IP 地址） 或進行部署以移除代理程式元件，然後稍後再次部署，強制重新啟動。

------
#### [ v2.5.0 – 2.5.4 ]

`deviceGroups`  
裝置群組是具有與核心裝置連線和通訊許可的用戶端裝置群組。使用選取規則來識別用戶端裝置的群組，並定義*用戶端裝置授權政策*，以指定每個裝置群組的許可。  
此物件包含下列資訊：    
`formatVersion`  
此組態物件的格式版本。  
您可以從以下選項中選擇：  
+ `2021-03-05`  
`definitions`  
此核心裝置的裝置群組。每個定義都會指定*選擇規則*，以評估用戶端裝置是否為 群組的成員。每個定義也會指定要套用至符合選取規則之用戶端裝置的許可政策。如果用戶端裝置是多個裝置群組的成員，則裝置的許可會包含每個群組的許可政策。  
此物件包含下列資訊：    
`groupNameKey`  
此裝置群組的名稱。將 *groupNameKey* 取代為可協助您識別此裝置群組的名稱。  
此物件包含下列資訊：    
`selectionRule`  
指定哪些用戶端裝置是此裝置群組成員的查詢。當用戶端裝置連線時，核心裝置會評估此選擇規則，以判斷用戶端裝置是否為此裝置群組的成員。如果用戶端裝置是成員，核心裝置會使用此裝置群組的政策來授權用戶端裝置的動作。  
每個選擇規則至少包含一個*選擇規則子句*，這是單一表達式查詢，可以符合用戶端裝置。選擇規則使用與 AWS IoT 機群索引相同的查詢語法。如需選擇規則語法的詳細資訊，請參閱《 *AWS IoT Core 開發人員指南*》中的[AWS IoT 機群索引查詢語法](https://docs.aws.amazon.com/iot/latest/developerguide/query-syntax.html)。  
使用`*`萬用字元來比對具有一個選取規則子句的多個用戶端裝置。您可以在物件名稱的開頭和結尾使用此萬用字元，來比對名稱開頭或結尾為您所指定字串的用戶端裝置。您也可以使用此萬用字元來比對所有用戶端裝置。  
若要選取包含冒號字元 (`:`) 的值，請使用反斜線字元 () 逸出冒號`\`。在 JSON 等格式中，您必須逸出反斜線字元，以便在冒號字元之前輸入兩個反斜線字元。例如，指定 `thingName: MyTeam\\:ClientDevice1` 選取名稱為 的物件`MyTeam:ClientDevice1`。
您可以指定下列選擇器：  
+ `thingName` – 用戶端裝置 AWS IoT 物件的名稱。

**Example 範例選取規則**  
下列選擇規則符合名稱為 `MyClientDevice1`或 的用戶端裝置`MyClientDevice2`。  

```
thingName: MyClientDevice1 OR thingName: MyClientDevice2
```

**Example 範例選取規則 （使用萬用字元）**  
下列選擇規則符合名稱開頭為 的用戶端裝置`MyClientDevice`。  

```
thingName: MyClientDevice*
```

**Example 範例選取規則 （使用萬用字元）**  
下列選擇規則符合名稱結尾為 的用戶端裝置`MyClientDevice`。  

```
thingName: *MyClientDevice
```

**Example 範例選取規則 （符合所有裝置）**  
下列選擇規則符合所有用戶端裝置。  

```
thingName: *
```  
`policyName`  
套用至此裝置群組中用戶端裝置的許可政策。指定您在 `policies` 物件中定義的政策名稱。  
`policies`  
連接到核心裝置的用戶端裝置的用戶端裝置授權政策。每個授權政策都會指定一組動作，以及用戶端裝置可以執行這些動作的資源。  
此物件包含下列資訊：    
`policyNameKey`  
此授權政策的名稱。將 *policyNameKey* 取代為可協助您識別此授權政策的名稱。您可以使用此政策名稱來定義適用於裝置群組的政策。  
此物件包含下列資訊：    
`statementNameKey`  
此政策陳述式的名稱。將 *statementNameKey* 取代為可協助您識別此政策陳述式的名稱。  
此物件包含下列資訊：    
`operations`  
允許此政策中資源的操作清單。  
您可以包含下列任何操作：  
+ `mqtt:connect` – 准許連線至核心裝置。用戶端裝置必須具有此許可才能連線至核心裝置。

  此操作支援下列資源：
  + `mqtt:clientId:deviceClientId` – 根據用戶端裝置用來連線至核心裝置的 MQTT 代理程式的用戶端 ID 限制存取。將 *deviceClientId* 取代為要使用的用戶端 ID。
+ `mqtt:publish` – 准許將 MQTT 訊息發佈至主題。

  此操作支援下列資源：
  + <a name="client-device-authorization-policy-resource-mqtt-topic"></a>`mqtt:topic:mqttTopic` – 根據用戶端裝置發佈訊息的 MQTT 主題來限制存取。將 *mqttTopic* 取代為要使用的主題。

    此資源不支援 MQTT 主題萬用字元。
+ `mqtt:subscribe` – 准許訂閱 MQTT 主題篩選條件以接收訊息。

  此操作支援下列資源：
  + `mqtt:topicfilter:mqttTopicFilter` – 根據用戶端裝置可以訂閱訊息的 MQTT 主題來限制存取。將 *mqttTopicFilter* 取代為要使用的主題篩選條件。

    此資源不支援 MQTT 主題萬用字元。  
`resources`  
允許此政策中操作的資源清單。指定與此政策中 操作對應的資源。例如，您可以在指定 `mqtt:publish`操作的政策中指定 MQTT 主題資源 (`mqtt:topic:mqttTopic`) 的清單。  
您可以在資源變數內的任何位置指定`*`萬用字元，以允許存取所有資源。例如，您可以指定 **mqtt:topic:my\$1** 以允許存取符合該輸入的資源。  
支援下列資源變數：  
+ `mqtt:topic:${iot:Connection.Thing.ThingName}`

  這會解析為正在評估政策之 AWS IoT Core 登錄檔中的物件名稱。 AWS IoT Core 會使用裝置在驗證時提供的憑證來判斷要使用哪些物件來驗證連線。本政策變數僅在裝置透過 MQTT 或 MQTT over WebSocket 通訊協定進行連線時可用。  
`statementDescription`  
（選用） 此政策陳述式的描述。

`certificates`  <a name="client-device-auth-component-configuration-certificates"></a>
（選用） 此核心裝置的憑證組態選項。此物件包含下列資訊：    
`serverCertificateValiditySeconds`  
（選用） 本機 MQTT 伺服器憑證過期的時間量 （以秒為單位）。您可以設定此選項來自訂用戶端裝置中斷連線並重新連線至核心裝置的頻率。  
此元件會在本機 MQTT 伺服器憑證過期前 24 小時輪換本機 MQTT 伺服器憑證。MQTT 代理程式，例如 [Moquette MQTT 代理程式元件](mqtt-broker-moquette-component.md)，會產生新的憑證並重新啟動。發生這種情況時，所有連接到此核心裝置的用戶端裝置都會中斷連線。用戶端裝置可以在短時間內重新連線至核心裝置。  
預設：`604800`(7 天）  
最小值：`172800`(2 天）  
最大值： `864000` (10 天）

`performance`  
（選用） 此核心裝置的效能組態選項。此物件包含下列資訊：    
`maxActiveAuthTokens`  
（選用） 作用中用戶端裝置授權字符的數量上限。您可以增加此數量，讓更多用戶端裝置連接到單一核心裝置，而無需重新驗證它們。  
預設：`2500`  
`cloudRequestQueueSize`  
（選用） 此元件拒絕 AWS 雲端 請求之前佇列的請求數目上限。  
預設：`100`  
`maxConcurrentCloudRequests`  
（選用） 要傳送至 的並行請求數目上限 AWS 雲端。您可以增加此數字，以改善連接大量用戶端裝置的核心裝置上的身分驗證效能。  
預設：`1`

`certificateAuthority`  
（選用） 憑證授權單位組態選項，可將核心裝置中繼授權單位取代為您自己的中繼憑證授權單位。  
如果您使用自訂憑證授權機構 (CA) 設定 Greengrass 核心裝置，並使用相同的 CA 發出用戶端裝置憑證，Greengrass 會略過用戶端裝置 MQTT 操作的授權政策檢查。用戶端裝置身分驗證元件會使用其設定為使用的 CA 簽署的憑證，完全信任用戶端。  
若要在使用自訂 CA 時限制此行為，請使用不同的 CA 或中繼 CA 建立和簽署用戶端裝置，然後調整 `certificateUri`和 `certificateChainUri` 欄位以指向正確的中繼 CA。
 此物件包含下列資訊。    
certificateUri  
憑證的位置。它可以是檔案系統 URI 或指向存放在硬體安全模組中的憑證的 URI。  
`certificateChainUri`  
核心裝置 CA 的憑證鏈位置。這應該是返回根 CA 的完整憑證鏈。它可以是檔案系統 URI 或 URI，指向存放在硬體安全模組中的憑證鏈。  
`privateKeyUri`  
核心裝置私有金鑰的位置。這可以是檔案系統 URI 或 URI，指向存放在硬體安全模組中的憑證私有金鑰。

`security`  
（選用） 此核心裝置的安全組態選項。此物件包含下列資訊。    
`clientDeviceTrustDurationMinutes`  
在使用核心裝置重新驗證之前，用戶端裝置的身分驗證資訊可信任的持續時間，以分鐘為單位。預設值為 1.

`metrics`  
（選用） 此核心裝置的指標選項。只有在用戶端裝置驗證發生錯誤時，才會顯示錯誤指標。此物件包含下列資訊：    
`disableMetrics`  
如果 `disableMetrics` 欄位設定為 `true`，則用戶端裝置身分驗證不會收集指標。  
預設：`false`  
`aggregatePeriodSeconds`  
以秒為單位的彙總期間，決定用戶端裝置身分驗證彙總指標並將其傳送至遙測代理程式的頻率。這不會變更指標發佈的頻率，因為遙測代理器仍會每天發佈一次。  
預設：`3600`

startupTimeoutSeconds  
（選用） 元件啟動的秒數上限。`ERRORED` 如果元件超過此逾時，元件的狀態會變更為 。  
預設：`120`

**Example 範例：組態合併更新 （使用限制性政策）**  <a name="client-device-auth-component-configuration-example-restrictive"></a>
下列範例組態指定 ，允許名稱開頭為 的用戶端裝置`MyClientDevice`在所有主題上連線和發佈/訂閱。  

```
{
  "deviceGroups": {
    "formatVersion": "2021-03-05",
    "definitions": {
      "MyDeviceGroup": {
        "selectionRule": "thingName: MyClientDevice*",
        "policyName": "MyRestrictivePolicy"
      }
    },
    "policies": {
      "MyRestrictivePolicy": {
        "AllowConnect": {
          "statementDescription": "Allow client devices to connect.",
          "operations": [
            "mqtt:connect"
          ],
          "resources": [
            "*"
          ]
        },
        "AllowPublish": {
          "statementDescription": "Allow client devices to publish on test/topic.",
          "operations": [
            "mqtt:publish"
          ],
          "resources": [
            "mqtt:topic:test/topic"
          ]
        },
        "AllowSubscribe": {
          "statementDescription": "Allow client devices to subscribe to test/topic/response.",
          "operations": [
            "mqtt:subscribe"
          ],
          "resources": [
            "mqtt:topicfilter:test/topic/response"
          ]
        }
      }
    }
  }
}
```

**Example 範例：組態合併更新 （使用寬鬆政策）**  <a name="client-device-auth-component-configuration-example-permissive"></a>
下列範例組態指定 ，以允許所有用戶端裝置在所有主題上連線和發佈/訂閱。  

```
{
  "deviceGroups": {
    "formatVersion": "2021-03-05",
    "definitions": {
      "MyPermissiveDeviceGroup": {
        "selectionRule": "thingName: *",
        "policyName": "MyPermissivePolicy"
      }
    },
    "policies": {
      "MyPermissivePolicy": {
        "AllowAll": {
          "statementDescription": "Allow client devices to perform all actions.",
          "operations": [
            "*"
          ],
          "resources": [
            "*"
          ]
        }
      }
    }
  }
}
```

**Example 範例：組態合併更新 （使用物件名稱政策）**  <a name="client-device-auth-component-configuration-example-mythingname"></a>
下列範例組態可讓用戶端裝置在以用戶端裝置物件名稱開頭並以字串 結尾的主題上發佈`topic`。  

```
{
  "deviceGroups": {
    "formatVersion": "2021-03-05",
    "definitions": {
      "myThing": {
        "selectionRule": "thingName: *",
        "policyName": "MyThingNamePolicy"
      }
    },
    "policies": {
      "MyThingNamePolicy": {
        "policyStatement": {
          "statementDescription": "mqtt publish",
          "operations": [
            "mqtt:publish"
          ],
          "resources": [
            "mqtt:topic:${iot:Connection.Thing.ThingName}/*/topic"
          ]
        }
      }
    }
  }
}
```

------
#### [ v2.4.5 ]

`deviceGroups`  
裝置群組是具有與核心裝置連線和通訊許可的用戶端裝置群組。使用選取規則來識別用戶端裝置的群組，並定義指定每個裝置群組許可的*用戶端裝置授權政策*。  
此物件包含下列資訊：    
`formatVersion`  
此組態物件的格式版本。  
您可以從以下選項中選擇：  
+ `2021-03-05`  
`definitions`  
此核心裝置的裝置群組。每個定義都會指定*選擇規則*，以評估用戶端裝置是否為 群組的成員。每個定義也會指定要套用至符合選取規則之用戶端裝置的許可政策。如果用戶端裝置是多個裝置群組的成員，則裝置的許可會包含每個群組的許可政策。  
此物件包含下列資訊：    
`groupNameKey`  
此裝置群組的名稱。將 *groupNameKey* 取代為可協助您識別此裝置群組的名稱。  
此物件包含下列資訊：    
`selectionRule`  
指定哪些用戶端裝置是此裝置群組成員的查詢。當用戶端裝置連線時，核心裝置會評估此選擇規則，以判斷用戶端裝置是否為此裝置群組的成員。如果用戶端裝置是成員，核心裝置會使用此裝置群組的政策來授權用戶端裝置的動作。  
每個選擇規則至少包含一個*選擇規則子句*，這是單一表達式查詢，可以符合用戶端裝置。選擇規則使用與 AWS IoT 機群索引相同的查詢語法。如需選取規則語法的詳細資訊，請參閱《 *AWS IoT Core 開發人員指南*》中的[AWS IoT 機群索引查詢語法](https://docs.aws.amazon.com/iot/latest/developerguide/query-syntax.html)。  
使用`*`萬用字元來比對具有一個選取規則子句的多個用戶端裝置。您可以在物件名稱的開頭和結尾使用此萬用字元，來比對名稱開頭或結尾為您所指定字串的用戶端裝置。您也可以使用此萬用字元來比對所有用戶端裝置。  
若要選取包含冒號字元 (`:`) 的值，請使用反斜線字元 () 逸出冒號`\`。在 JSON 等格式中，您必須逸出反斜線字元，以便在冒號字元之前輸入兩個反斜線字元。例如，指定 `thingName: MyTeam\\:ClientDevice1` 選取名稱為 的物件`MyTeam:ClientDevice1`。
您可以指定下列選擇器：  
+ `thingName` – 用戶端裝置 AWS IoT 物件的名稱。

**Example 範例選取規則**  
下列選擇規則符合名稱為 `MyClientDevice1`或 的用戶端裝置`MyClientDevice2`。  

```
thingName: MyClientDevice1 OR thingName: MyClientDevice2
```

**Example 範例選取規則 （使用萬用字元）**  
下列選擇規則符合名稱開頭為 的用戶端裝置`MyClientDevice`。  

```
thingName: MyClientDevice*
```

**Example 範例選取規則 （使用萬用字元）**  
下列選擇規則符合名稱以 結尾的用戶端裝置`MyClientDevice`。  

```
thingName: *MyClientDevice
```

**Example 範例選取規則 （符合所有裝置）**  
下列選擇規則符合所有用戶端裝置。  

```
thingName: *
```  
`policyName`  
套用至此裝置群組中用戶端裝置的許可政策。指定您在 `policies` 物件中定義的政策名稱。  
`policies`  
連接到核心裝置的用戶端裝置的用戶端裝置授權政策。每個授權政策都會指定一組動作，以及用戶端裝置可以執行這些動作的資源。  
此物件包含下列資訊：    
`policyNameKey`  
此授權政策的名稱。將 *policyNameKey* 取代為可協助您識別此授權政策的名稱。您可以使用此政策名稱來定義適用於裝置群組的政策。  
此物件包含下列資訊：    
`statementNameKey`  
此政策陳述式的名稱。將 *statementNameKey* 取代為可協助您識別此政策陳述式的名稱。  
此物件包含下列資訊：    
`operations`  
允許此政策中資源的操作清單。  
您可以包含下列任何操作：  
+ `mqtt:connect` – 准許連線至核心裝置。用戶端裝置必須具有此許可才能連線至核心裝置。

  此操作支援下列資源：
  + `mqtt:clientId:deviceClientId` – 根據用戶端裝置用來連線至核心裝置的 MQTT 代理程式的用戶端 ID 限制存取。將 *deviceClientId* 取代為要使用的用戶端 ID。
+ `mqtt:publish` – 准許將 MQTT 訊息發佈至主題。

  此操作支援下列資源：
  + <a name="client-device-authorization-policy-resource-mqtt-topic"></a>`mqtt:topic:mqttTopic` – 根據用戶端裝置發佈訊息的 MQTT 主題來限制存取。將 *mqttTopic* 取代為要使用的主題。

    此資源不支援 MQTT 主題萬用字元。
+ `mqtt:subscribe` – 准許訂閱 MQTT 主題篩選條件以接收訊息。

  此操作支援下列資源：
  + <a name="client-device-authorization-policy-resource-mqtt-topicfilter"></a>`mqtt:topicfilter:mqttTopicFilter` – 根據用戶端裝置可以訂閱訊息的 MQTT 主題來限制存取。將 *mqttTopicFilter* 取代為要使用的主題篩選條件。

    此資源支援 `+`和 `#` MQTT 主題萬用字元。如需詳細資訊，請參閱《 *AWS IoT Core 開發人員指南*》中的 [MQTT 主題](https://docs.aws.amazon.com/iot/latest/developerguide/topics.html)。

    用戶端裝置可以訂閱您允許的確切主題篩選條件。例如，如果您允許用戶端裝置訂閱 `mqtt:topicfilter:client/+/status` 資源，用戶端裝置可以訂閱 `client/+/status`，但不能訂閱 `client/client1/status`。
您可以指定`*`萬用字元，以允許存取所有動作。  
`resources`  
此政策中允許 操作的資源清單。指定與此政策中 操作對應的資源。例如，您可以在指定 `mqtt:publish`操作的政策中指定 MQTT 主題資源 (`mqtt:topic:mqttTopic`) 的清單。  
您可以指定`*`萬用字元，以允許存取所有資源。您無法使用`*`萬用字元來比對部分資源識別符。例如，您可以指定 **"resources": "\$1"**，但無法指定 **"resources": "mqtt:clientId:\$1"**。  
`statementDescription`  
（選用） 此政策陳述式的描述。

`certificates`  <a name="client-device-auth-component-configuration-certificates"></a>
（選用） 此核心裝置的憑證組態選項。此物件包含下列資訊：    
`serverCertificateValiditySeconds`  
（選用） 本機 MQTT 伺服器憑證過期的時間量 （以秒為單位）。您可以設定此選項來自訂用戶端裝置中斷連線和重新連線至核心裝置的頻率。  
此元件會在本機 MQTT 伺服器憑證過期前 24 小時輪換本機 MQTT 伺服器憑證。MQTT 代理程式，例如 [Moquette MQTT 代理程式元件](mqtt-broker-moquette-component.md)，會產生新的憑證並重新啟動。發生這種情況時，所有連接到此核心裝置的用戶端裝置都會中斷連線。用戶端裝置可以在短時間內重新連線至核心裝置。  
預設：`604800`(7 天）  
最小值：`172800`(2 天）  
最大值： `864000` (10 天）

`performance`  
（選用） 此核心裝置的效能組態選項。此物件包含下列資訊：    
`maxActiveAuthTokens`  
（選用） 作用中用戶端裝置授權字符的數量上限。您可以增加此數量，讓更多用戶端裝置連接到單一核心裝置，而無需重新驗證它們。  
預設：`2500`  
`cloudRequestQueueSize`  
（選用） 此元件拒絕 AWS 雲端 請求之前佇列的請求數目上限。  
預設：`100`  
`maxConcurrentCloudRequests`  
（選用） 要傳送至 的並行請求數目上限 AWS 雲端。您可以增加此數字，以改善連接大量用戶端裝置的核心裝置上的身分驗證效能。  
預設：`1`

`certificateAuthority`  
（選用） 憑證授權單位組態選項，可將核心裝置中繼授權單位取代為您自己的中繼憑證授權單位。  
如果您使用自訂憑證授權機構 (CA) 設定 Greengrass 核心裝置，並使用相同的 CA 發出用戶端裝置憑證，Greengrass 會略過用戶端裝置 MQTT 操作的授權政策檢查。用戶端裝置身分驗證元件會使用其設定為使用的 CA 簽署的憑證，完全信任用戶端。  
若要在使用自訂 CA 時限制此行為，請使用不同的 CA 或中繼 CA 建立和簽署用戶端裝置，然後調整 `certificateUri`和 `certificateChainUri` 欄位以指向正確的中繼 CA。
 此物件包含下列資訊。    
certificateUri  
憑證的位置。它可以是檔案系統 URI 或 URI，指向存放在硬體安全模組中的憑證。  
`certificateChainUri`  
核心裝置 CA 的憑證鏈位置。這應該是返回根 CA 的完整憑證鏈。它可以是檔案系統 URI 或 URI，指向存放在硬體安全模組中的憑證鏈。  
`privateKeyUri`  
核心裝置私有金鑰的位置。這可以是檔案系統 URI 或 URI，指向存放在硬體安全模組中的憑證私有金鑰。

`security`  
（選用） 此核心裝置的安全組態選項。此物件包含下列資訊。    
`clientDeviceTrustDurationMinutes`  
在使用核心裝置重新驗證之前，用戶端裝置的身分驗證資訊可信任的持續時間，以分鐘為單位。預設值為 1.

`metrics`  
（選用） 此核心裝置的指標選項。只有在用戶端裝置驗證發生錯誤時，才會顯示錯誤指標。此物件包含下列資訊：    
`disableMetrics`  
如果 `disableMetrics` 欄位設定為 `true`，則用戶端裝置身分驗證不會收集指標。  
預設：`false`  
`aggregatePeriodSeconds`  
以秒為單位的彙總期間，決定用戶端裝置身分驗證彙總指標並將其傳送至遙測代理程式的頻率。這不會變更指標發佈的頻率，因為遙測代理程式仍會每天發佈一次。  
預設：`3600`

startupTimeoutSeconds  
（選用） 元件啟動的時間上限，以秒為單位。`ERRORED` 如果元件超過此逾時，元件的狀態會變更為 。  
預設：`120`

**Example 範例：組態合併更新 （使用限制性政策）**  <a name="client-device-auth-component-configuration-example-restrictive"></a>
下列範例組態指定 ，允許名稱開頭為 `MyClientDevice`的用戶端裝置在所有主題上連線和發佈/訂閱。  

```
{
  "deviceGroups": {
    "formatVersion": "2021-03-05",
    "definitions": {
      "MyDeviceGroup": {
        "selectionRule": "thingName: MyClientDevice*",
        "policyName": "MyRestrictivePolicy"
      }
    },
    "policies": {
      "MyRestrictivePolicy": {
        "AllowConnect": {
          "statementDescription": "Allow client devices to connect.",
          "operations": [
            "mqtt:connect"
          ],
          "resources": [
            "*"
          ]
        },
        "AllowPublish": {
          "statementDescription": "Allow client devices to publish on test/topic.",
          "operations": [
            "mqtt:publish"
          ],
          "resources": [
            "mqtt:topic:test/topic"
          ]
        },
        "AllowSubscribe": {
          "statementDescription": "Allow client devices to subscribe to test/topic/response.",
          "operations": [
            "mqtt:subscribe"
          ],
          "resources": [
            "mqtt:topicfilter:test/topic/response"
          ]
        }
      }
    }
  }
}
```

**Example 範例：組態合併更新 （使用寬鬆政策）**  <a name="client-device-auth-component-configuration-example-permissive"></a>
下列範例組態指定 ，以允許所有用戶端裝置在所有主題上連線和發佈/訂閱。  

```
{
  "deviceGroups": {
    "formatVersion": "2021-03-05",
    "definitions": {
      "MyPermissiveDeviceGroup": {
        "selectionRule": "thingName: *",
        "policyName": "MyPermissivePolicy"
      }
    },
    "policies": {
      "MyPermissivePolicy": {
        "AllowAll": {
          "statementDescription": "Allow client devices to perform all actions.",
          "operations": [
            "*"
          ],
          "resources": [
            "*"
          ]
        }
      }
    }
  }
}
```

------
#### [ v2.4.2 - v2.4.4 ]

`deviceGroups`  <a name="client-device-auth-component-configuration-devicegroups"></a>
裝置群組是具有與核心裝置連線和通訊許可的用戶端裝置群組。使用選取規則來識別用戶端裝置的群組，並定義*用戶端裝置授權政策*，以指定每個裝置群組的許可。  
此物件包含下列資訊：    
`formatVersion`  
此組態物件的格式版本。  
您可以從以下選項中選擇：  
+ `2021-03-05`  
`definitions`  
此核心裝置的裝置群組。每個定義都會指定*選擇規則*，以評估用戶端裝置是否為 群組的成員。每個定義也會指定要套用至符合選取規則之用戶端裝置的許可政策。如果用戶端裝置是多個裝置群組的成員，則裝置的許可會包含每個群組的許可政策。  
此物件包含下列資訊：    
`groupNameKey`  
此裝置群組的名稱。將 *groupNameKey* 取代為可協助您識別此裝置群組的名稱。  
此物件包含下列資訊：    
`selectionRule`  
指定哪些用戶端裝置是此裝置群組成員的查詢。當用戶端裝置連線時，核心裝置會評估此選擇規則，以判斷用戶端裝置是否為此裝置群組的成員。如果用戶端裝置是成員，核心裝置會使用此裝置群組的政策來授權用戶端裝置的動作。  
每個選擇規則都包含至少一個*選擇規則子句*，這是單一表達式查詢，可以比對用戶端裝置。選擇規則使用與 AWS IoT 機群索引相同的查詢語法。如需選取規則語法的詳細資訊，請參閱《 *AWS IoT Core 開發人員指南*》中的[AWS IoT 機群索引查詢語法](https://docs.aws.amazon.com/iot/latest/developerguide/query-syntax.html)。  
使用`*`萬用字元來比對具有一個選取規則子句的多個用戶端裝置。您可以在物件名稱結尾使用此萬用字元來比對名稱開頭為您所指定字串的用戶端裝置。您也可以使用此萬用字元來比對所有用戶端裝置。  
若要選取包含冒號字元 (`:`) 的值，請使用反斜線字元 () 逸出冒號`\\`。在 JSON 等格式中，您必須逸出反斜線字元，以便在冒號字元之前輸入兩個反斜線字元。例如，指定 `thingName: MyTeam\\\\:ClientDevice1` 選取名稱為 的物件`MyTeam:ClientDevice1`。
您可以指定下列選擇器：  
+ `thingName` – 用戶端裝置 AWS IoT 物件的名稱。

**Example 範例選取規則**  
下列選擇規則符合名稱為 `MyClientDevice1`或 的用戶端裝置`MyClientDevice2`。  

```
thingName: MyClientDevice1 OR thingName: MyClientDevice2
```

**Example 範例選取規則 （使用萬用字元）**  
下列選擇規則符合名稱開頭為 的用戶端裝置`MyClientDevice`。  

```
thingName: MyClientDevice*
```

**Example 範例選取規則 （符合所有裝置）**  
下列選擇規則符合所有用戶端裝置。  

```
thingName: *
```  
`policyName`  
套用至此裝置群組中用戶端裝置的許可政策。指定您在 `policies` 物件中定義的政策名稱。  
`policies`  
連接到核心裝置的用戶端裝置的用戶端裝置授權政策。每個授權政策都會指定一組動作，以及用戶端裝置可以執行這些動作的資源。  
此物件包含下列資訊：    
`policyNameKey`  
此授權政策的名稱。將 *policyNameKey* 取代為可協助您識別此授權政策的名稱。您可以使用此政策名稱來定義適用於裝置群組的政策。  
此物件包含下列資訊：    
`statementNameKey`  
此政策陳述式的名稱。將 *statementNameKey* 取代為可協助您識別此政策陳述式的名稱。  
此物件包含下列資訊：    
`operations`  
允許此政策中資源的操作清單。  
您可以包含下列任何操作：  
+ `mqtt:connect` – 准許連線至核心裝置。用戶端裝置必須具有此許可才能連線至核心裝置。

  此操作支援下列資源：
  + `mqtt:clientId:deviceClientId` – 根據用戶端裝置用來連線至核心裝置的 MQTT 代理程式的用戶端 ID 限制存取。將 *deviceClientId* 取代為要使用的用戶端 ID。
+ `mqtt:publish` – 准許將 MQTT 訊息發佈至主題。

  此操作支援下列資源：
  + <a name="client-device-authorization-policy-resource-mqtt-topic"></a>`mqtt:topic:mqttTopic` – 根據用戶端裝置發佈訊息的 MQTT 主題來限制存取。將 *mqttTopic* 取代為要使用的主題。

    此資源不支援 MQTT 主題萬用字元。
+ `mqtt:subscribe` – 准許訂閱 MQTT 主題篩選條件以接收訊息。

  此操作支援下列資源：
  + <a name="client-device-authorization-policy-resource-mqtt-topicfilter"></a>`mqtt:topicfilter:mqttTopicFilter` – 根據用戶端裝置可以訂閱訊息的 MQTT 主題來限制存取。將 *mqttTopicFilter* 取代為要使用的主題篩選條件。

    此資源支援 `+`和 `#` MQTT 主題萬用字元。如需詳細資訊，請參閱《 *AWS IoT Core 開發人員指南*》中的 [MQTT 主題](https://docs.aws.amazon.com/iot/latest/developerguide/topics.html)。

    用戶端裝置可以訂閱您允許的確切主題篩選條件。例如，如果您允許用戶端裝置訂閱 `mqtt:topicfilter:client/+/status` 資源，用戶端裝置可以訂閱 `client/+/status`，但不能訂閱 `client/client1/status`。
您可以指定`*`萬用字元，以允許存取所有動作。  
`resources`  
允許此政策中操作的資源清單。指定與此政策中 操作對應的資源。例如，您可以在指定 `mqtt:publish`操作的政策中指定 MQTT 主題資源 (`mqtt:topic:mqttTopic`) 的清單。  
您可以指定`*`萬用字元，以允許存取所有資源。您無法使用`*`萬用字元來比對部分資源識別符。例如，您可以指定 **"resources": "\$1"**，但無法指定 **"resources": "mqtt:clientId:\$1"**。  
`statementDescription`  
（選用） 此政策陳述式的描述。

`certificates`  <a name="client-device-auth-component-configuration-certificates"></a>
（選用） 此核心裝置的憑證組態選項。此物件包含下列資訊：    
`serverCertificateValiditySeconds`  
（選用） 本機 MQTT 伺服器憑證過期的時間量 （以秒為單位）。您可以設定此選項來自訂用戶端裝置中斷連線並重新連線至核心裝置的頻率。  
此元件會在本機 MQTT 伺服器憑證過期前 24 小時輪換本機 MQTT 伺服器憑證。MQTT 代理程式，例如 [Moquette MQTT 代理程式元件](mqtt-broker-moquette-component.md)，會產生新的憑證並重新啟動。發生這種情況時，所有連接到此核心裝置的用戶端裝置都會中斷連線。用戶端裝置可以在短時間內重新連線至核心裝置。  
預設：`604800`(7 天）  
最小值：`172800`(2 天）  
最大值： `864000` (10 天）

`performance`  
（選用） 此核心裝置的效能組態選項。此物件包含下列資訊：    
`maxActiveAuthTokens`  
（選用） 作用中用戶端裝置授權字符的數量上限。您可以增加此數量，讓更多用戶端裝置連接到單一核心裝置，而無需重新驗證它們。  
預設：`2500`  
`cloudRequestQueueSize`  
（選用） 此元件拒絕 AWS 雲端 請求之前佇列的請求數目上限。  
預設：`100`  
`maxConcurrentCloudRequests`  
（選用） 要傳送至 的並行請求數目上限 AWS 雲端。您可以增加此數字，以改善連接大量用戶端裝置的核心裝置上的身分驗證效能。  
預設：`1`

`certificateAuthority`  
（選用） 憑證授權單位組態選項，可將核心裝置中繼授權單位取代為您自己的中繼憑證授權單位。  
如果您使用自訂憑證授權機構 (CA) 設定 Greengrass 核心裝置，並使用相同的 CA 發出用戶端裝置憑證，Greengrass 會略過用戶端裝置 MQTT 操作的授權政策檢查。用戶端裝置身分驗證元件會使用其設定為使用的 CA 簽署的憑證，完全信任用戶端。  
若要在使用自訂 CA 時限制此行為，請使用不同的 CA 或中繼 CA 建立和簽署用戶端裝置，然後調整 `certificateUri`和 `certificateChainUri` 欄位以指向正確的中繼 CA。
 此物件包含下列資訊。    
certificateUri  
憑證的位置。它可以是檔案系統 URI 或指向存放在硬體安全模組中的憑證的 URI。  
`certificateChainUri`  
核心裝置 CA 的憑證鏈位置。這應該是返回根 CA 的完整憑證鏈。它可以是檔案系統 URI 或 URI，指向存放在硬體安全模組中的憑證鏈。  
`privateKeyUri`  
核心裝置私有金鑰的位置。這可以是檔案系統 URI 或 URI，指向存放在硬體安全模組中的憑證私有金鑰。

`security`  
（選用） 此核心裝置的安全組態選項。此物件包含下列資訊。    
`clientDeviceTrustDurationMinutes`  
在使用核心裝置重新驗證之前，用戶端裝置的身分驗證資訊可信任的持續時間，以分鐘為單位。預設值為 1.

`metrics`  
（選用） 此核心裝置的指標選項。只有在用戶端裝置驗證發生錯誤時，才會顯示錯誤指標。此物件包含下列資訊：    
`disableMetrics`  
如果 `disableMetrics` 欄位設定為 `true`，則用戶端裝置身分驗證不會收集指標。  
預設：`false`  
`aggregatePeriodSeconds`  
以秒為單位的彙總期間，決定用戶端裝置身分驗證彙總指標並將其傳送至遙測代理程式的頻率。這不會變更指標發佈的頻率，因為遙測代理器仍會每天發佈一次。  
預設：`3600`

startupTimeoutSeconds  
（選用） 元件啟動的時間上限，以秒為單位。`ERRORED` 如果元件超過此逾時，元件的狀態會變更為 。  
預設：`120`

**Example 範例：組態合併更新 （使用限制性政策）**  <a name="client-device-auth-component-configuration-example-restrictive"></a>
下列範例組態指定 ，允許名稱開頭為 的用戶端裝置`MyClientDevice`在所有主題上連線和發佈/訂閱。  

```
{
  "deviceGroups": {
    "formatVersion": "2021-03-05",
    "definitions": {
      "MyDeviceGroup": {
        "selectionRule": "thingName: MyClientDevice*",
        "policyName": "MyRestrictivePolicy"
      }
    },
    "policies": {
      "MyRestrictivePolicy": {
        "AllowConnect": {
          "statementDescription": "Allow client devices to connect.",
          "operations": [
            "mqtt:connect"
          ],
          "resources": [
            "*"
          ]
        },
        "AllowPublish": {
          "statementDescription": "Allow client devices to publish on test/topic.",
          "operations": [
            "mqtt:publish"
          ],
          "resources": [
            "mqtt:topic:test/topic"
          ]
        },
        "AllowSubscribe": {
          "statementDescription": "Allow client devices to subscribe to test/topic/response.",
          "operations": [
            "mqtt:subscribe"
          ],
          "resources": [
            "mqtt:topicfilter:test/topic/response"
          ]
        }
      }
    }
  }
}
```

**Example 範例：組態合併更新 （使用寬鬆政策）**  <a name="client-device-auth-component-configuration-example-permissive"></a>
下列範例組態指定 ，以允許所有用戶端裝置在所有主題上連線和發佈/訂閱。  

```
{
  "deviceGroups": {
    "formatVersion": "2021-03-05",
    "definitions": {
      "MyPermissiveDeviceGroup": {
        "selectionRule": "thingName: *",
        "policyName": "MyPermissivePolicy"
      }
    },
    "policies": {
      "MyPermissivePolicy": {
        "AllowAll": {
          "statementDescription": "Allow client devices to perform all actions.",
          "operations": [
            "*"
          ],
          "resources": [
            "*"
          ]
        }
      }
    }
  }
}
```

------
#### [ v2.4.0 - v2.4.1 ]

`deviceGroups`  <a name="client-device-auth-component-configuration-devicegroups"></a>
裝置群組是具有與核心裝置連線和通訊許可的用戶端裝置群組。使用選取規則來識別用戶端裝置的群組，並定義*用戶端裝置授權政策*，以指定每個裝置群組的許可。  
此物件包含下列資訊：    
`formatVersion`  
此組態物件的格式版本。  
您可以從以下選項中選擇：  
+ `2021-03-05`  
`definitions`  
此核心裝置的裝置群組。每個定義都會指定*選擇規則*，以評估用戶端裝置是否為 群組的成員。每個定義也會指定要套用至符合選取規則之用戶端裝置的許可政策。如果用戶端裝置是多個裝置群組的成員，則裝置的許可會包含每個群組的許可政策。  
此物件包含下列資訊：    
`groupNameKey`  
此裝置群組的名稱。將 *groupNameKey* 取代為可協助您識別此裝置群組的名稱。  
此物件包含下列資訊：    
`selectionRule`  
指定哪些用戶端裝置是此裝置群組成員的查詢。當用戶端裝置連線時，核心裝置會評估此選擇規則，以判斷用戶端裝置是否為此裝置群組的成員。如果用戶端裝置是成員，核心裝置會使用此裝置群組的政策來授權用戶端裝置的動作。  
每個選擇規則至少包含一個*選擇規則子句*，這是單一表達式查詢，可以比對用戶端裝置。選擇規則使用與 AWS IoT 機群索引相同的查詢語法。如需選取規則語法的詳細資訊，請參閱《 *AWS IoT Core 開發人員指南*》中的[AWS IoT 機群索引查詢語法](https://docs.aws.amazon.com/iot/latest/developerguide/query-syntax.html)。  
使用`*`萬用字元來比對具有一個選取規則子句的多個用戶端裝置。您可以在物件名稱結尾使用此萬用字元來比對名稱開頭為您所指定字串的用戶端裝置。您也可以使用此萬用字元來比對所有用戶端裝置。  
若要選取包含冒號字元 (`:`) 的值，請使用反斜線字元 () 逸出冒號`\\`。在 JSON 等格式中，您必須逸出反斜線字元，以便在冒號字元之前輸入兩個反斜線字元。例如，指定 `thingName: MyTeam\\\\:ClientDevice1` 選取名稱為 的物件`MyTeam:ClientDevice1`。
您可以指定下列選擇器：  
+ `thingName` – 用戶端裝置 AWS IoT 物件的名稱。

**Example 範例選取規則**  
下列選擇規則符合名稱為 `MyClientDevice1`或 的用戶端裝置`MyClientDevice2`。  

```
thingName: MyClientDevice1 OR thingName: MyClientDevice2
```

**Example 範例選取規則 （使用萬用字元）**  
下列選擇規則符合名稱開頭為 的用戶端裝置`MyClientDevice`。  

```
thingName: MyClientDevice*
```

**Example 範例選取規則 （符合所有裝置）**  
下列選擇規則符合所有用戶端裝置。  

```
thingName: *
```  
`policyName`  
套用至此裝置群組中用戶端裝置的許可政策。指定您在 `policies` 物件中定義的政策名稱。  
`policies`  
連接到核心裝置的用戶端裝置的用戶端裝置授權政策。每個授權政策都會指定一組動作，以及用戶端裝置可以執行這些動作的資源。  
此物件包含下列資訊：    
`policyNameKey`  
此授權政策的名稱。將 *policyNameKey* 取代為可協助您識別此授權政策的名稱。您可以使用此政策名稱來定義適用於裝置群組的政策。  
此物件包含下列資訊：    
`statementNameKey`  
此政策陳述式的名稱。將 *statementNameKey* 取代為可協助您識別此政策陳述式的名稱。  
此物件包含下列資訊：    
`operations`  
允許此政策中資源的操作清單。  
您可以包含下列任何操作：  
+ `mqtt:connect` – 准許連線至核心裝置。用戶端裝置必須具有此許可才能連線至核心裝置。

  此操作支援下列資源：
  + `mqtt:clientId:deviceClientId` – 根據用戶端裝置用來連線至核心裝置的 MQTT 代理程式的用戶端 ID 限制存取。將 *deviceClientId* 取代為要使用的用戶端 ID。
+ `mqtt:publish` – 准許將 MQTT 訊息發佈至主題。

  此操作支援下列資源：
  + <a name="client-device-authorization-policy-resource-mqtt-topic"></a>`mqtt:topic:mqttTopic` – 根據用戶端裝置發佈訊息的 MQTT 主題來限制存取。將 *mqttTopic* 取代為要使用的主題。

    此資源不支援 MQTT 主題萬用字元。
+ `mqtt:subscribe` – 准許訂閱 MQTT 主題篩選條件以接收訊息。

  此操作支援下列資源：
  + <a name="client-device-authorization-policy-resource-mqtt-topicfilter"></a>`mqtt:topicfilter:mqttTopicFilter` – 根據用戶端裝置可以訂閱訊息的 MQTT 主題來限制存取。將 *mqttTopicFilter* 取代為要使用的主題篩選條件。

    此資源支援 `+`和 `#` MQTT 主題萬用字元。如需詳細資訊，請參閱《 *AWS IoT Core 開發人員指南*》中的 [MQTT 主題](https://docs.aws.amazon.com/iot/latest/developerguide/topics.html)。

    用戶端裝置可以訂閱您允許的確切主題篩選條件。例如，如果您允許用戶端裝置訂閱 `mqtt:topicfilter:client/+/status` 資源，用戶端裝置可以訂閱 `client/+/status`，但不能訂閱 `client/client1/status`。
您可以指定`*`萬用字元，以允許存取所有動作。  
`resources`  
允許此政策中操作的資源清單。指定與此政策中 操作對應的資源。例如，您可以在指定 `mqtt:publish`操作的政策中指定 MQTT 主題資源 (`mqtt:topic:mqttTopic`) 的清單。  
您可以指定`*`萬用字元，以允許存取所有資源。您無法使用`*`萬用字元來比對部分資源識別符。例如，您可以指定 **"resources": "\$1"**，但無法指定 **"resources": "mqtt:clientId:\$1"**。  
`statementDescription`  
（選用） 此政策陳述式的描述。

`certificates`  <a name="client-device-auth-component-configuration-certificates"></a>
（選用） 此核心裝置的憑證組態選項。此物件包含下列資訊：    
`serverCertificateValiditySeconds`  
（選用） 本機 MQTT 伺服器憑證過期的時間量 （以秒為單位）。您可以設定此選項來自訂用戶端裝置中斷連線並重新連線至核心裝置的頻率。  
此元件會在本機 MQTT 伺服器憑證過期前 24 小時輪換本機 MQTT 伺服器憑證。MQTT 代理程式，例如 [Moquette MQTT 代理程式元件](mqtt-broker-moquette-component.md)，會產生新的憑證並重新啟動。發生這種情況時，所有連接到此核心裝置的用戶端裝置都會中斷連線。用戶端裝置可以在短時間內重新連線至核心裝置。  
預設：`604800`(7 天）  
最小值：`172800`(2 天）  
最大值： `864000` (10 天）

`performance`  
（選用） 此核心裝置的效能組態選項。此物件包含下列資訊：    
`maxActiveAuthTokens`  
（選用） 作用中用戶端裝置授權字符的數量上限。您可以增加此數量，讓更多用戶端裝置連接到單一核心裝置，而無需重新驗證它們。  
預設：`2500`  
`cloudRequestQueueSize`  
（選用） 此元件拒絕 AWS 雲端 請求之前佇列的請求數目上限。  
預設：`100`  
`maxConcurrentCloudRequests`  
（選用） 要傳送至 的並行請求數目上限 AWS 雲端。您可以增加此數字，改善連接大量用戶端裝置的核心裝置上的身分驗證效能。  
預設：`1`

`certificateAuthority`  
（選用） 憑證授權機構組態選項，可將核心裝置中繼授權機構取代為您自己的中繼憑證授權機構。此物件包含下列資訊。  
 此物件包含下列資訊：    
certificateUri  
憑證的位置。它可以是檔案系統 URI 或指向存放在硬體安全模組中的憑證的 URI。  
`certificateChainUri`  
核心裝置 CA 的憑證鏈位置。這應該是返回根 CA 的完整憑證鏈。它可以是檔案系統 URI 或 URI，指向存放在硬體安全模組中的憑證鏈。  
`privateKeyUri`  
核心裝置私有金鑰的位置。這可以是檔案系統 URI 或 URI，指向存放在硬體安全模組中的憑證私有金鑰。

`security`  
（選用） 此核心裝置的安全組態選項。此物件包含下列資訊。    
`clientDeviceTrustDurationMinutes`  
在使用核心裝置重新驗證之前，用戶端裝置的身分驗證資訊可信任的持續時間，以分鐘為單位。預設值為 1.

`metrics`  
（選用） 此核心裝置的指標選項。只有在用戶端裝置驗證發生錯誤時，才會顯示錯誤指標。此物件包含下列資訊：    
`disableMetrics`  
如果 `disableMetrics` 欄位設定為 `true`，則用戶端裝置身分驗證不會收集指標。  
預設：`false`  
`aggregatePeriodSeconds`  
以秒為單位的彙總期間，決定用戶端裝置身分驗證彙總指標並將其傳送至遙測代理程式的頻率。這不會變更指標發佈的頻率，因為遙測代理器仍會每天發佈一次。  
預設：`3600`

**Example 範例：組態合併更新 （使用限制性政策）**  <a name="client-device-auth-component-configuration-example-restrictive"></a>
下列範例組態指定 ，允許名稱開頭為 的用戶端裝置`MyClientDevice`在所有主題上連線和發佈/訂閱。  

```
{
  "deviceGroups": {
    "formatVersion": "2021-03-05",
    "definitions": {
      "MyDeviceGroup": {
        "selectionRule": "thingName: MyClientDevice*",
        "policyName": "MyRestrictivePolicy"
      }
    },
    "policies": {
      "MyRestrictivePolicy": {
        "AllowConnect": {
          "statementDescription": "Allow client devices to connect.",
          "operations": [
            "mqtt:connect"
          ],
          "resources": [
            "*"
          ]
        },
        "AllowPublish": {
          "statementDescription": "Allow client devices to publish on test/topic.",
          "operations": [
            "mqtt:publish"
          ],
          "resources": [
            "mqtt:topic:test/topic"
          ]
        },
        "AllowSubscribe": {
          "statementDescription": "Allow client devices to subscribe to test/topic/response.",
          "operations": [
            "mqtt:subscribe"
          ],
          "resources": [
            "mqtt:topicfilter:test/topic/response"
          ]
        }
      }
    }
  }
}
```

**Example 範例：組態合併更新 （使用寬鬆政策）**  <a name="client-device-auth-component-configuration-example-permissive"></a>
下列範例組態指定 ，以允許所有用戶端裝置在所有主題上連線和發佈/訂閱。  

```
{
  "deviceGroups": {
    "formatVersion": "2021-03-05",
    "definitions": {
      "MyPermissiveDeviceGroup": {
        "selectionRule": "thingName: *",
        "policyName": "MyPermissivePolicy"
      }
    },
    "policies": {
      "MyPermissivePolicy": {
        "AllowAll": {
          "statementDescription": "Allow client devices to perform all actions.",
          "operations": [
            "*"
          ],
          "resources": [
            "*"
          ]
        }
      }
    }
  }
}
```

------
#### [ v2.3.x ]

`deviceGroups`  <a name="client-device-auth-component-configuration-devicegroups"></a>
裝置群組是具有與核心裝置連線和通訊許可的用戶端裝置群組。使用選取規則來識別用戶端裝置的群組，並定義*用戶端裝置授權政策*，以指定每個裝置群組的許可。  
此物件包含下列資訊：    
`formatVersion`  
此組態物件的格式版本。  
您可以從以下選項中選擇：  
+ `2021-03-05`  
`definitions`  
此核心裝置的裝置群組。每個定義都會指定*選擇規則*，以評估用戶端裝置是否為 群組的成員。每個定義也會指定要套用至符合選取規則之用戶端裝置的許可政策。如果用戶端裝置是多個裝置群組的成員，則裝置的許可會包含每個群組的許可政策。  
此物件包含下列資訊：    
`groupNameKey`  
此裝置群組的名稱。將 *groupNameKey* 取代為可協助您識別此裝置群組的名稱。  
此物件包含下列資訊：    
`selectionRule`  
指定哪些用戶端裝置是此裝置群組成員的查詢。當用戶端裝置連線時，核心裝置會評估此選擇規則，以判斷用戶端裝置是否為此裝置群組的成員。如果用戶端裝置是成員，核心裝置會使用此裝置群組的政策來授權用戶端裝置的動作。  
每個選擇規則都包含至少一個*選擇規則子句*，這是單一表達式查詢，可以比對用戶端裝置。選擇規則使用與 AWS IoT 機群索引相同的查詢語法。如需選取規則語法的詳細資訊，請參閱《 *AWS IoT Core 開發人員指南*》中的[AWS IoT 機群索引查詢語法](https://docs.aws.amazon.com/iot/latest/developerguide/query-syntax.html)。  
使用`*`萬用字元來比對具有一個選取規則子句的多個用戶端裝置。您可以在物件名稱結尾使用此萬用字元來比對名稱開頭為您所指定字串的用戶端裝置。您也可以使用此萬用字元來比對所有用戶端裝置。  
若要選取包含冒號字元 (`:`) 的值，請使用反斜線字元 () 逸出冒號`\\`。在 JSON 等格式中，您必須逸出反斜線字元，以便在冒號字元之前輸入兩個反斜線字元。例如，指定 `thingName: MyTeam\\\\:ClientDevice1` 選取名稱為 的物件`MyTeam:ClientDevice1`。
您可以指定下列選擇器：  
+ `thingName` – 用戶端裝置 AWS IoT 物件的名稱。

**Example 範例選取規則**  
下列選擇規則符合名稱為 `MyClientDevice1`或 的用戶端裝置`MyClientDevice2`。  

```
thingName: MyClientDevice1 OR thingName: MyClientDevice2
```

**Example 範例選取規則 （使用萬用字元）**  
下列選擇規則符合名稱開頭為 的用戶端裝置`MyClientDevice`。  

```
thingName: MyClientDevice*
```

**Example 範例選取規則 （符合所有裝置）**  
下列選擇規則符合所有用戶端裝置。  

```
thingName: *
```  
`policyName`  
套用至此裝置群組中用戶端裝置的許可政策。指定您在 `policies` 物件中定義的政策名稱。  
`policies`  
連接到核心裝置的用戶端裝置的用戶端裝置授權政策。每個授權政策都會指定一組動作，以及用戶端裝置可以執行這些動作的資源。  
此物件包含下列資訊：    
`policyNameKey`  
此授權政策的名稱。將 *policyNameKey* 取代為可協助您識別此授權政策的名稱。您可以使用此政策名稱來定義適用於裝置群組的政策。  
此物件包含下列資訊：    
`statementNameKey`  
此政策陳述式的名稱。將 *statementNameKey* 取代為可協助您識別此政策陳述式的名稱。  
此物件包含下列資訊：    
`operations`  
允許此政策中資源的操作清單。  
您可以包含下列任何操作：  
+ `mqtt:connect` – 准許連線至核心裝置。用戶端裝置必須具有此許可才能連線至核心裝置。

  此操作支援下列資源：
  + `mqtt:clientId:deviceClientId` – 根據用戶端裝置用來連線至核心裝置的 MQTT 代理程式的用戶端 ID 限制存取。將 *deviceClientId* 取代為要使用的用戶端 ID。
+ `mqtt:publish` – 准許將 MQTT 訊息發佈至主題。

  此操作支援下列資源：
  + <a name="client-device-authorization-policy-resource-mqtt-topic"></a>`mqtt:topic:mqttTopic` – 根據用戶端裝置發佈訊息的 MQTT 主題來限制存取。將 *mqttTopic* 取代為要使用的主題。

    此資源不支援 MQTT 主題萬用字元。
+ `mqtt:subscribe` – 准許訂閱 MQTT 主題篩選條件以接收訊息。

  此操作支援下列資源：
  + <a name="client-device-authorization-policy-resource-mqtt-topicfilter"></a>`mqtt:topicfilter:mqttTopicFilter` – 根據用戶端裝置可以訂閱訊息的 MQTT 主題來限制存取。將 *mqttTopicFilter* 取代為要使用的主題篩選條件。

    此資源支援 `+`和 `#` MQTT 主題萬用字元。如需詳細資訊，請參閱《 *AWS IoT Core 開發人員指南*》中的 [MQTT 主題](https://docs.aws.amazon.com/iot/latest/developerguide/topics.html)。

    用戶端裝置可以訂閱您允許的確切主題篩選條件。例如，如果您允許用戶端裝置訂閱 `mqtt:topicfilter:client/+/status` 資源，用戶端裝置可以訂閱 `client/+/status`，但不能訂閱 `client/client1/status`。
您可以指定`*`萬用字元，以允許存取所有動作。  
`resources`  
允許此政策中操作的資源清單。指定與此政策中 操作對應的資源。例如，您可以在指定 `mqtt:publish`操作的政策中指定 MQTT 主題資源 (`mqtt:topic:mqttTopic`) 的清單。  
您可以指定`*`萬用字元，以允許存取所有資源。您無法使用`*`萬用字元來比對部分資源識別符。例如，您可以指定 **"resources": "\$1"**，但無法指定 **"resources": "mqtt:clientId:\$1"**。  
`statementDescription`  
（選用） 此政策陳述式的描述。

`certificates`  <a name="client-device-auth-component-configuration-certificates"></a>
（選用） 此核心裝置的憑證組態選項。此物件包含下列資訊：    
`serverCertificateValiditySeconds`  
（選用） 本機 MQTT 伺服器憑證過期的時間量 （以秒為單位）。您可以設定此選項來自訂用戶端裝置中斷連線並重新連線至核心裝置的頻率。  
此元件會在本機 MQTT 伺服器憑證過期前 24 小時輪換本機 MQTT 伺服器憑證。MQTT 代理程式，例如 [Moquette MQTT 代理程式元件](mqtt-broker-moquette-component.md)，會產生新的憑證並重新啟動。發生這種情況時，所有連接到此核心裝置的用戶端裝置都會中斷連線。用戶端裝置可以在短時間內重新連線至核心裝置。  
預設：`604800`(7 天）  
最小值：`172800`(2 天）  
最大值： `864000` (10 天）

`performance`  
（選用） 此核心裝置的效能組態選項。此物件包含下列資訊：    
`maxActiveAuthTokens`  
（選用） 作用中用戶端裝置授權字符的數量上限。您可以增加此數量，讓更多用戶端裝置連接到單一核心裝置，而無需重新驗證它們。  
預設：`2500`  
`cloudRequestQueueSize`  
（選用） 此元件拒絕 AWS 雲端 請求之前佇列的請求數目上限。  
預設：`100`  
`maxConcurrentCloudRequests`  
（選用） 要傳送至 的並行請求數目上限 AWS 雲端。您可以增加此數字，改善連接大量用戶端裝置的核心裝置上的身分驗證效能。  
預設：`1`

`certificateAuthority`  
（選用） 憑證授權機構組態選項，可將核心裝置中繼授權機構取代為您自己的中繼憑證授權機構。此物件包含下列資訊。    
certificateUri  
憑證的位置。它可以是檔案系統 URI 或指向存放在硬體安全模組中的憑證的 URI。  
`certificateChainUri`  
核心裝置 CA 的憑證鏈位置。這應該是返回根 CA 的完整憑證鏈。它可以是檔案系統 URI 或 URI，指向存放在硬體安全模組中的憑證鏈。  
`privateKeyUri`  
核心裝置私有金鑰的位置。這可以是檔案系統 URI 或 URI，指向存放在硬體安全模組中的憑證私有金鑰。

`security`  
（選用） 此核心裝置的安全組態選項。此物件包含下列資訊。    
`clientDeviceTrustDurationMinutes`  
在需要使用核心裝置重新驗證之前，用戶端裝置的身分驗證資訊可信任的持續時間，以分鐘為單位。預設值為 1.

**Example 範例：組態合併更新 （使用限制性政策）**  <a name="client-device-auth-component-configuration-example-restrictive"></a>
下列範例組態指定 ，允許名稱開頭為 的用戶端裝置`MyClientDevice`在所有主題上連線和發佈/訂閱。  

```
{
  "deviceGroups": {
    "formatVersion": "2021-03-05",
    "definitions": {
      "MyDeviceGroup": {
        "selectionRule": "thingName: MyClientDevice*",
        "policyName": "MyRestrictivePolicy"
      }
    },
    "policies": {
      "MyRestrictivePolicy": {
        "AllowConnect": {
          "statementDescription": "Allow client devices to connect.",
          "operations": [
            "mqtt:connect"
          ],
          "resources": [
            "*"
          ]
        },
        "AllowPublish": {
          "statementDescription": "Allow client devices to publish on test/topic.",
          "operations": [
            "mqtt:publish"
          ],
          "resources": [
            "mqtt:topic:test/topic"
          ]
        },
        "AllowSubscribe": {
          "statementDescription": "Allow client devices to subscribe to test/topic/response.",
          "operations": [
            "mqtt:subscribe"
          ],
          "resources": [
            "mqtt:topicfilter:test/topic/response"
          ]
        }
      }
    }
  }
}
```

**Example 範例：組態合併更新 （使用寬鬆政策）**  <a name="client-device-auth-component-configuration-example-permissive"></a>
下列範例組態指定 ，以允許所有用戶端裝置在所有主題上連線和發佈/訂閱。  

```
{
  "deviceGroups": {
    "formatVersion": "2021-03-05",
    "definitions": {
      "MyPermissiveDeviceGroup": {
        "selectionRule": "thingName: *",
        "policyName": "MyPermissivePolicy"
      }
    },
    "policies": {
      "MyPermissivePolicy": {
        "AllowAll": {
          "statementDescription": "Allow client devices to perform all actions.",
          "operations": [
            "*"
          ],
          "resources": [
            "*"
          ]
        }
      }
    }
  }
}
```

------
#### [ v2.2.x ]

`deviceGroups`  <a name="client-device-auth-component-configuration-devicegroups"></a>
裝置群組是具有與核心裝置連線和通訊許可的用戶端裝置群組。使用選取規則來識別用戶端裝置的群組，並定義指定每個裝置群組許可的*用戶端裝置授權政策*。  
此物件包含下列資訊：    
`formatVersion`  
此組態物件的格式版本。  
您可以從以下選項中選擇：  
+ `2021-03-05`  
`definitions`  
此核心裝置的裝置群組。每個定義都會指定*選擇規則*，以評估用戶端裝置是否為 群組的成員。每個定義也會指定要套用至符合選取規則之用戶端裝置的許可政策。如果用戶端裝置是多個裝置群組的成員，則裝置的許可會包含每個群組的許可政策。  
此物件包含下列資訊：    
`groupNameKey`  
此裝置群組的名稱。將 *groupNameKey* 取代為可協助您識別此裝置群組的名稱。  
此物件包含下列資訊：    
`selectionRule`  
指定哪些用戶端裝置是此裝置群組成員的查詢。當用戶端裝置連線時，核心裝置會評估此選擇規則，以判斷用戶端裝置是否為此裝置群組的成員。如果用戶端裝置是成員，核心裝置會使用此裝置群組的政策來授權用戶端裝置的動作。  
每個選擇規則至少包含一個*選擇規則子句*，這是單一表達式查詢，可以比對用戶端裝置。選擇規則使用與 AWS IoT 機群索引相同的查詢語法。如需選取規則語法的詳細資訊，請參閱《 *AWS IoT Core 開發人員指南*》中的[AWS IoT 機群索引查詢語法](https://docs.aws.amazon.com/iot/latest/developerguide/query-syntax.html)。  
使用`*`萬用字元來比對具有一個選取規則子句的多個用戶端裝置。您可以在物件名稱結尾使用此萬用字元來比對名稱開頭為您所指定字串的用戶端裝置。您也可以使用此萬用字元來比對所有用戶端裝置。  
若要選取包含冒號字元 (`:`) 的值，請使用反斜線字元 () 逸出冒號`\\`。在 JSON 等格式中，您必須逸出反斜線字元，以便在冒號字元之前輸入兩個反斜線字元。例如，指定 `thingName: MyTeam\\\\:ClientDevice1` 選取名稱為 的物件`MyTeam:ClientDevice1`。
您可以指定下列選擇器：  
+ `thingName` – 用戶端裝置 AWS IoT 物件的名稱。

**Example 範例選取規則**  
下列選擇規則符合名稱為 `MyClientDevice1`或 的用戶端裝置`MyClientDevice2`。  

```
thingName: MyClientDevice1 OR thingName: MyClientDevice2
```

**Example 範例選取規則 （使用萬用字元）**  
下列選擇規則符合名稱開頭為 的用戶端裝置`MyClientDevice`。  

```
thingName: MyClientDevice*
```

**Example 範例選取規則 （符合所有裝置）**  
下列選擇規則符合所有用戶端裝置。  

```
thingName: *
```  
`policyName`  
套用至此裝置群組中用戶端裝置的許可政策。指定您在 `policies` 物件中定義的政策名稱。  
`policies`  
連接到核心裝置的用戶端裝置的用戶端裝置授權政策。每個授權政策都會指定一組動作，以及用戶端裝置可以執行這些動作的資源。  
此物件包含下列資訊：    
`policyNameKey`  
此授權政策的名稱。將 *policyNameKey* 取代為可協助您識別此授權政策的名稱。您可以使用此政策名稱來定義適用於裝置群組的政策。  
此物件包含下列資訊：    
`statementNameKey`  
此政策陳述式的名稱。將 *statementNameKey* 取代為可協助您識別此政策陳述式的名稱。  
此物件包含下列資訊：    
`operations`  
允許此政策中資源的操作清單。  
您可以包含下列任何操作：  
+ `mqtt:connect` – 准許連線至核心裝置。用戶端裝置必須具有此許可才能連線至核心裝置。

  此操作支援下列資源：
  + `mqtt:clientId:deviceClientId` – 根據用戶端裝置用來連線至核心裝置的 MQTT 代理程式的用戶端 ID 限制存取。將 *deviceClientId* 取代為要使用的用戶端 ID。
+ `mqtt:publish` – 准許將 MQTT 訊息發佈至主題。

  此操作支援下列資源：
  + <a name="client-device-authorization-policy-resource-mqtt-topic"></a>`mqtt:topic:mqttTopic` – 根據用戶端裝置發佈訊息的 MQTT 主題來限制存取。將 *mqttTopic* 取代為要使用的主題。

    此資源不支援 MQTT 主題萬用字元。
+ `mqtt:subscribe` – 准許訂閱 MQTT 主題篩選條件以接收訊息。

  此操作支援下列資源：
  + <a name="client-device-authorization-policy-resource-mqtt-topicfilter"></a>`mqtt:topicfilter:mqttTopicFilter` – 根據用戶端裝置可以訂閱訊息的 MQTT 主題來限制存取。將 *mqttTopicFilter* 取代為要使用的主題篩選條件。

    此資源支援 `+`和 `#` MQTT 主題萬用字元。如需詳細資訊，請參閱《 *AWS IoT Core 開發人員指南*》中的 [MQTT 主題](https://docs.aws.amazon.com/iot/latest/developerguide/topics.html)。

    用戶端裝置可以訂閱您允許的確切主題篩選條件。例如，如果您允許用戶端裝置訂閱 `mqtt:topicfilter:client/+/status` 資源，用戶端裝置可以訂閱 `client/+/status`，但不能訂閱 `client/client1/status`。
您可以指定`*`萬用字元，以允許存取所有動作。  
`resources`  
允許此政策中操作的資源清單。指定與此政策中 操作對應的資源。例如，您可以在指定 `mqtt:publish`操作的政策中指定 MQTT 主題資源 (`mqtt:topic:mqttTopic`) 的清單。  
您可以指定`*`萬用字元，以允許存取所有資源。您無法使用`*`萬用字元來比對部分資源識別符。例如，您可以指定 **"resources": "\$1"**，但無法指定 **"resources": "mqtt:clientId:\$1"**。  
`statementDescription`  
（選用） 此政策陳述式的描述。

`certificates`  <a name="client-device-auth-component-configuration-certificates"></a>
（選用） 此核心裝置的憑證組態選項。此物件包含下列資訊：    
`serverCertificateValiditySeconds`  
（選用） 本機 MQTT 伺服器憑證過期的時間量 （以秒為單位）。您可以設定此選項來自訂用戶端裝置中斷連線並重新連線至核心裝置的頻率。  
此元件會在本機 MQTT 伺服器憑證過期前 24 小時輪換本機 MQTT 伺服器憑證。MQTT 代理程式，例如 [Moquette MQTT 代理程式元件](mqtt-broker-moquette-component.md)，會產生新的憑證並重新啟動。發生這種情況時，所有連接到此核心裝置的用戶端裝置都會中斷連線。用戶端裝置可以在短時間內重新連線至核心裝置。  
預設：`604800`(7 天）  
最小值：`172800`(2 天）  
最大值： `864000` (10 天）

`performance`  
（選用） 此核心裝置的效能組態選項。此物件包含下列資訊：    
`maxActiveAuthTokens`  
（選用） 作用中用戶端裝置授權字符的數量上限。您可以增加此數量，讓更多用戶端裝置連接到單一核心裝置，而無需重新驗證它們。  
預設：`2500`  
`cloudRequestQueueSize`  
（選用） 此元件拒絕 AWS 雲端 請求之前佇列的請求數目上限。  
預設：`100`  
`maxConcurrentCloudRequests`  
（選用） 要傳送至 的並行請求數目上限 AWS 雲端。您可以增加此數字，改善連接大量用戶端裝置的核心裝置上的身分驗證效能。  
預設：`1`

**Example 範例：組態合併更新 （使用限制性政策）**  <a name="client-device-auth-component-configuration-example-restrictive"></a>
下列範例組態指定 ，允許名稱開頭為 的用戶端裝置`MyClientDevice`在所有主題上連線和發佈/訂閱。  

```
{
  "deviceGroups": {
    "formatVersion": "2021-03-05",
    "definitions": {
      "MyDeviceGroup": {
        "selectionRule": "thingName: MyClientDevice*",
        "policyName": "MyRestrictivePolicy"
      }
    },
    "policies": {
      "MyRestrictivePolicy": {
        "AllowConnect": {
          "statementDescription": "Allow client devices to connect.",
          "operations": [
            "mqtt:connect"
          ],
          "resources": [
            "*"
          ]
        },
        "AllowPublish": {
          "statementDescription": "Allow client devices to publish on test/topic.",
          "operations": [
            "mqtt:publish"
          ],
          "resources": [
            "mqtt:topic:test/topic"
          ]
        },
        "AllowSubscribe": {
          "statementDescription": "Allow client devices to subscribe to test/topic/response.",
          "operations": [
            "mqtt:subscribe"
          ],
          "resources": [
            "mqtt:topicfilter:test/topic/response"
          ]
        }
      }
    }
  }
}
```

**Example 範例：組態合併更新 （使用寬鬆政策）**  <a name="client-device-auth-component-configuration-example-permissive"></a>
下列範例組態指定 ，以允許所有用戶端裝置在所有主題上連線和發佈/訂閱。  

```
{
  "deviceGroups": {
    "formatVersion": "2021-03-05",
    "definitions": {
      "MyPermissiveDeviceGroup": {
        "selectionRule": "thingName: *",
        "policyName": "MyPermissivePolicy"
      }
    },
    "policies": {
      "MyPermissivePolicy": {
        "AllowAll": {
          "statementDescription": "Allow client devices to perform all actions.",
          "operations": [
            "*"
          ],
          "resources": [
            "*"
          ]
        }
      }
    }
  }
}
```

------
#### [ v2.1.x ]

`deviceGroups`  <a name="client-device-auth-component-configuration-devicegroups"></a>
裝置群組是具有與核心裝置連線和通訊許可的用戶端裝置群組。使用選取規則來識別用戶端裝置的群組，並定義*用戶端裝置授權政策*，以指定每個裝置群組的許可。  
此物件包含下列資訊：    
`formatVersion`  
此組態物件的格式版本。  
您可以從以下選項中選擇：  
+ `2021-03-05`  
`definitions`  
此核心裝置的裝置群組。每個定義都會指定*選擇規則*，以評估用戶端裝置是否為 群組的成員。每個定義也會指定要套用至符合選取規則之用戶端裝置的許可政策。如果用戶端裝置是多個裝置群組的成員，則裝置的許可會包含每個群組的許可政策。  
此物件包含下列資訊：    
`groupNameKey`  
此裝置群組的名稱。將 *groupNameKey* 取代為可協助您識別此裝置群組的名稱。  
此物件包含下列資訊：    
`selectionRule`  
指定哪些用戶端裝置是此裝置群組成員的查詢。當用戶端裝置連線時，核心裝置會評估此選擇規則，以判斷用戶端裝置是否為此裝置群組的成員。如果用戶端裝置是成員，核心裝置會使用此裝置群組的政策來授權用戶端裝置的動作。  
每個選擇規則至少包含一個*選擇規則子句*，這是單一表達式查詢，可以符合用戶端裝置。選擇規則使用與 AWS IoT 機群索引相同的查詢語法。如需選取規則語法的詳細資訊，請參閱《 *AWS IoT Core 開發人員指南*》中的[AWS IoT 機群索引查詢語法](https://docs.aws.amazon.com/iot/latest/developerguide/query-syntax.html)。  
使用`*`萬用字元來比對具有一個選取規則子句的多個用戶端裝置。您可以在物件名稱結尾使用此萬用字元來比對名稱開頭為您所指定字串的用戶端裝置。您也可以使用此萬用字元來比對所有用戶端裝置。  
若要選取包含冒號字元 (`:`) 的值，請使用反斜線字元 () 逸出冒號`\\`。在 JSON 等格式中，您必須逸出反斜線字元，以便在冒號字元之前輸入兩個反斜線字元。例如，指定 `thingName: MyTeam\\\\:ClientDevice1` 選取名稱為 的物件`MyTeam:ClientDevice1`。
您可以指定下列選擇器：  
+ `thingName` – 用戶端裝置 AWS IoT 物件的名稱。

**Example 範例選取規則**  
下列選擇規則符合名稱為 `MyClientDevice1`或 的用戶端裝置`MyClientDevice2`。  

```
thingName: MyClientDevice1 OR thingName: MyClientDevice2
```

**Example 範例選取規則 （使用萬用字元）**  
下列選擇規則符合名稱開頭為 的用戶端裝置`MyClientDevice`。  

```
thingName: MyClientDevice*
```

**Example 範例選取規則 （符合所有裝置）**  
下列選擇規則符合所有用戶端裝置。  

```
thingName: *
```  
`policyName`  
套用至此裝置群組中用戶端裝置的許可政策。指定您在 `policies` 物件中定義的政策名稱。  
`policies`  
連接到核心裝置的用戶端裝置的用戶端裝置授權政策。每個授權政策都會指定一組動作，以及用戶端裝置可以執行這些動作的資源。  
此物件包含下列資訊：    
`policyNameKey`  
此授權政策的名稱。將 *policyNameKey* 取代為可協助您識別此授權政策的名稱。您可以使用此政策名稱來定義適用於裝置群組的政策。  
此物件包含下列資訊：    
`statementNameKey`  
此政策陳述式的名稱。將 *statementNameKey* 取代為可協助您識別此政策陳述式的名稱。  
此物件包含下列資訊：    
`operations`  
允許此政策中資源的操作清單。  
您可以包含下列任何操作：  
+ `mqtt:connect` – 准許連線至核心裝置。用戶端裝置必須具有此許可才能連線至核心裝置。

  此操作支援下列資源：
  + `mqtt:clientId:deviceClientId` – 根據用戶端裝置用來連線至核心裝置的 MQTT 代理程式的用戶端 ID 限制存取。將 *deviceClientId* 取代為要使用的用戶端 ID。
+ `mqtt:publish` – 准許將 MQTT 訊息發佈至主題。

  此操作支援下列資源：
  + <a name="client-device-authorization-policy-resource-mqtt-topic"></a>`mqtt:topic:mqttTopic` – 根據用戶端裝置發佈訊息的 MQTT 主題來限制存取。將 *mqttTopic* 取代為要使用的主題。

    此資源不支援 MQTT 主題萬用字元。
+ `mqtt:subscribe` – 准許訂閱 MQTT 主題篩選條件以接收訊息。

  此操作支援下列資源：
  + <a name="client-device-authorization-policy-resource-mqtt-topicfilter"></a>`mqtt:topicfilter:mqttTopicFilter` – 根據用戶端裝置可以訂閱訊息的 MQTT 主題來限制存取。將 *mqttTopicFilter* 取代為要使用的主題篩選條件。

    此資源支援 `+`和 `#` MQTT 主題萬用字元。如需詳細資訊，請參閱《 *AWS IoT Core 開發人員指南*》中的 [MQTT 主題](https://docs.aws.amazon.com/iot/latest/developerguide/topics.html)。

    用戶端裝置可以訂閱您允許的確切主題篩選條件。例如，如果您允許用戶端裝置訂閱 `mqtt:topicfilter:client/+/status` 資源，用戶端裝置可以訂閱 `client/+/status`，但不能訂閱 `client/client1/status`。
您可以指定`*`萬用字元，以允許存取所有動作。  
`resources`  
允許此政策中操作的資源清單。指定與此政策中 操作對應的資源。例如，您可以在指定 `mqtt:publish`操作的政策中指定 MQTT 主題資源 (`mqtt:topic:mqttTopic`) 的清單。  
您可以指定`*`萬用字元，以允許存取所有資源。您無法使用`*`萬用字元來比對部分資源識別符。例如，您可以指定 **"resources": "\$1"**，但無法指定 **"resources": "mqtt:clientId:\$1"**。  
`statementDescription`  
（選用） 此政策陳述式的描述。

`certificates`  <a name="client-device-auth-component-configuration-certificates"></a>
（選用） 此核心裝置的憑證組態選項。此物件包含下列資訊：    
`serverCertificateValiditySeconds`  
（選用） 本機 MQTT 伺服器憑證過期的時間量 （以秒為單位）。您可以設定此選項來自訂用戶端裝置中斷連線和重新連線至核心裝置的頻率。  
此元件會在本機 MQTT 伺服器憑證過期前 24 小時輪換本機 MQTT 伺服器憑證。MQTT 代理程式，例如 [Moquette MQTT 代理程式元件](mqtt-broker-moquette-component.md)，會產生新的憑證並重新啟動。發生這種情況時，所有連接到此核心裝置的用戶端裝置都會中斷連線。用戶端裝置可以在短時間內重新連線至核心裝置。  
預設：`604800`(7 天）  
最小值：`172800`(2 天）  
最大值： `864000` (10 天）

**Example 範例：組態合併更新 （使用限制性政策）**  <a name="client-device-auth-component-configuration-example-restrictive"></a>
下列範例組態指定 ，允許名稱開頭為 `MyClientDevice`的用戶端裝置在所有主題上連線和發佈/訂閱。  

```
{
  "deviceGroups": {
    "formatVersion": "2021-03-05",
    "definitions": {
      "MyDeviceGroup": {
        "selectionRule": "thingName: MyClientDevice*",
        "policyName": "MyRestrictivePolicy"
      }
    },
    "policies": {
      "MyRestrictivePolicy": {
        "AllowConnect": {
          "statementDescription": "Allow client devices to connect.",
          "operations": [
            "mqtt:connect"
          ],
          "resources": [
            "*"
          ]
        },
        "AllowPublish": {
          "statementDescription": "Allow client devices to publish on test/topic.",
          "operations": [
            "mqtt:publish"
          ],
          "resources": [
            "mqtt:topic:test/topic"
          ]
        },
        "AllowSubscribe": {
          "statementDescription": "Allow client devices to subscribe to test/topic/response.",
          "operations": [
            "mqtt:subscribe"
          ],
          "resources": [
            "mqtt:topicfilter:test/topic/response"
          ]
        }
      }
    }
  }
}
```

**Example 範例：組態合併更新 （使用寬鬆政策）**  <a name="client-device-auth-component-configuration-example-permissive"></a>
下列範例組態指定 ，以允許所有用戶端裝置在所有主題上連線和發佈/訂閱。  

```
{
  "deviceGroups": {
    "formatVersion": "2021-03-05",
    "definitions": {
      "MyPermissiveDeviceGroup": {
        "selectionRule": "thingName: *",
        "policyName": "MyPermissivePolicy"
      }
    },
    "policies": {
      "MyPermissivePolicy": {
        "AllowAll": {
          "statementDescription": "Allow client devices to perform all actions.",
          "operations": [
            "*"
          ],
          "resources": [
            "*"
          ]
        }
      }
    }
  }
}
```

------
#### [ v2.0.x ]

`deviceGroups`  <a name="client-device-auth-component-configuration-devicegroups"></a>
裝置群組是具有與核心裝置連線和通訊許可的用戶端裝置群組。使用選取規則來識別用戶端裝置的群組，並定義指定每個裝置群組許可的*用戶端裝置授權政策*。  
此物件包含下列資訊：    
`formatVersion`  
此組態物件的格式版本。  
您可以從以下選項中選擇：  
+ `2021-03-05`  
`definitions`  
此核心裝置的裝置群組。每個定義都會指定*選擇規則*，以評估用戶端裝置是否為 群組的成員。每個定義也會指定要套用至符合選取規則之用戶端裝置的許可政策。如果用戶端裝置是多個裝置群組的成員，則裝置的許可會包含每個群組的許可政策。  
此物件包含下列資訊：    
`groupNameKey`  
此裝置群組的名稱。將 *groupNameKey* 取代為可協助您識別此裝置群組的名稱。  
此物件包含下列資訊：    
`selectionRule`  
指定哪些用戶端裝置是此裝置群組成員的查詢。當用戶端裝置連線時，核心裝置會評估此選擇規則，以判斷用戶端裝置是否為此裝置群組的成員。如果用戶端裝置是成員，核心裝置會使用此裝置群組的政策來授權用戶端裝置的動作。  
每個選擇規則都包含至少一個*選擇規則子句*，這是單一表達式查詢，可以比對用戶端裝置。選擇規則使用與 AWS IoT 機群索引相同的查詢語法。如需選取規則語法的詳細資訊，請參閱《 *AWS IoT Core 開發人員指南*》中的[AWS IoT 機群索引查詢語法](https://docs.aws.amazon.com/iot/latest/developerguide/query-syntax.html)。  
使用`*`萬用字元來比對具有一個選取規則子句的多個用戶端裝置。您可以在物件名稱結尾使用此萬用字元，來比對名稱開頭為您所指定字串的用戶端裝置。您也可以使用此萬用字元來比對所有用戶端裝置。  
若要選取包含冒號字元 (`:`) 的值，請使用反斜線字元 () 逸出冒號`\\`。在 JSON 等格式中，您必須逸出反斜線字元，以便在冒號字元之前輸入兩個反斜線字元。例如，指定 `thingName: MyTeam\\\\:ClientDevice1` 選取名稱為 的物件`MyTeam:ClientDevice1`。
您可以指定下列選擇器：  
+ `thingName` – 用戶端裝置 AWS IoT 物件的名稱。

**Example 範例選取規則**  
下列選擇規則符合名稱為 `MyClientDevice1`或 的用戶端裝置`MyClientDevice2`。  

```
thingName: MyClientDevice1 OR thingName: MyClientDevice2
```

**Example 範例選取規則 （使用萬用字元）**  
下列選擇規則符合名稱開頭為 的用戶端裝置`MyClientDevice`。  

```
thingName: MyClientDevice*
```

**Example 範例選取規則 （符合所有裝置）**  
下列選擇規則符合所有用戶端裝置。  

```
thingName: *
```  
`policyName`  
套用至此裝置群組中用戶端裝置的許可政策。指定您在 `policies` 物件中定義的政策名稱。  
`policies`  
連接到核心裝置的用戶端裝置的用戶端裝置授權政策。每個授權政策都會指定一組動作，以及用戶端裝置可以執行這些動作的資源。  
此物件包含下列資訊：    
`policyNameKey`  
此授權政策的名稱。將 *policyNameKey* 取代為可協助您識別此授權政策的名稱。您可以使用此政策名稱來定義適用於裝置群組的政策。  
此物件包含下列資訊：    
`statementNameKey`  
此政策陳述式的名稱。將 *statementNameKey* 取代為可協助您識別此政策陳述式的名稱。  
此物件包含下列資訊：    
`operations`  
允許此政策中資源的操作清單。  
您可以包含下列任何操作：  
+ `mqtt:connect` – 准許連線至核心裝置。用戶端裝置必須具有此許可才能連線至核心裝置。

  此操作支援下列資源：
  + `mqtt:clientId:deviceClientId` – 根據用戶端裝置用來連線至核心裝置的 MQTT 代理程式的用戶端 ID 限制存取。將 *deviceClientId* 取代為要使用的用戶端 ID。
+ `mqtt:publish` – 准許將 MQTT 訊息發佈至主題。

  此操作支援下列資源：
  + <a name="client-device-authorization-policy-resource-mqtt-topic"></a>`mqtt:topic:mqttTopic` – 根據用戶端裝置發佈訊息的 MQTT 主題來限制存取。將 *mqttTopic* 取代為要使用的主題。

    此資源不支援 MQTT 主題萬用字元。
+ `mqtt:subscribe` – 准許訂閱 MQTT 主題篩選條件以接收訊息。

  此操作支援下列資源：
  + <a name="client-device-authorization-policy-resource-mqtt-topicfilter"></a>`mqtt:topicfilter:mqttTopicFilter` – 根據用戶端裝置可以訂閱訊息的 MQTT 主題來限制存取。將 *mqttTopicFilter* 取代為要使用的主題篩選條件。

    此資源支援 `+`和 `#` MQTT 主題萬用字元。如需詳細資訊，請參閱《 *AWS IoT Core 開發人員指南*》中的 [MQTT 主題](https://docs.aws.amazon.com/iot/latest/developerguide/topics.html)。

    用戶端裝置可以訂閱您允許的確切主題篩選條件。例如，如果您允許用戶端裝置訂閱 `mqtt:topicfilter:client/+/status` 資源，用戶端裝置可以訂閱 `client/+/status`，但不能訂閱 `client/client1/status`。
您可以指定`*`萬用字元，以允許存取所有動作。  
`resources`  
此政策中允許 操作的資源清單。指定與此政策中 操作對應的資源。例如，您可以在指定 `mqtt:publish`操作的政策中指定 MQTT 主題資源 (`mqtt:topic:mqttTopic`) 的清單。  
您可以指定`*`萬用字元，以允許存取所有資源。您無法使用`*`萬用字元來比對部分資源識別符。例如，您可以指定 **"resources": "\$1"**，但無法指定 **"resources": "mqtt:clientId:\$1"**。  
`statementDescription`  
（選用） 此政策陳述式的描述。

**Example 範例：組態合併更新 （使用限制性政策）**  <a name="client-device-auth-component-configuration-example-restrictive"></a>
下列範例組態指定 ，允許名稱開頭為 `MyClientDevice`的用戶端裝置在所有主題上連線和發佈/訂閱。  

```
{
  "deviceGroups": {
    "formatVersion": "2021-03-05",
    "definitions": {
      "MyDeviceGroup": {
        "selectionRule": "thingName: MyClientDevice*",
        "policyName": "MyRestrictivePolicy"
      }
    },
    "policies": {
      "MyRestrictivePolicy": {
        "AllowConnect": {
          "statementDescription": "Allow client devices to connect.",
          "operations": [
            "mqtt:connect"
          ],
          "resources": [
            "*"
          ]
        },
        "AllowPublish": {
          "statementDescription": "Allow client devices to publish on test/topic.",
          "operations": [
            "mqtt:publish"
          ],
          "resources": [
            "mqtt:topic:test/topic"
          ]
        },
        "AllowSubscribe": {
          "statementDescription": "Allow client devices to subscribe to test/topic/response.",
          "operations": [
            "mqtt:subscribe"
          ],
          "resources": [
            "mqtt:topicfilter:test/topic/response"
          ]
        }
      }
    }
  }
}
```

**Example 範例：組態合併更新 （使用寬鬆政策）**  <a name="client-device-auth-component-configuration-example-permissive"></a>
下列範例組態指定 ，以允許所有用戶端裝置在所有主題上連線和發佈/訂閱。  

```
{
  "deviceGroups": {
    "formatVersion": "2021-03-05",
    "definitions": {
      "MyPermissiveDeviceGroup": {
        "selectionRule": "thingName: *",
        "policyName": "MyPermissivePolicy"
      }
    },
    "policies": {
      "MyPermissivePolicy": {
        "AllowAll": {
          "statementDescription": "Allow client devices to perform all actions.",
          "operations": [
            "*"
          ],
          "resources": [
            "*"
          ]
        }
      }
    }
  }
}
```

------

## 本機日誌檔案
<a name="client-device-auth-component-log-file"></a>

此元件使用與 [Greengrass 核](greengrass-nucleus-component.md)元件相同的日誌檔案。

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

```
/greengrass/v2/logs/greengrass.log
```

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

```
C:\greengrass\v2\logs\greengrass.log
```

------

**檢視此元件的日誌**
+ 在核心裝置上執行下列命令，以即時檢視此元件的日誌檔案。將 `/greengrass/v2`或 *C：\$1greengrass\$1v2* 取代為 AWS IoT Greengrass 根資料夾的路徑。

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

  ```
  sudo tail -f /greengrass/v2/logs/greengrass.log
  ```

------
#### [ Windows (PowerShell) ]

  ```
  Get-Content C:\greengrass\v2\logs\greengrass.log -Tail 10 -Wait
  ```

------

## 變更記錄
<a name="client-device-auth-component-changelog"></a>

下表說明每個版本元件的變更。


|  **版本**  |  **變更**  | 
| --- | --- | 
|  2.5.5  |  針對 Greengrass nucleus 2.16.0 版更新版本。  | 
|  2.5.4  | 針對 Greengrass nucleus 2.15.0 版更新版本。 | 
|  2.5.3  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/client-device-auth-component.html)  | 
|  2.5.2  |  針對 Greengrass nucleus 2.14.0 版更新版本。  | 
|  2.5.1  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/client-device-auth-component.html)  | 
|  2.5.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/client-device-auth-component.html)  | 
|  2.4.5  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/client-device-auth-component.html) | 
|  2.4.4  | 針對 Greengrass nucleus 2.12.0 版更新版本。 | 
|  2.4.3  | 針對 Greengrass nucleus 2.11.0 版更新版本。 | 
|  2.4.2  |  <a name="changelog-client-device-auth-2.4.2"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/client-device-auth-component.html)  | 
|  2.4.1  | 針對 Greengrass nucleus 2.10.0 版更新版本。 | 
|  2.4.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/client-device-auth-component.html)  | 
|  2.3.2  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/client-device-auth-component.html)  | 
|  2.3.1  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/client-device-auth-component.html)  | 
|  2.3.0  |   此版本不再可用。此版本的改善功能可在此元件的較新版本中使用。  新功能 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/client-device-auth-component.html)  | 
|  2.2.3  | 針對 Greengrass nucleus 2.8.0 版更新版本。 | 
|  2.2.2  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/client-device-auth-component.html)  | 
|  2.2.1  |  針對 Greengrass nucleus 2.7.0 版更新版本。 | 
|  2.2.0  |  <a name="changelog-client-device-auth-2.2.0"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/client-device-auth-component.html)  | 
|  2.1.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/client-device-auth-component.html)  | 
|  2.0.4  |  針對 Greengrass nucleus 2.5.0 版更新版本。  | 
|  2.0.3  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/client-device-auth-component.html)  | 
|  2.0.2  |  針對 Greengrass nucleus 2.4.0 版更新版本。  | 
|  2.0.1  |  針對 Greengrass nucleus 2.3.0 版更新版本。  | 
|  2.0.0  |  初始版本。  | 

# CloudWatch 指標
<a name="cloudwatch-metrics-component"></a>

Amazon CloudWatch 指標元件 (`aws.greengrass.Cloudwatch`) 會將自訂指標從 Greengrass 核心裝置發佈至 Amazon CloudWatch。元件可讓元件發佈 CloudWatch 指標，您可以用來監控和分析 Greengrass 核心裝置的環境。如需詳細資訊，請參閱《[Amazon CloudWatch 使用者指南》中的使用 Amazon CloudWatch 指標](https://docs.aws.amazon.com//AmazonCloudWatch/latest/monitoring/working_with_metrics.html)。 *Amazon CloudWatch *

若要使用此元件發佈 CloudWatch 指標，請將訊息發佈至此元件訂閱的主題。根據預設，此元件會訂閱`cloudwatch/metric/put`[本機發佈/訂閱](ipc-publish-subscribe.md)主題。您可以在部署此元件時指定其他主題，包括 AWS IoT Core MQTT 主題。

此元件會批次處理位於相同命名空間中的指標，並定期將其發佈至 CloudWatch。

**注意**  
此元件提供與 AWS IoT Greengrass V1 中的 CloudWatch 指標連接器類似的功能。如需詳細資訊，請參閱《*AWS IoT Greengrass V1 開發人員指南*》中的 [CloudWatch 指標連接器](https://docs.aws.amazon.com/greengrass/latest/developerguide/cloudwatch-metrics-connector.html)。

**Topics**
+ [版本](#cloudwatch-metrics-component-versions)
+ [Type](#cloudwatch-metrics-component-type)
+ [作業系統](#cloudwatch-metrics-component-os-support)
+ [要求](#cloudwatch-metrics-component-requirements)
+ [相依性](#cloudwatch-metrics-component-dependencies)
+ [Configuration](#cloudwatch-metrics-component-configuration)
+ [輸入資料](#cloudwatch-metrics-component-input-data)
+ [輸出資料](#cloudwatch-metrics-component-output-data)
+ [授權](#cloudwatch-metrics-component-licenses)
+ [本機日誌檔案](#cloudwatch-metrics-component-log-file)
+ [變更記錄](#cloudwatch-metrics-component-changelog)
+ [另請參閱](#cloudwatch-metrics-component-see-also)

## 版本
<a name="cloudwatch-metrics-component-versions"></a>

此元件具有下列版本：
+ 3.2.x
+ 3.1.x 版本
+ 3.0.x
+ 2.1.x
+ 2.0.x

如需有關每個元件版本變更的資訊，請參閱[變更日誌](#cloudwatch-metrics-component-changelog)。

## Type
<a name="cloudwatch-metrics-component-type"></a>

------
#### [ v3.x ]

<a name="public-component-type-generic"></a>此<a name="public-component-type-generic-phrase"></a>元件是一般元件 (`aws.greengrass.generic`)。[Greengrass 核](greengrass-nucleus-component.md)會執行元件的生命週期指令碼。

------
#### [ v2.x ]

<a name="public-component-type-lambda"></a>此<a name="public-component-type-lambda-phrase"></a>元件是 Lambda 元件 (`aws.greengrass.lambda`)。[Greengrass 核](greengrass-nucleus-component.md)會使用 Lambda [啟動器元件執行此元件的 Lambda](lambda-launcher-component.md) 函數。

------

<a name="public-component-type-more-information"></a>如需詳細資訊，請參閱[元件類型](develop-greengrass-components.md#component-types)。

## 作業系統
<a name="cloudwatch-metrics-component-os-support"></a>

------
#### [ v3.x ]

此元件可以安裝在執行下列作業系統的核心裝置上：
+ Linux
+ Windows

------
#### [ v2.x ]

此元件只能在 Linux 核心裝置上安裝。

------

## 要求
<a name="cloudwatch-metrics-component-requirements"></a>

此元件有下列需求：

------
#### [ 3.x ]
+ <a name="public-component-python3-requirement"></a>安裝在核心裝置上並新增至 PATH 環境變數的 [Python](https://www.python.org/) 3.7 版。
+ [Greengrass 裝置角色](device-service-role.md)必須允許 `cloudwatch:PutMetricData`動作，如下列範例 IAM 政策所示。

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

****  

  ```
  {
    "Version":"2012-10-17",		 	 	 
    "Statement": [
      {
        "Action": [
          "cloudwatch:PutMetricData"
        ],
        "Effect": "Allow",
        "Resource": "*"
      }
    ]
  }
  ```

------

  如需詳細資訊，請參閱《[Amazon CloudWatch 使用者指南》中的 Amazon CloudWatch 許可參考](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/permissions-reference-cw.html)。 *Amazon CloudWatch *

------
#### [ 2.x ]
+ <a name="core-device-lambda-function-requirements"></a>您的核心裝置必須符合執行 Lambda 函數的要求。如果您希望核心裝置執行容器化 Lambda 函數，則裝置必須符合執行此作業的要求。如需詳細資訊，請參閱[Lambda 函數需求](setting-up.md#greengrass-v2-lambda-requirements)。
+ <a name="public-component-python3-requirement"></a>安裝在核心裝置上並新增至 PATH 環境變數的 [Python](https://www.python.org/) 3.7 版。
+ [Greengrass 裝置角色](device-service-role.md)必須允許 `cloudwatch:PutMetricData`動作，如下列範例 IAM 政策所示。

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

****  

  ```
  {
    "Version":"2012-10-17",		 	 	 
    "Statement": [
      {
        "Action": [
          "cloudwatch:PutMetricData"
        ],
        "Effect": "Allow",
        "Resource": "*"
      }
    ]
  }
  ```

------

  如需詳細資訊，請參閱《[Amazon CloudWatch 使用者指南》中的 Amazon CloudWatch 許可參考](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/permissions-reference-cw.html)。 *Amazon CloudWatch *
+ <a name="connector-component-legacy-subscription-router-dependency"></a>若要從此元件接收輸出資料，您必須在部署此元件時合併[舊版訂閱路由器元件](legacy-subscription-router-component.md) (`aws.greengrass.LegacySubscriptionRouter`) 的下列組態更新。此組態會指定此元件發佈回應的主題。

------
#### [ Legacy subscription router v2.1.x ]

  ```
  {
    "subscriptions": {
      "aws-greengrass-cloudwatch": {
        "id": "aws-greengrass-cloudwatch",
        "source": "component:aws.greengrass.Cloudwatch",
        "subject": "cloudwatch/metric/put/status",
        "target": "cloud"
      }
    }
  }
  ```

------
#### [ Legacy subscription router v2.0.x ]

  ```
  {
    "subscriptions": {
      "aws-greengrass-cloudwatch": {
        "id": "aws-greengrass-cloudwatch",
        "source": "arn:aws:lambda:region:aws:function:aws-greengrass-cloudwatch:version",
        "subject": "cloudwatch/metric/put/status",
        "target": "cloud"
      }
    }
  }
  ```<a name="connector-component-legacy-subscription-router-dependency-replace"></a>
  + 以您使用 AWS 區域 的 取代*區域*。
  + ** 以此元件執行的 Lambda 函數版本取代 版本。若要尋找 Lambda 函數版本，您必須檢視要部署之此元件版本的配方。在[AWS IoT Greengrass 主控台](https://console.aws.amazon.com//greengrass)中開啟此元件的詳細資訊頁面，並尋找 **Lambda 函數**鍵值對。此鍵/值對包含 Lambda 函數的名稱和版本。

**重要**  <a name="connector-component-legacy-subscription-router-dependency-note"></a>
每次部署此元件時，都必須更新舊版訂閱路由器上的 Lambda 函數版本。這可確保您為部署的元件版本使用正確的 Lambda 函數版本。

------

  <a name="connector-component-create-deployments"></a>如需詳細資訊，請參閱[建立部署](create-deployments.md)。

------

### 端點和連接埠
<a name="cloudwatch-metrics-component-endpoints"></a>

除了基本操作所需的端點和連接埠之外，此元件還必須能夠對下列端點和連接埠執行傳出請求。如需詳細資訊，請參閱[允許透過代理或防火牆的裝置流量](allow-device-traffic.md)。


| Endpoint | 站點 | 必要 | Description | 
| --- | --- | --- | --- | 
|  `monitoring.region.amazonaws.com`  | 443 | 是 |  上傳 CloudWatch 指標。  | 

## 相依性
<a name="cloudwatch-metrics-component-dependencies"></a>

當您部署元件時， AWS IoT Greengrass 也會部署其相依性的相容版本。這表示您必須符合元件及其所有相依性的要求，才能成功部署元件。本節列出此元件[發行版本的](#cloudwatch-metrics-component-changelog)相依性，以及為每個相依性定義元件版本的語意版本限制。您也可以在 [AWS IoT Greengrass 主控台](https://console.aws.amazon.com//greengrass)中檢視每個版本元件的相依性。在元件詳細資訊頁面上，尋找**相依性**清單。

------
#### [ 3.2.0 ]

下表列出此元件 3.2.0 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <3.0.0 | 軟式 | 
| [權杖交換服務](token-exchange-service-component.md) | >=0.0.0 | 硬式 | 

------
#### [ 3.0.0 - 3.1.0 ]

下表列出此元件 3.0.0 到 3.1.0 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <3.0.0 | 軟式 | 
| [字符交換服務](token-exchange-service-component.md) | >=0.0.0 | 硬式 | 

------
#### [ 2.1.4 - 2.1.9 ]

下表列出此元件 2.1.4 至 2.1.9 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <3.0.0  | 硬式 | 
| [Lambda 啟動器](lambda-launcher-component.md) | ^2.0.0  | 硬式 | 
| [Lambda 執行階段](lambda-runtimes-component.md) | ^2.0.0  | 軟式 | 
| [字符交換服務](token-exchange-service-component.md) | ^2.0.0  | 硬式 | 

------
#### [ 2.1.4 - 2.1.8 ]

下表列出此元件 2.1.4 和 2.1.8 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <3.0.0  | 硬式 | 
| [Lambda 啟動器](lambda-launcher-component.md) | ^2.0.0  | 硬式 | 
| [Lambda 執行階段](lambda-runtimes-component.md) | ^2.0.0  | 軟式 | 
| [字符交換服務](token-exchange-service-component.md) | ^2.0.0  | 硬式 | 

------
#### [ 2.1.2 - 2.1.3 ]

下表列出此元件 2.1.2 和 2.1.3 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.8.0  | 硬式 | 
| [Lambda 啟動器](lambda-launcher-component.md) | ^2.0.0  | 硬式 | 
| [Lambda 執行階段](lambda-runtimes-component.md) | ^2.0.0  | 軟式 | 
| [權杖交換服務](token-exchange-service-component.md) | ^2.0.0  | 硬式 | 

------
#### [ 2.1.1 ]

下表列出此元件 2.1.1 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.7.0  | 硬式 | 
| [Lambda 啟動器](lambda-launcher-component.md) | ^2.0.0  | 硬式 | 
| [Lambda 執行階段](lambda-runtimes-component.md) | ^2.0.0  | 軟式 | 
| [權杖交換服務](token-exchange-service-component.md) | ^2.0.0  | 硬式 | 

------
#### [ 2.0.8 - 2.1.0 ]

下表列出此元件 2.0.8 至 2.1.0 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.6.0  | 硬式 | 
| [Lambda 啟動器](lambda-launcher-component.md) | ^2.0.0  | 硬式 | 
| [Lambda 執行階段](lambda-runtimes-component.md) | ^2.0.0  | 軟式 | 
| [權杖交換服務](token-exchange-service-component.md) | ^2.0.0  | 硬式 | 

------
#### [ 2.0.7 ]

下表列出此元件 2.0.7 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.5.0  | 硬式 | 
| [Lambda 啟動器](lambda-launcher-component.md) | ^2.0.0  | 硬式 | 
| [Lambda 執行階段](lambda-runtimes-component.md) | ^2.0.0  | 軟式 | 
| [字符交換服務](token-exchange-service-component.md) | ^2.0.0  | 硬式 | 

------
#### [ 2.0.6 ]

下表列出此元件 2.0.6 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.4.0  | 硬式 | 
| [Lambda 啟動器](lambda-launcher-component.md) | ^2.0.0  | 硬式 | 
| [Lambda 執行階段](lambda-runtimes-component.md) | ^2.0.0  | 軟式 | 
| [字符交換服務](token-exchange-service-component.md) | ^2.0.0  | 硬式 | 

------
#### [ 2.0.5 ]

下表列出此元件 2.0.5 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.3.0  | 硬式 | 
| [Lambda 啟動器](lambda-launcher-component.md) | ^2.0.0  | 硬式 | 
| [Lambda 執行階段](lambda-runtimes-component.md) | ^2.0.0  | 軟式 | 
| [權杖交換服務](token-exchange-service-component.md) | ^2.0.0  | 硬式 | 

------
#### [ 2.0.4 ]

下表列出此元件 2.0.4 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.2.0  | 硬式 | 
| [Lambda 啟動器](lambda-launcher-component.md) | ^2.0.0  | 硬式 | 
| [Lambda 執行階段](lambda-runtimes-component.md) | ^2.0.0  | 軟式 | 
| [權杖交換服務](token-exchange-service-component.md) | ^2.0.0  | 硬式 | 

------
#### [ 2.0.3 ]

下表列出此元件 2.0.3 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.3 <2.1.0  | 硬式 | 
| [Lambda 啟動器](lambda-launcher-component.md) | >=1.0.0  | 硬式 | 
| [Lambda 執行階段](lambda-runtimes-component.md) | >=1.0.0  | 軟式 | 
| [權杖交換服務](token-exchange-service-component.md) | >=1.0.0  | 硬式 | 

------

如需元件相依性的詳細資訊，請參閱[元件配方參考](component-recipe-reference.md#recipe-reference-component-dependencies)。

## Configuration
<a name="cloudwatch-metrics-component-configuration"></a>

此元件提供下列組態參數，您可以在部署元件時自訂這些參數。

------
#### [ v3.x ]

 `PublishInterval`   
（選用） 在元件發佈指定命名空間的批次指標之前等待的秒數上限。若要設定元件在接收指標時發佈指標，這表示無需批次處理，請指定 `0`。  
在相同命名空間中收到 20 個指標或您指定的間隔之後，元件會發佈到 CloudWatch。  
元件不會指定事件發佈的順序。
此值最多可達 900 秒。  
預設：10 秒

 `MaxMetricsToRetain`   
（選用） 在元件將指標取代為較新的指標之前，所有命名空間中要儲存在記憶體中的指標數量上限。  
當核心裝置沒有網際網路連線時，就會套用此限制，因此元件會緩衝指標以供稍後發佈。當緩衝區已滿時，元件會將最舊的指標取代為較新的指標。指定命名空間中的指標只會取代相同命名空間中的指標。  
如果元件的主機程序中斷，則元件不會儲存指標。例如，這可能會在部署期間或核心裝置重新啟動時發生。
此值必須至少為 2，000 個指標。  
預設：5，000 個指標

`InputTopic`  
（選用） 元件訂閱接收訊息的主題。如果您`true`為 指定 `PubSubToIoTCore`，則可以在本主題中使用 MQTT 萬用字元 (\$1 和 \$1)。  
預設：`cloudwatch/metric/put`

`OutputTopic`  
（選用） 元件發佈狀態回應的主題。  
預設：`cloudwatch/metric/put/status`

`PubSubToIoTCore`  
（選用） 字串值，定義是否發佈和訂閱 AWS IoT Core MQTT 主題。支援的值為 `true` 和 `false`。  
預設：`false`

`LogLevel`  
（選用） 元件的記錄層級。從下列日誌層級中選擇，此處依層級順序列出：  
+ `DEBUG`
+ `INFO`
+ `WARNING`
+ `ERROR`
+ `CRITICAL`
預設：`INFO`

`UseInstaller`  
（選用） 布林值，定義是否使用此元件中的安裝程式指令碼來安裝此元件的 SDK 相依性。  
`false` 如果您想要使用自訂指令碼安裝相依性，或想要在預先建置的 Linux 映像中包含執行時間相依性，請將此值設定為 。若要使用此元件，您必須安裝下列程式庫，包括任何相依性，並將其提供給預設 Greengrass 系統使用者。  
+ [AWS IoT Device SDK 適用於 Python 的 v2](https://github.com/aws/aws-iot-device-sdk-python-v2)
+ [適用於 Python (Boto3) 的 AWS SDK](http://boto.readthedocs.org/en/latest/ref/)
預設：`true`

`PublishRegion`  
（選用） 要發佈 CloudWatch 指標 AWS 區域 的 。此值會覆寫核心裝置的預設區域。只有跨區域指標才需要此參數。

`accessControl`  
（選用） 包含[授權政策](interprocess-communication.md#ipc-authorization-policies)的物件，允許元件發佈和訂閱指定的主題。如果您為 `InputTopic`和 指定自訂值`OutputTopic`，則必須更新此物件中的資源值。  
預設：  

```
{
  "aws.greengrass.ipc.pubsub": {
    "aws.greengrass.Cloudwatch:pubsub:1": {
      "policyDescription": "Allows access to subscribe to input topics.",
      "operations": [
        "aws.greengrass#SubscribeToTopic"
      ],
      "resources": [
        "cloudwatch/metric/put"
      ]
    },
    "aws.greengrass.Cloudwatch:pubsub:2": {
      "policyDescription": "Allows access to publish to output topics.",
      "operations": [
        "aws.greengrass#PublishToTopic"
      ],
      "resources": [
        "cloudwatch/metric/put/status"
      ]
    }
  },
  "aws.greengrass.ipc.mqttproxy": {
    "aws.greengrass.Cloudwatch:mqttproxy:1": {
      "policyDescription": "Allows access to subscribe to input topics.",
      "operations": [
        "aws.greengrass#SubscribeToIoTCore"
      ],
      "resources": [
        "cloudwatch/metric/put"
      ]
    },
    "aws.greengrass.Cloudwatch:mqttproxy:2": {
      "policyDescription": "Allows access to publish to output topics.",
      "operations": [
        "aws.greengrass#PublishToIoTCore"
      ],
      "resources": [
        "cloudwatch/metric/put/status"
      ]
    }
  }
}
```

**Example 範例：組態合併更新**  

```
{
  "PublishInterval": 0,
  "PubSubToIoTCore": true
}
```

------
#### [ v2.x ]

**注意**  <a name="connector-component-lambda-parameters"></a>
此元件的預設組態包含 Lambda 函數參數。建議您只編輯下列參數，以在裝置上設定此元件。

 `lambdaParams`   
包含此元件 Lambda 函數參數的物件。此物件包含下列資訊：    
 `EnvironmentVariables`   
包含 Lambda 函數參數的物件。此物件包含下列資訊：    
 `PUBLISH_INTERVAL`   
（選用） 在元件發佈指定命名空間的批次指標之前等待的秒數上限。若要設定元件在接收指標時發佈指標，這表示無需批次處理，請指定 `0`。  
在相同命名空間中收到 20 個指標或您指定的間隔之後，元件會發佈到 CloudWatch。  
元件不保證事件發佈的順序。
此值最多可達 900 秒。  
預設：10 秒  
 `MAX_METRICS_TO_RETAIN`   
（選用） 元件將指標取代為較新的指標之前，所有命名空間中要儲存在記憶體中的指標數量上限。  
此限制適用於核心裝置沒有網際網路連線的情況，因此元件會緩衝稍後發佈的指標。當緩衝區已滿時，元件會將最舊的指標取代為較新的指標。指定命名空間中的指標只會取代相同命名空間中的指標。  
如果元件的主機程序中斷，則元件不會儲存指標。例如，這可能發生在部署期間或核心裝置重新啟動時。
此值必須至少為 2，000 個指標。  
預設：5，000 個指標  
 `PUBLISH_REGION`   
（選用） 要發佈 CloudWatch 指標 AWS 區域 的 。此值會覆寫核心裝置的預設區域。只有跨區域指標需要此參數。

`containerMode`  <a name="connector-component-container-mode-parameter"></a>
（選用） 此元件的容器化模式。您可以從以下選項中選擇：  <a name="lambda-function-component-container-mode-parameter"></a>
+ `NoContainer` – 元件不會在隔離的執行時間環境中執行。
+ `GreengrassContainer` – 元件會在 AWS IoT Greengrass 容器內的隔離執行時間環境中執行。
預設：`GreengrassContainer`

 `containerParams`   
<a name="connector-component-container-params-description"></a>（選用） 包含此元件容器參數的物件。如果您`GreengrassContainer`為 指定 ，元件會使用這些參數`containerMode`。  
此物件包含下列資訊：    
 `memorySize`   
<a name="connector-component-container-params-memory-size-description"></a>（選用） 要配置給元件的記憶體量 （以 KB 為單位）。  
預設為 64 MB (65，535 KB)。

`pubsubTopics`  <a name="connector-component-pubsub-topics-parameter"></a>
（選用） 物件，其中包含元件訂閱接收訊息的主題。您可以指定每個主題，以及元件是從 訂閱 MQTT 主題 AWS IoT Core 或本機發佈/訂閱主題。  
此物件包含下列資訊：    
`0` – 這是做為字串的陣列索引。  
包含下列資訊的物件：    
`type`  
（選用） 此元件用來訂閱訊息的發佈/訂閱訊息類型。您可以從以下選項中選擇：  
+ `PUB_SUB` - 訂閱本機發佈/訂閱訊息。如果您選擇此選項，主題不能包含 MQTT 萬用字元。如需在指定此選項時如何從自訂元件傳送訊息的詳細資訊，請參閱 [發佈/訂閱本機訊息](ipc-publish-subscribe.md)。
+ `IOT_CORE` – 訂閱 AWS IoT Core MQTT 訊息。如果您選擇此選項，主題可以包含 MQTT 萬用字元。如需在指定此選項時如何從自訂元件傳送訊息的詳細資訊，請參閱 [發佈/訂閱 AWS IoT Core MQTT 訊息](ipc-iot-core-mqtt.md)。
預設：`PUB_SUB`  
`topic`  
（選用） 元件訂閱接收訊息的主題。如果您`IotCore`為 指定 `type`，則可以在本主題中使用 MQTT 萬用字元 (`+` 和 `#`)。

**Example 範例：組態合併更新 （容器模式）**  

```
{
  "containerMode": "GreengrassContainer"
}
```

**Example 範例：組態合併更新 （無容器模式）**  

```
{
  "containerMode": "NoContainer"
}
```

------

## 輸入資料
<a name="cloudwatch-metrics-component-input-data"></a>

此元件接受下列主題的指標，並將指標發佈至 CloudWatch。<a name="connector-component-local-publish"></a>根據預設，此元件會訂閱本機發佈/訂閱訊息。如需如何從自訂元件發佈訊息至此元件的詳細資訊，請參閱 [發佈/訂閱本機訊息](ipc-publish-subscribe.md)。

從元件版本 v3.0.0 開始，您可以選擇將此元件設定為訂閱 MQTT 主題，方法是將`PubSubToIoTCore`組態參數設定為 `true`。如需將訊息發佈至自訂元件中 MQTT 主題的詳細資訊，請參閱 [發佈/訂閱 AWS IoT Core MQTT 訊息](ipc-iot-core-mqtt.md)。

 **預設主題：** `cloudwatch/metric/put`

<a name="connector-component-input-properties"></a>訊息接受下列屬性。輸入訊息必須是 JSON 格式。

 `request`   
此訊息中的指標。  
請求物件包含要發佈至 CloudWatch 的指標資料。指標值必須符合 [https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_PutMetricData.html](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_PutMetricData.html)操作的規格。  
類型：`object`包含下列資訊：    
 `namespace`   
此請求中指標資料的使用者定義命名空間。CloudWatch 使用命名空間做為指標資料點的容器。  
您無法指定以預留字串 開頭的命名空間`AWS/`。
類型：`string`  
有效模式： `[^:].*`  
 `metricData`   
指標的資料。  
類型：`object`包含下列資訊：    
 `metricName`   
指標的名稱  
類型：`string`  
 `value`   
指標的值。  
CloudWatch 會拒絕太小或太大的值。值必須介於 `8.515920e-109`和 `1.174271e+108`(Base 10) 或 `2e-360`和 `2e360`(Base 2) 之間。CloudWatch 不支援特殊值，例如 `NaN`、 `+Infinity`和 `-Infinity`。
類型：`double`  
 `dimensions`   
（選用） 指標的維度。維度提供指標及其資料的其他資訊。一個指標可以定義最多 10 個維度。  
此元件會自動包含名為 的維度`coreName`，其中 值是核心裝置的名稱。  
類型： `array` 的物件，每個物件都包含下列資訊：    
 `name`   
（選用） 維度名稱。  
類型：`string`  
 `value`   
（選用） 維度值。  
類型：`string`  
 `timestamp`   
（選用） 收到指標資料的時間，以秒為單位，以 Unix epoch 時間表示。  
預設為元件接收訊息的時間。  
類型：`double`  
如果您在此元件的 2.0.3 和 2.0.7 版之間使用 ，我們建議您從單一來源傳送多個指標時，分別擷取每個指標的時間戳記。請勿使用變數來存放時間戳記。  
 `unit`   
（選用） 指標的單位。  
類型：`string`  
有效值：`Seconds`、`Microseconds`、`Milliseconds`、`Bytes`、`Kilobytes`、、`Megabytes``Gigabytes``Terabytes`、`Bits``Kilobits`、`Megabits`、、`Gigabits`、`Terabits``Percent`、`Count``Bytes/Second`、`Kilobytes/Second`、、、、`Megabytes/Second`、`Gigabytes/Second``Terabytes/Second``Bits/Second``Kilobits/Second`、、 `Megabits/Second` `Gigabits/Second` `Terabits/Second` `Count/Second` `None`  
預設為 `None`。

**注意**  
套用至 CloudWatch `PutMetricData` API 的所有配額都會套用至您使用此元件發佈的指標。下列配額特別重要：  
API 承載的 40 KB 限制
每一 API 請求 20 個指標
`PutMetricData` API 每秒 150 筆交易 (TPS)
如需詳細資訊，請參閱《[CloudWatch 使用者指南》中的 CloudWatch 服務配額](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_limits.html)。 *CloudWatch *

**Example 範例輸入**  

```
{
  "request": {
    "namespace": "Greengrass",
    "metricData": {
      "metricName": "latency",
      "dimensions": [
        {
          "name": "hostname",
          "value": "test_hostname"
        }
      ],
      "timestamp": 1539027324,
      "value": 123.0,
      "unit": "Seconds"
    }
  }
}
```

## 輸出資料
<a name="cloudwatch-metrics-component-output-data"></a>

 <a name="connector-component-output-data-pubsub"></a>根據預設，此元件會將回應發佈為下列本機發佈/訂閱主題上的輸出資料。如需如何在自訂元件中訂閱此主題訊息的詳細資訊，請參閱 [發佈/訂閱本機訊息](ipc-publish-subscribe.md)。

您可以選擇將此元件設定為發佈至 MQTT 主題，方法是將`PubSubToIoTCore`組態參數設定為 `true`。如需在自訂元件中訂閱 MQTT 主題訊息的詳細資訊，請參閱 [發佈/訂閱 AWS IoT Core MQTT 訊息](ipc-iot-core-mqtt.md)。

**注意**  
根據預設，元件版本 2.0.x 會將回應發佈為 MQTT 主題上的輸出資料。您必須在[舊版訂閱路由器元件](legacy-subscription-router-component.md)的組態`subject`中，將 主題指定為 。

 **預設主題：** `cloudwatch/metric/put/status`

**Example 範例輸出：成功**  
回應包含指標資料的命名空間，以及 CloudWatch 回應中的 `RequestId` 欄位。  

```
{
  "response": {
    "cloudwatch_rid": "70573243-d723-11e8-b095-75ff2EXAMPLE",
    "namespace": "Greengrass",
    "status": "success"
  }
}
```

**Example 範例輸出：失敗**  

```
{
  "response" : {
    "namespace": "Greengrass",
    "error": "InvalidInputException",
    "error_message": "cw metric is invalid",
    "status": "fail"
  }
}
```

**注意**  <a name="connector-component-retryable-error"></a>
如果元件偵測到可以重試的錯誤，例如連線錯誤，則會在下一個批次中重試發佈。

## 授權
<a name="cloudwatch-metrics-component-licenses"></a>

此元件包含下列第三方軟體/授權：<a name="boto-3-licenses"></a>
+ [適用於 Python (Boto3) 的 AWS SDK](https://pypi.org/project/boto3/)/Apache License 2.0
+ [botocore](https://pypi.org/project/botocore/)/Apache License 2.0
+ [dateutil](https://pypi.org/project/python-dateutil/1.4/)/PSF License
+ [docutils](https://pypi.org/project/docutils/)/BSD 授權、GNU 一般公有授權 (GPL)、Python 軟體基金會授權、公有網域
+ [jmespath](https://pypi.org/project/jmespath/)/MIT License
+ [s3transfer](https://pypi.org/project/s3transfer/)/Apache License 2.0
+ [urllib3](https://pypi.org/project/urllib3/)/MIT License

<a name="component-core-software-license"></a>此元件根據 [Greengrass 核心軟體授權合約](https://greengrass-release-license.s3.us-west-2.amazonaws.com/greengrass-license-v1.pdf)發行。

## 本機日誌檔案
<a name="cloudwatch-metrics-component-log-file"></a>

此元件使用以下日誌檔案。

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

```
/greengrass/v2/logs/aws.greengrass.Cloudwatch.log
```

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

```
C:\greengrass\v2\logs\aws.greengrass.Cloudwatch.log
```

------

**檢視此元件的日誌**
+ 在核心裝置上執行下列命令，以即時檢視此元件的日誌檔案。將 `/greengrass/v2`或 *C：\$1greengrass\$1v2* 取代為 AWS IoT Greengrass 根資料夾的路徑。

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

  ```
  sudo tail -f /greengrass/v2/logs/aws.greengrass.Cloudwatch.log
  ```

------
#### [ Windows (PowerShell) ]

  ```
  Get-Content C:\greengrass\v2\logs\aws.greengrass.Cloudwatch.log -Tail 10 -Wait
  ```

------

## 變更記錄
<a name="cloudwatch-metrics-component-changelog"></a>

下表說明每個版本元件的變更。

------
#### [ v3.x ]


|  **版本**  |  **變更**  | 
| --- | --- | 
|  3.2.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/cloudwatch-metrics-component.html)  | 
|  3.1.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/cloudwatch-metrics-component.html)  | 
|  3.0.0  |  <a name="changelog-cloudwatch-metrics-3.0.0-major-version-changes"></a>此版本的 CloudWatch 指標元件預期與 2.x 版不同的組態參數。如果您使用 2.x 版的非預設組態，而且想要從 v2.x 升級到 v3.x，則必須更新元件的組態。如需詳細資訊，請參閱 [CloudWatch 指標元件組態](#cloudwatch-metrics-component-configuration)。 <a name="changelog-cloudwatch-metrics-3.0.0"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/cloudwatch-metrics-component.html)  | 

------
#### [ v2.x ]


|  **版本**  |  **變更**  | 
| --- | --- | 
|  2.1.8  |  針對 Greengrass nucleus 2.13.0 版更新版本。  | 
|  2.1.3  |  針對 Greengrass nucleus 2.11.0 版更新版本。  | 
|  2.1.2  |  針對 Greengrass nucleus 2.7.0 版更新版本。  | 
|  2.1.1  |  針對 Greengrass nucleus 2.6.0 版更新版本。  | 
|  2.1.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/cloudwatch-metrics-component.html)  | 
|  2.0.8  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/cloudwatch-metrics-component.html)  | 
|  2.0.7  |  針對 Greengrass nucleus 2.4.0 版更新版本。  | 
|  2.0.6  |  針對 Greengrass nucleus 2.3.0 版更新版本。  | 
|  2.0.5  |  針對 Greengrass nucleus 2.2.0 版更新版本。  | 
|  2.0.4  |  針對 Greengrass nucleus 2.1.0 版更新版本。  | 
|  2.0.3  |  初始版本。  | 

------

## 另請參閱
<a name="cloudwatch-metrics-component-see-also"></a>
+ 《Amazon CloudWatch 使用者指南》**中的[使用 Amazon CloudWatch 指標](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/working_with_metrics.html)
+ *Amazon CloudWatch API 參考*中的 [PutMetricData](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_PutMetricData.html) 

# AWS IoT Device Defender
<a name="device-defender-component"></a>

 AWS IoT Device Defender 元件 (`aws.greengrass.DeviceDefender`) 會通知管理員有關 Greengrass 核心裝置狀態的變更。這可協助識別可能會表示裝置受損的不尋常行為。如需詳細資訊，請參閱《AWS IoT Core 開發人員指南》**中的 [AWS IoT Device Defender](https://docs.aws.amazon.com/iot/latest/developerguide/device-defender.html)。

此元件會讀取核心裝置上的系統指標。然後，它會將指標發佈至 AWS IoT Device Defender。如需如何讀取和解譯此元件所報告指標的詳細資訊，請參閱《 *AWS IoT Core 開發人員指南*》中的[裝置指標文件規格](https://docs.aws.amazon.com/iot/latest/developerguide/detect-device-side-metrics.html#DetectMetricsMessagesSpec)。

**注意**  
此元件提供與 Device Defender 連接器類似的功能 AWS IoT Greengrass V1。如需詳細資訊，請參閱《 *AWS IoT Greengrass V1 開發人員指南*》中的 [Device Defender 連接器](https://docs.aws.amazon.com/greengrass/latest/developerguide/device-defender-connector.html)。

**Topics**
+ [版本](#device-defender-component-versions)
+ [類型](#device-defender-component-type)
+ [作業系統](#device-defender-component-os-support)
+ [要求](#device-defender-component-requirements)
+ [相依性](#device-defender-component-dependencies)
+ [Configuration](#device-defender-component-configuration)
+ [輸入資料](#device-defender-component-input-data)
+ [輸出資料](#device-defender-component-output-data)
+ [本機日誌檔案](#device-defender-component-log-file)
+ [授權](#device-defender-component-licenses)
+ [變更記錄](#device-defender-component-changelog)

## 版本
<a name="device-defender-component-versions"></a>

此元件具有下列版本：
+ 3.1.x 版本
+ 3.0.x
+ 2.0.x

如需有關每個元件版本變更的資訊，請參閱[變更日誌](#device-defender-component-changelog)。

## 類型
<a name="device-defender-component-type"></a>

------
#### [ v3.x ]

<a name="public-component-type-generic"></a>此<a name="public-component-type-generic-phrase"></a>元件是一般元件 (`aws.greengrass.generic`)。[Greengrass 核](greengrass-nucleus-component.md)會執行元件的生命週期指令碼。

------
#### [ v2.x ]

<a name="public-component-type-lambda"></a>此<a name="public-component-type-lambda-phrase"></a>元件是 Lambda 元件 (`aws.greengrass.lambda`)。[Greengrass 核](greengrass-nucleus-component.md)會使用 Lambda [啟動器元件執行此元件的 Lambda](lambda-launcher-component.md) 函數。

------

<a name="public-component-type-more-information"></a>如需詳細資訊，請參閱[元件類型](develop-greengrass-components.md#component-types)。

## 作業系統
<a name="device-defender-component-os-support"></a>

------
#### [ v3.x ]

此元件可以安裝在執行下列作業系統的核心裝置上：
+ Linux
+ Windows

------
#### [ v2.x ]

此元件只能在 Linux 核心裝置上安裝。

------

## 要求
<a name="device-defender-component-requirements"></a>

此元件有下列需求：

------
#### [ v3.x ]
+ <a name="public-component-python3-requirement"></a>安裝在核心裝置上並新增至 PATH 環境變數的 [Python](https://www.python.org/) 3.7 版。
+ AWS IoT Device Defender 設定為使用 Detect 功能來監控違規。如需詳細資訊，請參閱《 *AWS IoT Core 開發人員指南*》中的[偵測](https://docs.aws.amazon.com/iot/latest/developerguide/device-defender-detect.html)。

------
#### [ v2.x ]
+ <a name="core-device-lambda-function-requirements"></a>您的核心裝置必須符合執行 Lambda 函數的要求。如果您希望核心裝置執行容器化 Lambda 函數，則裝置必須符合執行此作業的要求。如需詳細資訊，請參閱[Lambda 函數需求](setting-up.md#greengrass-v2-lambda-requirements)。
+ <a name="public-component-python3-requirement"></a>安裝在核心裝置上並新增至 PATH 環境變數的 [Python](https://www.python.org/) 3.7 版。
+ AWS IoT Device Defender 設定為使用 Detect 功能來監控違規。如需詳細資訊，請參閱《 *AWS IoT Core 開發人員指南*》中的[偵測](https://docs.aws.amazon.com/iot/latest/developerguide/device-defender-detect.html)。
+ 安裝在核心裝置上的 [psutil](https://pypi.org/project/psutil/) 程式庫。5.7.0 版是經過驗證可與 元件搭配使用的最新版本。
+ 安裝在核心裝置上的 [cbor](https://pypi.org/project/cbor/) 程式庫。1.0.0 版是經過驗證可與 元件搭配使用的最新版本。
+ <a name="connector-component-legacy-subscription-router-dependency"></a>若要從此元件接收輸出資料，您必須在部署此元件時合併[舊版訂閱路由器元件](legacy-subscription-router-component.md) (`aws.greengrass.LegacySubscriptionRouter`) 的下列組態更新。此組態會指定此元件發佈回應的主題。

------
#### [ Legacy subscription router v2.1.x ]

  ```
  {
    "subscriptions": {
      "aws-greengrass-device-defender": {
        "id": "aws-greengrass-device-defender",
        "source": "component:aws.greengrass.DeviceDefender",
        "subject": "$aws/things/+/defender/metrics/json",
        "target": "cloud"
      }
    }
  }
  ```

------
#### [ Legacy subscription router v2.0.x ]

  ```
  {
    "subscriptions": {
      "aws-greengrass-device-defender": {
        "id": "aws-greengrass-device-defender",
        "source": "arn:aws:lambda:region:aws:function:aws-greengrass-device-defender:version",
        "subject": "$aws/things/+/defender/metrics/json",
        "target": "cloud"
      }
    }
  }
  ```<a name="connector-component-legacy-subscription-router-dependency-replace"></a>
  + 以您使用 AWS 區域 的 取代*區域*。
  + ** 以此元件執行的 Lambda 函數版本取代 版本。若要尋找 Lambda 函數版本，您必須檢視要部署之此元件版本的配方。在[AWS IoT Greengrass 主控台](https://console.aws.amazon.com//greengrass)中開啟此元件的詳細資訊頁面，並尋找 **Lambda 函數**鍵/值對。此鍵/值對包含 Lambda 函數的名稱和版本。

**重要**  <a name="connector-component-legacy-subscription-router-dependency-note"></a>
每次部署此元件時，都必須更新舊版訂閱路由器上的 Lambda 函數版本。這可確保您為部署的元件版本使用正確的 Lambda 函數版本。

------

  <a name="connector-component-create-deployments"></a>如需詳細資訊，請參閱[建立部署](create-deployments.md)。

------

## 相依性
<a name="device-defender-component-dependencies"></a>

當您部署元件時， AWS IoT Greengrass 也會部署其相依性的相容版本。這表示您必須符合元件及其所有相依性的要求，才能成功部署元件。本節列出此元件[發行版本的](#device-defender-component-changelog)相依性，以及為每個相依性定義元件版本的語意版本限制。您也可以在 [AWS IoT Greengrass 主控台](https://console.aws.amazon.com//greengrass)中檢視每個版本元件的相依性。在元件詳細資訊頁面上，尋找**相依性**清單。

------
#### [ 3.1.1 ]

下表列出此元件 3.1.1 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <3.0.0 | 軟式 | 
| [字符交換服務](token-exchange-service-component.md) | >=0.0.0 | 硬式 | 

------
#### [ 3.0.0 - 3.0.2 ]

下表列出此元件 3.0.0 到 3.0.2 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <3.0.0 | 軟式 | 
| [權杖交換服務](token-exchange-service-component.md) | >=0.0.0 | 硬式 | 

------
#### [ 2.0.12 - 2.0.17 ]

下表列出此元件 2.0.12 至 2.0.17 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <3.0.0  | 硬式 | 
| [Lambda 啟動器](lambda-launcher-component.md) | ^2.0.0  | 硬式 | 
| [Lambda 執行階段](lambda-runtimes-component.md) | ^2.0.0  | 軟式 | 
| [字符交換服務](token-exchange-service-component.md) | ^2.0.0  | 硬式 | 

------
#### [ 2.0.12 - 2.0.16 ]

下表列出此元件 2.0.16 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <3.0.0  | 硬式 | 
| [Lambda 啟動器](lambda-launcher-component.md) | ^2.0.0  | 硬式 | 
| [Lambda 執行階段](lambda-runtimes-component.md) | ^2.0.0  | 軟式 | 
| [權杖交換服務](token-exchange-service-component.md) | ^2.0.0  | 硬式 | 

------
#### [ 2.0.10 - 2.0.11 ]

下表列出此元件 2.0.10 和 2.0.11 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.8.0  | 硬式 | 
| [Lambda 啟動器](lambda-launcher-component.md) | ^2.0.0  | 硬式 | 
| [Lambda 執行階段](lambda-runtimes-component.md) | ^2.0.0  | 軟式 | 
| [字符交換服務](token-exchange-service-component.md) | ^2.0.0  | 硬式 | 

------
#### [ 2.0.9 ]

下表列出此元件 2.0.9 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.7.0  | 硬式 | 
| [Lambda 啟動器](lambda-launcher-component.md) | ^2.0.0  | 硬式 | 
| [Lambda 執行階段](lambda-runtimes-component.md) | ^2.0.0  | 軟式 | 
| [字符交換服務](token-exchange-service-component.md) | ^2.0.0  | 硬式 | 

------
#### [ 2.0.8 ]

下表列出此元件 2.0.8 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.6.0  | 硬式 | 
| [Lambda 啟動器](lambda-launcher-component.md) | ^2.0.0  | 硬式 | 
| [Lambda 執行階段](lambda-runtimes-component.md) | ^2.0.0  | 軟式 | 
| [權杖交換服務](token-exchange-service-component.md) | ^2.0.0  | 硬式 | 

------
#### [ 2.0.7 ]

下表列出此元件 2.0.7 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.5.0  | 硬式 | 
| [Lambda 啟動器](lambda-launcher-component.md) | ^2.0.0  | 硬式 | 
| [Lambda 執行階段](lambda-runtimes-component.md) | ^2.0.0  | 軟式 | 
| [權杖交換服務](token-exchange-service-component.md) | ^2.0.0  | 硬式 | 

------
#### [ 2.0.6 ]

下表列出此元件 2.0.6 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.4.0  | 硬式 | 
| [Lambda 啟動器](lambda-launcher-component.md) | ^2.0.0  | 硬式 | 
| [Lambda 執行階段](lambda-runtimes-component.md) | ^2.0.0  | 軟式 | 
| [權杖交換服務](token-exchange-service-component.md) | ^2.0.0  | 硬式 | 

------
#### [ 2.0.5 ]

下表列出此元件 2.0.5 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.3.0  | 硬式 | 
| [Lambda 啟動器](lambda-launcher-component.md) | ^2.0.0  | 硬式 | 
| [Lambda 執行階段](lambda-runtimes-component.md) | ^2.0.0  | 軟式 | 
| [權杖交換服務](token-exchange-service-component.md) | ^2.0.0  | 硬式 | 

------
#### [ 2.0.4 ]

下表列出此元件 2.0.4 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.2.0  | 硬式 | 
| [Lambda 啟動器](lambda-launcher-component.md) | ^2.0.0  | 硬式 | 
| [Lambda 執行階段](lambda-runtimes-component.md) | ^2.0.0  | 軟式 | 
| [字符交換服務](token-exchange-service-component.md) | ^2.0.0  | 硬式 | 

------
#### [ 2.0.3 ]

下表列出此元件 2.0.3 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.3 <2.1.0  | 硬式 | 
| [Lambda 啟動器](lambda-launcher-component.md) | >=1.0.0  | 硬式 | 
| [Lambda 執行階段](lambda-runtimes-component.md) | >=1.0.0  | 軟式 | 
| [權杖交換服務](token-exchange-service-component.md) | >=1.0.0  | 硬式 | 

------

如需元件相依性的詳細資訊，請參閱[元件配方參考](component-recipe-reference.md#recipe-reference-component-dependencies)。

## Configuration
<a name="device-defender-component-configuration"></a>

此元件提供下列組態參數，您可以在部署元件時自訂這些參數。

------
#### [ v3.x ]

`PublishRetryCount`  
將重試發佈的次數。此功能可在 3.1.1 版中使用。  
最小值為 0。  
上限為 72。  
預設：5

`SampleIntervalSeconds`  
（選用） 元件收集和報告指標的每個週期之間的秒數。  
最低值為 300 秒 (5 分鐘)。  
預設：300 秒

 `UseInstaller`   
（選用） 布林值，定義是否使用此元件中的安裝程式指令碼來安裝此元件的相依性。  
`false` 如果您想要使用自訂指令碼來安裝相依性，或想要在預先建置的 Linux 映像中包含執行時間相依性，請將此值設定為 。若要使用此元件，您必須安裝下列程式庫，包括任何相依性，並將其提供給預設的 Greengrass 系統使用者。  
+ [AWS IoT Device SDK 適用於 Python 的 v2](https://github.com/aws/aws-iot-device-sdk-python-v2)
+ [cbor](https://pypi.org/project/cbor/) 程式庫。1.0.0 版是經過驗證可與 元件搭配使用的最新版本。
+ [psutil](https://pypi.org/project/psutil/) 程式庫。5.7.0 版是經過驗證可與 元件搭配使用的最新版本。
如果您在設定為使用 HTTPS 代理的核心裝置上使用此元件的 3.0.0 或 3.0.1 版，您必須將此值設定為 `false`。在此元件的這些版本中，安裝程式指令碼不支援 HTTPS 代理背後的操作。
預設：`true`

------
#### [ v2.x ]

**注意**  <a name="connector-component-lambda-parameters"></a>
此元件的預設組態包含 Lambda 函數參數。建議您只編輯下列參數，以在裝置上設定此元件。

`lambdaParams`  
包含此元件 Lambda 函數參數的物件。此物件包含下列資訊：    
`EnvironmentVariables`  
包含 Lambda 函數參數的物件。此物件包含下列資訊：    
`PROCFS_PATH`  
（選用） `/proc` 資料夾的路徑。  
+ 若要在容器中執行此元件，請使用預設值 `/host-proc`。根據預設，元件會在容器中執行。
+ 若要在沒有容器模式下執行此元件，請`/proc`為此參數指定 。
預設：`/host-proc`。這是此元件在容器中掛載 `/proc` 資料夾的預設路徑。  
此元件具有此資料夾的唯讀存取權。  
`SAMPLE_INTERVAL_SECONDS`  
（選用） 元件收集和報告指標的每個週期之間的秒數。  
最低值為 300 秒 (5 分鐘)。  
預設：300 秒

`containerMode`  
（選用） 此元件的容器化模式。您可以從以下選項中選擇：  
+ `GreengrassContainer` – 元件會在 AWS IoT Greengrass 容器內的隔離執行時間環境中執行。
+ `NoContainer` – 元件不會在隔離的執行時間環境中執行。

  如果您指定此選項，則必須`/proc`為`PROCFS_PATH`環境變數參數指定 。
預設：`GreengrassContainer`

`containerParams`  
<a name="connector-component-container-params-description"></a>（選用） 包含此元件容器參數的物件。如果您`GreengrassContainer`為 指定 ，元件會使用這些參數`containerMode`。  
此物件包含下列資訊：    
`memorySize`  
<a name="connector-component-container-params-memory-size-description"></a>（選用） 要配置給元件的記憶體量 （以 KB 為單位）。  
預設為 50，000 KB。

`pubsubTopics`  <a name="connector-component-pubsub-topics-parameter"></a>
（選用） 物件，其中包含元件訂閱接收訊息的主題。您可以指定每個主題，以及元件是從 或 AWS IoT Core 本機發佈/訂閱主題訂閱 MQTT 主題。  
此物件包含下列資訊：    
`0` – 這是做為字串的陣列索引。  
包含下列資訊的物件：    
`type`  
（選用） 此元件用來訂閱訊息的發佈/訂閱訊息類型。您可以從以下選項中選擇：  
+ `PUB_SUB` - 訂閱本機發佈/訂閱訊息。如果您選擇此選項，主題不能包含 MQTT 萬用字元。如需在指定此選項時如何從自訂元件傳送訊息的詳細資訊，請參閱 [發佈/訂閱本機訊息](ipc-publish-subscribe.md)。
+ `IOT_CORE` – 訂閱 AWS IoT Core MQTT 訊息。如果您選擇此選項，主題可以包含 MQTT 萬用字元。如需在指定此選項時如何從自訂元件傳送訊息的詳細資訊，請參閱 [發佈/訂閱 AWS IoT Core MQTT 訊息](ipc-iot-core-mqtt.md)。
預設：`PUB_SUB`  
`topic`  
（選用） 元件訂閱接收訊息的主題。如果您`IotCore`為 指定 `type`，則可以在本主題中使用 MQTT 萬用字元 (`+` 和 `#`)。

**Example 範例：組態合併更新 （容器模式）**  

```
{
  "lambdaExecutionParameters": {
    "EnvironmentVariables": {
      "PROCFS_PATH": "/host_proc"
    }
  },
  "containerMode": "GreengrassContainer"
}
```

**Example 範例：組態合併更新 （無容器模式）**  

```
{
  "lambdaExecutionParameters": {
    "EnvironmentVariables": {
      "PROCFS_PATH": "/proc"
    }
  },
  "containerMode": "NoContainer"
}
```

------

## 輸入資料
<a name="device-defender-component-input-data"></a>

此元件不接受訊息做為輸入資料。

## 輸出資料
<a name="device-defender-component-output-data"></a>

此元件會將安全指標發佈至 的下列預留主題 AWS IoT Device Defender。此元件會在發佈指標時，以核心裝置的名稱取代 *coreDeviceName*。

**主題 (AWS IoT Core MQTT)：** `$aws/things/coreDeviceName/defender/metrics/json`

**Example 範例輸出**  

```
{
  "header": {
    "report_id": 1529963534,
    "version": "1.0"
  },
  "metrics": {
    "listening_tcp_ports": {
      "ports": [
        {
          "interface": "eth0",
          "port": 24800
        },
        {
          "interface": "eth0",
          "port": 22
        },
        {
          "interface": "eth0",
          "port": 53
        }
      ],
      "total": 3
    },
    "listening_udp_ports": {
      "ports": [
        {
          "interface": "eth0",
          "port": 5353
        },
        {
          "interface": "eth0",
          "port": 67
        }
      ],
      "total": 2
    },
    "network_stats": {
      "bytes_in": 1157864729406,
      "bytes_out": 1170821865,
      "packets_in": 693092175031,
      "packets_out": 738917180
    },
    "tcp_connections": {
      "established_connections":{
        "connections": [
          {
            "local_interface": "eth0",
            "local_port": 80,
            "remote_addr": "192.168.0.1:8000"
          },
          {
            "local_interface": "eth0",
            "local_port": 80,
            "remote_addr": "192.168.0.1:8000"
          }
        ],
        "total": 2
      }
    }
  }
}
```

如需此元件報告之指標的詳細資訊，請參閱《 *AWS IoT Core 開發人員指南*》中的[裝置指標文件規格](https://docs.aws.amazon.com/iot/latest/developerguide/detect-device-side-metrics.html#DetectMetricsMessagesSpec)。

## 本機日誌檔案
<a name="device-defender-component-log-file"></a>

此元件使用以下日誌檔案。

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

```
/greengrass/v2/logs/aws.greengrass.DeviceDefender.log
```

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

```
C:\greengrass\v2\logs\aws.greengrass.DeviceDefender.log
```

------

**檢視此元件的日誌**
+ 在核心裝置上執行下列命令，以即時檢視此元件的日誌檔案。將 `/greengrass/v2`或 *C：\$1greengrass\$1v2* 取代為 AWS IoT Greengrass 根資料夾的路徑。

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

  ```
  sudo tail -f /greengrass/v2/logs/aws.greengrass.DeviceDefender.log
  ```

------
#### [ Windows (PowerShell) ]

  ```
  Get-Content C:\greengrass\v2\logs\aws.greengrass.DeviceDefender.log -Tail 10 -Wait
  ```

------

## 授權
<a name="device-defender-component-licenses"></a>

<a name="component-core-software-license"></a>此元件根據 [Greengrass 核心軟體授權合約](https://greengrass-release-license.s3.us-west-2.amazonaws.com/greengrass-license-v1.pdf)發行。

## 變更記錄
<a name="device-defender-component-changelog"></a>

下表說明每個版本元件的變更。

------
#### [ v3.x ]


|  **版本**  |  **變更**  | 
| --- | --- | 
|  3.1.1  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/device-defender-component.html)  | 
|  3.1.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/device-defender-component.html)  | 
|  3.0.1  |  修正元件如何計算指標差異值的問題。  | 
|  3.0.0  |   此版本不再可用。此版本的改善功能可在此元件的較新版本中使用。  初始版本。  | 

------
#### [ v2.x ]


|  **版本**  |  **變更**  | 
| --- | --- | 
|  2.0.17  |  針對 Greengrass nucleus 2.14.0 版更新版本。  | 
|  2.0.16  |  針對 Greengrass nucleus 2.13.0 版更新版本。  | 
|  2.0.11  |  針對 Greengrass nucleus 2.11.0 版更新版本。  | 
|  2.0.10  |  針對 Greengrass nucleus 2.7.0 版更新版本。  | 
|  2.0.9  |  針對 Greengrass nucleus 2.6.0 版更新版本。  | 
|  2.0.8  |  針對 Greengrass nucleus 2.5.0 版更新版本。  | 
|  2.0.7  |  針對 Greengrass nucleus 2.4.0 版更新版本。  | 
|  2.0.6  |  針對 Greengrass nucleus 2.3.0 版更新版本。  | 
|  2.0.5  |  針對 Greengrass nucleus 2.2.0 版更新版本。  | 
|  2.0.4  |  針對 Greengrass nucleus 2.1.0 版更新版本。  | 
|  2.0.3  |  初始版本。  | 

------

# 磁碟多工緩衝處理
<a name="disk-spooler-component"></a>

磁碟多工緩衝處理元件 (`aws.greengrass.DiskSpooler`) 為從 Greengrass 核心裝置多工緩衝處理的訊息提供持久性儲存選項 AWS IoT Core。此元件會將這些傳出訊息存放在磁碟上。

**Topics**
+ [版本](#disk-spooler-component-versions)
+ [類型](#disk-spooler-component-type)
+ [作業系統](#disk-spooler-component-os-support)
+ [要求](#disk-spooler-component-requirements)
+ [相依性](#disk-spooler-component-dependencies)
+ [用途](#disk-spooler-component-usage)
+ [本機日誌檔案](#disk-spooler-component-log-file)
+ [變更記錄](#disk-spooler-component-changelog)

## 版本
<a name="disk-spooler-component-versions"></a>

此元件具有下列版本：
+ 1.0.x

## 類型
<a name="disk-spooler-component-type"></a>

<a name="public-component-type-plugin-para1"></a>此元件是外掛程式元件 (`aws.greengrass.plugin`)。[Greengrass 核會在](greengrass-nucleus-component.md)與核相同的 Java 虛擬機器 (JVM) 中執行此元件。當您在核心裝置上變更此元件的版本時，核會重新啟動。

<a name="public-component-type-plugin-para2"></a>此元件使用與 Greengrass 核相同的日誌檔案。如需詳細資訊，請參閱[監控 AWS IoT Greengrass 日誌](monitor-logs.md)。

<a name="public-component-type-more-information"></a>如需詳細資訊，請參閱[元件類型](develop-greengrass-components.md#component-types)。

## 作業系統
<a name="disk-spooler-component-os-support"></a>

此元件可以安裝在執行下列作業系統的核心裝置上：
+ Linux
+ Windows

## 要求
<a name="disk-spooler-component-requirements"></a>

此元件有下列需求：
+ `storageType` 應設定為 `Disk`以使用此元件。您可以在 [Greengrass 核組態](greengrass-nucleus-component.md#greengrass-nucleus-component-configuration)中設定此項目。
+ `maxSizeInBytes` 不得設定為大於裝置上的可用空間。您可以在 [Greengrass 核組態](greengrass-nucleus-component.md#greengrass-nucleus-component-configuration)中設定此項目。
+ 磁碟多工緩衝處理常式元件支援在 VPC 中執行。

## 相依性
<a name="disk-spooler-component-dependencies"></a>

當您部署元件時， AWS IoT Greengrass 也會部署其相依性的相容版本。這表示您必須符合元件及其所有相依性的要求，才能成功部署元件。本節列出此元件[發行版本的](#disk-spooler-component-changelog)相依性，以及為每個相依性定義元件版本的語意版本限制。您也可以在 [AWS IoT Greengrass 主控台](https://console.aws.amazon.com//greengrass)中檢視每個版本元件的相依性。在元件詳細資訊頁面上，尋找**相依性**清單。

------
#### [ 1.0.7 ]

下表列出此元件 1.0.7 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.11.0 <2.17.0 | 硬式 | 

------
#### [ 1.0. ]

下表列出此元件 1.0.6 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.11.0 <2.16.0 | 硬式 | 

------
#### [ 1.0.5 ]

下表列出此元件 1.0.5 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.11.0 <2.15.0 | 硬式 | 

------
#### [ 1.0.4 ]

下表列出此元件 1.0.4 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.11.0 <2.14.0 | 硬式 | 

------
#### [ 1.0.1 – 1.0.3 ]

下表列出此元件 1.0.1 至 1.0.3 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.11.0 <2.13.0 | 硬式 | 

------
#### [ 1.0.0 ]

下表列出此元件 1.0.0 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.11.0 <2.12.0 | 硬式 | 

------

如需元件相依性的詳細資訊，請參閱[元件配方參考](component-recipe-reference.md#recipe-reference-component-dependencies)。

## 用途
<a name="disk-spooler-component-usage"></a>

若要使用磁碟多工緩衝處理元件，`aws.greengrass.DiskSpooler`必須部署 。

若要設定和使用此元件，您必須將 `pluginName` 設定為 `aws.greengrass.DiskSpooler`。

## 本機日誌檔案
<a name="disk-spooler-component-log-file"></a>

此元件使用與 [Greengrass 核](greengrass-nucleus-component.md)元件相同的日誌檔案。

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

```
/greengrass/v2/logs/greengrass.log
```

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

```
C:\greengrass\v2\logs\greengrass.log
```

------

**檢視此元件的日誌**
+ 在核心裝置上執行下列命令，以即時檢視此元件的日誌檔案。將 `/greengrass/v2`或 *C：\$1greengrass\$1v2* 取代為 AWS IoT Greengrass 根資料夾的路徑。

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

  ```
  sudo tail -f /greengrass/v2/logs/greengrass.log
  ```

------
#### [ Windows (PowerShell) ]

  ```
  Get-Content C:\greengrass\v2\logs\greengrass.log -Tail 10 -Wait
  ```

------

## 變更記錄
<a name="disk-spooler-component-changelog"></a>

下表說明每個版本元件的變更。


|  **版本**  |  **變更**  | 
| --- | --- | 
|  1.0.7  |  針對 Greengrass nucleus 2.16.0 版更新版本。  | 
|  1.0.6  |  針對 Greengrass nucleus 2.15.0 版更新版本。  | 
|  1.0.5  |  針對 Greengrass nucleus 2.14.0 版更新版本。  | 
|  1.0.4  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/disk-spooler-component.html)  | 
|  1.0.3  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/disk-spooler-component.html)  | 
|  1.0.2  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/disk-spooler-component.html)  | 
|  1.0.1  |  針對 Greengrass nucleus 2.12.0 版更新版本。  | 
|  1.0.0  |  初始版本。  | 

# Docker 應用程式管理員
<a name="docker-application-manager-component"></a>

Docker 應用程式管理員元件 (`aws.greengrass.DockerApplicationManager`) 可讓 從 Amazon Elastic Container Registry (Amazon ECR) 上託管的公 AWS IoT Greengrass 有映像登錄檔和私有登錄檔下載 Docker 映像。它還允許 自動 AWS IoT Greengrass 管理登入資料，以安全地從 Amazon ECR 中的私有儲存庫下載映像。

當您開發執行 Docker 容器的自訂元件時，請包含 Docker 應用程式管理員做為下載元件中指定為成品之 Docker 映像的相依性。如需詳細資訊，請參閱[執行 Docker 容器](run-docker-container.md)。

**Topics**
+ [版本](#docker-application-manager-component-versions)
+ [Type](#docker-application-manager-component-type)
+ [作業系統](#docker-application-manager-component-os-support)
+ [要求](#docker-application-manager-component-requirements)
+ [相依性](#docker-application-manager-component-dependencies)
+ [Configuration](#docker-application-manager-component-configuration)
+ [本機日誌檔案](#docker-application-manager-component-log-file)
+ [變更記錄](#docker-application-manager-component-changelog)
+ [另請參閱](#docker-application-manager-component-see-also)

## 版本
<a name="docker-application-manager-component-versions"></a>

此元件具有下列版本：
+ 2.0.x

## Type
<a name="docker-application-manager-component-type"></a>

<a name="public-component-type-generic"></a>此<a name="public-component-type-generic-phrase"></a>元件是一般元件 (`aws.greengrass.generic`)。[Greengrass 核](greengrass-nucleus-component.md)會執行元件的生命週期指令碼。

<a name="public-component-type-more-information"></a>如需詳細資訊，請參閱[元件類型](develop-greengrass-components.md#component-types)。

## 作業系統
<a name="docker-application-manager-component-os-support"></a>

此元件可以安裝在執行下列作業系統的核心裝置上：
+ Linux
+ Windows

## 要求
<a name="docker-application-manager-component-requirements"></a>

此元件有下列需求：
+ <a name="docker-engine-requirement"></a>[Docker 引擎](https://docs.docker.com/engine/) 1.9.1 或更新版本安裝在 Greengrass 核心裝置上。20.10 版是經過驗證可與 AWS IoT Greengrass Core 軟體搭配使用的最新版本。您必須先直接在核心裝置上安裝 Docker，才能部署執行 Docker 容器的元件。
+ <a name="docker-daemon-requirement"></a>在部署此元件之前，Docker 協助程式會在核心裝置上啟動和執行。
+ 存放在下列其中一個支援映像來源中的 Docker 映像：
  + Amazon Elastic Container Registry (Amazon ECR) 中的公有和私有映像儲存庫
  + 公有 Docker Hub 儲存庫
  + 公有 Docker 信任的登錄檔
+ Docker 映像包含在自訂 Docker 容器元件中做為成品。使用下列 URI 格式來指定 Docker 映像：<a name="docker-image-artifact-uri"></a>
  + 私有 Amazon ECR 映像： `docker:account-id.dkr.ecr.region.amazonaws.com/repository/image[:tag|@digest]`
  + 公有 Amazon ECR 映像： `docker:public.ecr.aws/repository/image[:tag|@digest]`
  + 公有 Docker Hub 映像： `docker:name[:tag|@digest]`

  如需詳細資訊，請參閱[執行 Docker 容器](run-docker-container.md)。
**注意**  
如果您未在映像的成品 URI 中指定映像標籤或映像摘要，則當您部署自訂 Docker 容器元件時，Docker 應用程式管理員會提取該映像的最新可用版本。為了確保您的所有核心裝置執行相同版本的映像，建議您在成品 URI 中包含映像標籤或映像摘要。
+ <a name="docker-user-permissions-requirement"></a>執行 Docker 容器元件的系統使用者必須具有根或管理員許可，或者您必須將 Docker 設定為以非根或非註冊使用者身分執行。
  + 在 Linux 裝置上，您可以將使用者新增至 `docker`群組，在沒有 的情況下呼叫`docker`命令`sudo`。
  + 在 Windows 裝置上，您可以將使用者新增至 `docker-users`群組，以呼叫沒有管理員權限的`docker`命令。

------
#### [ Linux or Unix ]

  若要將 `ggc_user`或您用來執行 Docker 容器元件的非根使用者新增至 `docker`群組，請執行下列命令。

  ```
  sudo usermod -aG docker ggc_user
  ```

  如需詳細資訊，請參閱[以非根使用者的身分管理 Docker](https://docs.docker.com/engine/install/linux-postinstall/#manage-docker-as-a-non-root-user)。

------
#### [ Windows Command Prompt (CMD) ]

  若要將 `ggc_user`或您用來執行 Docker 容器元件的使用者新增至 `docker-users`群組，請以管理員身分執行下列命令。

  ```
  net localgroup docker-users ggc_user /add
  ```

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

  若要將 `ggc_user`或您用來執行 Docker 容器元件的使用者新增至 `docker-users`群組，請以管理員身分執行下列命令。

  ```
  Add-LocalGroupMember -Group docker-users -Member ggc_user
  ```

------
+ <a name="docker-proxy-requirement"></a>如果您[將 AWS IoT Greengrass Core 軟體設定為使用網路代理](configure-greengrass-core-v2.md#configure-alpn-network-proxy)，則必須[將 Docker 設定為使用相同的代理伺服器](https://docs.docker.com/network/proxy/)。
+ 如果您的 Docker 映像存放在 Amazon ECR 私有登錄檔中，則您必須在 Docker 容器元件中包含字符交換服務元件做為相依性。此外，[Greengrass 裝置角色](device-service-role.md)必須允許 `ecr:GetAuthorizationToken`、 `ecr:BatchGetImage`和 `ecr:GetDownloadUrlForLayer`動作，如下列範例 IAM 政策所示。

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

****  

  ```
  {
    "Version":"2012-10-17",		 	 	 
    "Statement": [
      {
        "Action": [
          "ecr:GetAuthorizationToken",
          "ecr:BatchGetImage",
          "ecr:GetDownloadUrlForLayer"
        ],
        "Resource": [
          "*"
        ],
        "Effect": "Allow"
      }
    ]
  }
  ```

------

  ```
  ```
+ 支援在 VPC 中執行 docker 應用程式管理員元件。若要在 VPC 中部署此元件，需要下列項目。
  + Docker 應用程式管理員元件必須具有下載映像的連線能力。例如，如果您使用 ECR，您必須連線至下列端點。
    + `*.dkr.ecr.region.amazonaws.com` (VPC 端點 `com.amazonaws.region.ecr.dkr`)
    + `api.ecr.region.amazonaws.com` (VPC 端點 `com.amazonaws.region.ecr.api`)

### 端點和連接埠
<a name="docker-application-manager-component-endpoints"></a>

除了基本操作所需的端點和連接埠之外，此元件還必須能夠對下列端點和連接埠執行傳出請求。如需詳細資訊，請參閱[允許透過代理或防火牆的裝置流量](allow-device-traffic.md)。


| Endpoint | 站點 | 必要 | Description | 
| --- | --- | --- | --- | 
|  `ecr.region.amazonaws.com`  | 443 | 否 |  如果您從 Amazon ECR 下載 Docker 映像，則為必要項目。  | 
|  `hub.docker.com` `registry.hub.docker.com/v1`  | 443 | 否 |  如果您從 Docker Hub 下載 Docker 映像，則為必要項目。  | 

## 相依性
<a name="docker-application-manager-component-dependencies"></a>

當您部署元件時， AWS IoT Greengrass 也會部署其相依性的相容版本。這表示您必須符合元件及其所有相依性的要求，才能成功部署元件。本節列出此元件[發行版本的](#docker-application-manager-component-changelog)相依性，以及為每個相依性定義元件版本的語意版本限制。您也可以在 [AWS IoT Greengrass 主控台](https://console.aws.amazon.com//greengrass)中檢視每個版本元件的相依性。在元件詳細資訊頁面上，尋找**相依性**清單。

------
#### [ 2.0.15 ]

下表列出此元件 2.0.15 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.1.0 <2.17.0 | 軟式 | 

------
#### [ 2.0.14 ]

下表列出此元件 2.0.14 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.1.0 <2.16.0 | 軟式 | 

------
#### [ 2.0.13 ]

下表列出此元件 2.0.13 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.1.0 <2.15.0 | 軟式 | 

------
#### [ 2.0.12 ]

下表列出此元件 2.0.12 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.1.0 <2.14.0 | 軟式 | 

------
#### [ 2.0.11 ]

下表列出此元件 2.0.11 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.1.0 <2.13.0 | 軟式 | 

------
#### [ 2.0.10 ]

下表列出此元件 2.0.10 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.1.0 <2.12.0 | 軟式 | 

------
#### [ 2.0.9 ]

下表列出此元件 2.0.9 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.1.0 <2.11.0 | 軟式 | 

------
#### [ 2.0.8 ]

下表列出此元件 2.0.8 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.1.0 <2.10.0 | 軟式 | 

------
#### [ 2.0.7 ]

下表列出此元件 2.0.7 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.1.0 <2.9.0 | 軟式 | 

------
#### [ 2.0.6 ]

下表列出此元件 2.0.6 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.1.0 <2.8.0 | 軟式 | 

------
#### [ 2.0.5 ]

下表列出此元件 2.0.5 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.1.0 <2.7.0 | 軟式 | 

------
#### [ 2.0.4 ]

下表列出此元件 2.0.4 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.1.0 <2.6.0 | 軟式 | 

------
#### [ 2.0.3 ]

下表列出此元件 2.0.3 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.1.0 <2.5.0 | 軟式 | 

------
#### [ 2.0.2 ]

下表列出此元件 2.0.2 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.1.0 <2.4.0 | 軟式 | 

------
#### [ 2.0.1 ]

下表列出此元件 2.0.1 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.1.0 <2.3.0 | 軟式 | 

------
#### [ 2.0.0 ]

下表列出此元件 2.0.0 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.1.0 <2.2.0 | 軟式 | 

------

如需元件相依性的詳細資訊，請參閱[元件配方參考](component-recipe-reference.md#recipe-reference-component-dependencies)。

## Configuration
<a name="docker-application-manager-component-configuration"></a>

此元件沒有任何組態參數。

## 本機日誌檔案
<a name="docker-application-manager-component-log-file"></a>

此元件使用與 [Greengrass 核](greengrass-nucleus-component.md)元件相同的日誌檔案。

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

```
/greengrass/v2/logs/greengrass.log
```

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

```
C:\greengrass\v2\logs\greengrass.log
```

------

**檢視此元件的日誌**
+ 在核心裝置上執行下列命令，以即時檢視此元件的日誌檔案。將 `/greengrass/v2`或 *C：\$1greengrass\$1v2* 取代為 AWS IoT Greengrass 根資料夾的路徑。

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

  ```
  sudo tail -f /greengrass/v2/logs/greengrass.log
  ```

------
#### [ Windows (PowerShell) ]

  ```
  Get-Content C:\greengrass\v2\logs\greengrass.log -Tail 10 -Wait
  ```

------

## 變更記錄
<a name="docker-application-manager-component-changelog"></a>

下表說明每個版本元件的變更。


|   **版本**   |   **變更**   | 
| --- | --- | 
|  2.0.15  |  針對 Greengrass nucleus 2.16.0 版更新版本。  | 
|  2.0.14  | 針對 Greengrass nucleus 2.15.0 版更新版本。 | 
|  2.0.13  | 針對 Greengrass nucleus 2.14.0 版更新版本。 | 
|  2.0.12  | 針對 Greengrass nucleus 2.13.0 版更新版本。 | 
|  2.0.11  | 針對 Greengrass nucleus 2.12.0 版更新版本。 | 
|  2.0.10  | 針對 Greengrass nucleus 2.11.0 版更新版本。 | 
|  2.0.9  | 針對 Greengrass nucleus 2.10.0 版更新版本。 | 
|  2.0.8  | 針對 Greengrass nucleus 2.9.0 版更新版本。 | 
|  2.0.7  | 針對 Greengrass nucleus 2.8.0 版更新版本。 | 
|  2.0.6  |  針對 Greengrass nucleus 2.7.0 版更新版本。  | 
|  2.0.5  |  針對 Greengrass nucleus 2.6.0 版更新版本。  | 
|  2.0.4  |  針對 Greengrass nucleus 2.5.0 版更新版本。  | 
|  2.0.3  |  針對 Greengrass nucleus 2.4.0 版更新版本。  | 
|  2.0.2  |  針對 Greengrass nucleus 2.3.0 版更新版本。  | 
|  2.0.1  |  針對 Greengrass nucleus 2.2.0 版更新版本。  | 
|  2.0.0  |  初始版本。  | 

## 另請參閱
<a name="docker-application-manager-component-see-also"></a>
+  [執行 Docker 容器](run-docker-container.md) 

# Kinesis Video Streams 的邊緣連接器
<a name="kvs-edge-connector-component"></a>

Kinesis Video Streams 元件 (`aws.iot.EdgeConnectorForKVS`) 的邊緣連接器會從本機攝影機讀取影片饋送，並將串流發佈至 Kinesis Video Streams。您可以將此元件設定為使用即時串流通訊協定 (RTSP) 從網際網路通訊協定 (IP) 攝影機讀取視訊摘要。然後，您可以在 [Amazon Managed Grafana](https://docs.aws.amazon.com/grafana/latest/userguide/what-is-Amazon-Managed-Service-Grafana.html) 或本機 Grafana 伺服器中設定儀表板，以監控視訊串流並與之互動。

您可以將此元件與 AWS IoT TwinMaker 整合，以在 Grafana 儀表板中顯示和控制影片串流。 AWS IoT TwinMaker 是一項 AWS 服務，可讓您建置實體系統的操作數位分身。您可以使用 AWS IoT TwinMaker 從感應器、攝影機和企業應用程式視覺化資料，以追蹤實體工廠、建築物或工業工廠。您也可以使用此資料來監控操作、診斷錯誤和修復錯誤。如需詳細資訊，請參閱 [AWS IoT TwinMaker 使用者指南中的什麼是TwinMaker？](https://docs.aws.amazon.com/iot-twinmaker/latest/guide/what-is-twinmaker.html)。 *AWS IoT TwinMaker *

此元件會將其組態存放在 中 AWS IoT SiteWise，這是建立模型並存放工業資料 AWS 的服務。在 中 AWS IoT SiteWise，*資產*代表物件，例如裝置、設備或其他物件的群組。若要設定和使用此元件，您可以為每個 Greengrass 核心裝置和連接到每個核心裝置的每個 IP 攝影機建立 AWS IoT SiteWise 資產。每個資產都有您設定的屬性來控制功能，例如即時串流、隨需上傳和本機快取。若要指定每個攝影機的 URL，您可以在 AWS Secrets Manager 中建立包含攝影機 URL 的秘密。如果攝影機需要身分驗證，您也可以在 URL 中指定使用者名稱和密碼。然後，您可以在 IP 攝影機的資產屬性中指定該秘密。

此元件會將每個相機的影片串流上傳至 Kinesis 影片串流。您可以在每個攝影機的 AWS IoT SiteWise 資產組態中指定目的地 Kinesis 視訊串流的名稱。如果 Kinesis 影片串流不存在，此元件會為您建立。

AWS IoT TwinMaker 提供指令碼，您可以執行此指令碼來建立這些 AWS IoT SiteWise 資產和 Secrets Manager 秘密。如需如何建立這些資源以及如何安裝、設定和使用此元件的詳細資訊，請參閱 [AWS IoT TwinMaker 使用者指南中的 TwinMaker 影片整合](https://docs.aws.amazon.com/iot-twinmaker/latest/guide/video-integration.html)。 *AWS IoT TwinMaker *

**注意**  
Kinesis Video Streams 元件的邊緣連接器僅適用於下列 AWS 區域：  
美國東部 (維吉尼亞北部)
美國西部 (奧勒岡)
歐洲 (法蘭克福)
歐洲 (愛爾蘭)
亞太地區 (新加坡)
亞太地區 (東京)
亞太地區 (首爾)
亞太地區 (悉尼)
亞太地區 (孟買)
中國 (北京)

**Topics**
+ [版本](#kvs-edge-connector-component-versions)
+ [Type](#kvs-edge-connector-component-type)
+ [作業系統](#kvs-edge-connector-component-os-support)
+ [要求](#kvs-edge-connector-component-requirements)
+ [相依性](#kvs-edge-connector-component-dependencies)
+ [Configuration](#kvs-edge-connector-component-configuration)
+ [授權](#kvs-edge-connector-component-licenses)
+ [Usage](#kvs-edge-connector-component-usage)
+ [本機日誌檔案](#kvs-edge-connector-component-log-file)
+ [變更記錄](#kvs-edge-connector-component-changelog)
+ [另請參閱](#kvs-edge-connector-component-see-also)

## 版本
<a name="kvs-edge-connector-component-versions"></a>

此元件具有下列版本：
+ 1.0.x

## Type
<a name="kvs-edge-connector-component-type"></a>

<a name="public-component-type-generic"></a>此<a name="public-component-type-generic-phrase"></a>元件是一般元件 (`aws.greengrass.generic`)。[Greengrass 核](greengrass-nucleus-component.md)會執行元件的生命週期指令碼。

<a name="public-component-type-more-information"></a>如需詳細資訊，請參閱[元件類型](develop-greengrass-components.md#component-types)。

## 作業系統
<a name="kvs-edge-connector-component-os-support"></a>

此元件只能在 Linux 核心裝置上安裝。

## 要求
<a name="kvs-edge-connector-component-requirements"></a>

此元件有下列需求：
+ 您只能將此元件部署至單一核心裝置，因為每個核心裝置的元件組態必須是唯一的。您無法將此元件部署至核心裝置的群組。
+ 核心裝置上已安裝 [GStreamer](https://gstreamer.freedesktop.org) 1.18.4 或更新版本。如需詳細資訊，請參閱[安裝 GStreamer](https://gstreamer.freedesktop.org/documentation/installing/index.html?gi-language=c)。

  在具有 的裝置上`apt`，您可以執行下列命令來安裝 GStreamer。

  ```
  sudo apt install -y libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev gstreamer1.0-plugins-base-apps
  sudo apt install -y gstreamer1.0-libav
  sudo apt install -y gstreamer1.0-plugins-bad gstreamer1.0-plugins-good gstreamer1.0-plugins-ugly gstreamer1.0-tools
  ```
+ 每個核心裝置的 AWS IoT SiteWise 資產。此 AWS IoT SiteWise 資產代表核心裝置。如需如何建立此資產的詳細資訊，請參閱 [AWS IoT TwinMaker 使用者指南中的 TwinMaker 影片整合](https://docs.aws.amazon.com/iot-twinmaker/latest/guide/video-integration.html)。 *AWS IoT TwinMaker *
+ 您連接至每個核心裝置之每個 IP 攝影機的 AWS IoT SiteWise 資產。這些 AWS IoT SiteWise 資產代表將視訊串流到每個核心裝置的攝影機。每個攝影機的資產都必須與連接到攝影機的核心裝置資產相關聯。攝影機資產具有您可以設定的屬性，以指定 Kinesis 影片串流、身分驗證秘密和影片串流參數。如需如何建立和設定攝影機資產的詳細資訊，請參閱《[AWS IoT TwinMaker 使用者指南》中的 TwinMaker 視訊整合](https://docs.aws.amazon.com/iot-twinmaker/latest/guide/video-integration.html)。 *AWS IoT TwinMaker *
+ 每個 IP 攝影機的 AWS Secrets Manager 秘密。此秘密必須定義金鑰/值對，其中金鑰為 `RTSPStreamUrl`，而值為攝影機的 URL。如果攝影機需要身分驗證，請在此 URL 中包含使用者名稱和密碼。您可以在建立此元件所需的資源時，使用指令碼來建立秘密。如需詳細資訊，請參閱[AWS IoT TwinMaker 使用者指南》中的 TwinMaker 視訊整合](https://docs.aws.amazon.com/iot-twinmaker/latest/guide/video-integration.html)。 *AWS IoT TwinMaker *

  您也可以使用 Secrets Manager 主控台和 API 來建立其他秘密。如需詳細資訊，請參閱*AWS Secrets Manager 《 使用者指南*》中的[建立秘密](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_create-basic-secret.html)。
+ [Greengrass 權杖交換角色](device-service-role.md)必須允許下列 AWS Secrets Manager AWS IoT SiteWise和 Kinesis Video Streams 動作，如下列範例 IAM 政策所示。
**注意**  
此範例政策允許裝置取得名為 **IPCamera1Url**和 之秘密的值**IPCamera2Url**。當您設定每個 IP 攝影機時，您可以指定包含該攝影機 URL 的秘密。如果攝影機需要身分驗證，您也可以在 URL 中指定使用者名稱和密碼。核心裝置的字符交換角色必須允許存取每個 IP 攝影機連線的秘密。

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

****  

  ```
  {
    "Version":"2012-10-17",		 	 	 
    "Statement": [
      {
        "Action": [
          "secretsmanager:GetSecretValue"
        ],
        "Effect": "Allow",
        "Resource": [
        "arn:aws:secretsmanager:us-east-1:123456789012:secret:IPCamera1Url",
    "arn:aws:secretsmanager:us-east-1:123456789012:secret:IPCamera2Url"
        ]
      },
      {
        "Action": [
          "iotsitewise:BatchPutAssetPropertyValue",
          "iotsitewise:DescribeAsset",
          "iotsitewise:DescribeAssetModel",
          "iotsitewise:DescribeAssetProperty",
          "iotsitewise:GetAssetPropertyValue",
          "iotsitewise:ListAssetRelationships",
          "iotsitewise:ListAssets",
          "iotsitewise:ListAssociatedAssets",
          "kinesisvideo:CreateStream",
          "kinesisvideo:DescribeStream",
          "kinesisvideo:GetDataEndpoint",
          "kinesisvideo:PutMedia",
          "kinesisvideo:TagStream"
        ],
        "Effect": "Allow",
        "Resource": [
          "*"
        ]
      }
    ]
  }
  ```

------
**注意**  
如果您使用客戶受管 AWS Key Management Service 金鑰來加密秘密，裝置角色也必須允許 `kms:Decrypt`動作。

### 端點和連接埠
<a name="kvs-edge-connector-component-endpoints"></a>

除了基本操作所需的端點和連接埠之外，此元件還必須能夠對下列端點和連接埠執行傳出請求。如需詳細資訊，請參閱[允許透過代理或防火牆的裝置流量](allow-device-traffic.md)。


| Endpoint | 站點 | 必要 | Description | 
| --- | --- | --- | --- | 
|  `kinesisvideo.region.amazonaws.com`  | 443 | 是 |  將資料上傳至 Kinesis Video Streams。  | 
|  `data.iotsitewise.region.amazonaws.com`  | 443 | 是 |  將影片串流中繼資料發佈至 AWS IoT SiteWise。  | 
|  `secretsmanager.region.amazonaws.com`  | 443 | 是 |  將相機 URL 秘密下載至核心裝置。  | 

## 相依性
<a name="kvs-edge-connector-component-dependencies"></a>

當您部署元件時， AWS IoT Greengrass 也會部署其相依性的相容版本。這表示您必須符合元件及其所有相依性的要求，才能成功部署元件。本節列出此元件[發行版本的](#kvs-edge-connector-component-changelog)相依性，以及為每個相依性定義元件版本的語意版本限制。您也可以在 [AWS IoT Greengrass 主控台](https://console.aws.amazon.com//greengrass)中檢視每個版本元件的相依性。在元件詳細資訊頁面上，尋找**相依性**清單。

下表列出此元件 1.0.0 到 1.0.5 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [字符交換服務](token-exchange-service-component.md) | >=2.0.3 | 硬式 | 
| [串流管理員](stream-manager-component.md) | >=2.0.9 | 硬式 | 

如需元件相依性的詳細資訊，請參閱[元件配方參考](component-recipe-reference.md#recipe-reference-component-dependencies)。

## Configuration
<a name="kvs-edge-connector-component-configuration"></a>

此元件提供下列組態參數，您可以在部署元件時自訂這些參數。

`SiteWiseAssetIdForHub`  
代表此核心裝置的 AWS IoT SiteWise 資產 ID。如需如何建立此資產並使用它與此元件互動的詳細資訊，請參閱《[AWS IoT TwinMaker 使用者指南》中的 TwinMaker 視訊整合](https://docs.aws.amazon.com/iot-twinmaker/latest/guide/video-integration.html)。 *AWS IoT TwinMaker *

**Example 範例：組態合併更新**  

```
{
  "SiteWiseAssetIdForHub": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"
}
```

## 授權
<a name="kvs-edge-connector-component-licenses"></a>

此元件包含下列第三方軟體/授權：
+ [Jetson 任務排程器](http://www.quartz-scheduler.org/)/Apache 授權 2.0
+ [GStreamer 1.x / GNU Lesser General Public License v3.0 的 Java 繫結](https://github.com/gstreamer-java/gst1-java-core) 

## Usage
<a name="kvs-edge-connector-component-usage"></a>

若要設定並與此元件互動，您可以在代表核心裝置及其連線之 IP 攝影機的 AWS IoT SiteWise 資產上設定屬性。您也可以透過 AWS IoT TwinMaker 在 Grafana 儀表板中視覺化視訊串流並與之互動。如需詳細資訊，請參閱[AWS IoT TwinMaker 使用者指南》中的 TwinMaker 視訊整合](https://docs.aws.amazon.com/iot-twinmaker/latest/guide/video-integration.html)。 *AWS IoT TwinMaker *

## 本機日誌檔案
<a name="kvs-edge-connector-component-log-file"></a>

此元件使用以下日誌檔案。

```
/greengrass/v2/logs/aws.iot.EdgeConnectorForKVS.log
```

**檢視此元件的日誌**
+ 在核心裝置上執行下列命令，以即時檢視此元件的日誌檔案。`/greengrass/v2` 將 取代為 AWS IoT Greengrass 根資料夾的路徑。

  ```
  sudo tail -f /greengrass/v2/logs/aws.iot.EdgeConnectorForKVS.log
  ```

## 變更記錄
<a name="kvs-edge-connector-component-changelog"></a>

下表說明每個版本元件的變更。


|  **版本**  |  **變更**  | 
| --- | --- | 
|  1.0.5  |  一般錯誤修正與改進。  | 
|  1.0.4  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/kvs-edge-connector-component.html)  | 
|  1.0.3  |  一般錯誤修正與改進。  | 
|  1.0.1  |  一般錯誤修正與改進。  | 
|  1.0.0  |  初始版本。  | 

## 另請參閱
<a name="kvs-edge-connector-component-see-also"></a>
+ [AWS IoT TwinMaker 使用者指南中的什麼是TwinMaker？](https://docs.aws.amazon.com/iot-twinmaker/latest/guide/what-is-twinmaker.html) *AWS IoT TwinMaker *
+ [AWS IoT TwinMaker 使用者指南中的 TwinMaker 影片整合](https://docs.aws.amazon.com/iot-twinmaker/latest/guide/video-integration.html) *AWS IoT TwinMaker *
+ *AWS IoT SiteWise 《 使用者指南*》中的[什麼是 AWS IoT SiteWise？](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/what-is-sitewise.html) 
+ *AWS IoT SiteWise 《 使用者指南*》中的[更新屬性值](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/update-attribute-values.html) 
+ 《AWS Secrets Manager 使用者指南》**中的[什麼是 AWS Secrets Manager？](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html)
+ *AWS Secrets Manager 《 使用者指南*》中的[建立和管理秘密](https://docs.aws.amazon.com/secretsmanager/latest/userguide/managing-secrets.html) 

# Greengrass CLI
<a name="greengrass-cli-component"></a>

Greengrass CLI 元件 (`aws.greengrass.Cli`) 提供本機命令列界面，您可以在核心裝置上用來在本機開發和偵錯元件。例如，Greengrass CLI 可讓您在核心裝置上建立本機部署並重新啟動元件。

您可以在安裝 AWS IoT Greengrass 核心軟體時安裝此元件。如需詳細資訊，請參閱[教學課程：入門 AWS IoT Greengrass V2](getting-started.md)。

**重要**  
 <a name="local-dev-tools-production-environment-warning"></a>我們建議您僅在開發環境中使用此元件，而不是在生產環境中。此元件可讓您存取生產環境中通常不需要的資訊和操作。僅將此元件部署到您需要的核心裝置，以遵循最低權限原則。

安裝此元件之後，請執行下列命令來檢視其說明文件。當此元件安裝時，它會`greengrass-cli`在 `/greengrass/v2/bin` 資料夾中將符號連結新增至 。您可以從此路徑執行 Greengrass CLI，或將其新增至您的`PATH`環境變數，以便在`greengrass-cli`沒有絕對路徑的情況下執行。

------
#### [ Linux or Unix ]

```
/greengrass/v2/bin/greengrass-cli help
```

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

```
C:\greengrass\v2\bin\greengrass-cli help
```

------

例如`com.example.HelloWorld`，下列命令會重新啟動名為 的元件。

------
#### [ Linux or Unix ]

```
sudo /greengrass/v2/bin/greengrass-cli component restart --names "com.example.HelloWorld"
```

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

```
C:\greengrass\v2\bin\greengrass-cli component restart --names "com.example.HelloWorld"
```

------

如需詳細資訊，請參閱[Greengrass 命令列界面](gg-cli.md)。

**Topics**
+ [版本](#greengrass-cli-component-versions)
+ [Type](#greengrass-cli-component-type)
+ [作業系統](#greengrass-cli-component-os-support)
+ [要求](#greengrass-cli-component-requirements)
+ [相依性](#greengrass-cli-component-dependencies)
+ [Configuration](#greengrass-cli-component-configuration)
+ [本機日誌檔案](#greengrass-cli-component-log-file)
+ [變更記錄](#greengrass-cli-component-changelog)

## 版本
<a name="greengrass-cli-component-versions"></a>

此元件具有下列版本：
+ 2.16.x
+ 2.15.x
+ 2.14.x
+ 2.13.x
+ 2.12.x
+ 2.11.x
+ 2.10.x
+ 2.9.x
+ 2.8.x
+ 2.7.x
+ 2.6.x
+ 2.5.x
+ 2.4.x 版本
+ 2.3.x 版本
+ 2.2.x 版本
+ 2.1.x
+ 2.0.x

## Type
<a name="greengrass-cli-component-type"></a>

<a name="public-component-type-plugin-para1"></a>此元件是外掛程式元件 (`aws.greengrass.plugin`)。[Greengrass 核會在](greengrass-nucleus-component.md)與核相同的 Java 虛擬機器 (JVM) 中執行此元件。當您在核心裝置上變更此元件的版本時，核心會重新啟動。

<a name="public-component-type-plugin-para2"></a>此元件使用與 Greengrass 核相同的日誌檔案。如需詳細資訊，請參閱[監控 AWS IoT Greengrass 日誌](monitor-logs.md)。

<a name="public-component-type-more-information"></a>如需詳細資訊，請參閱[元件類型](develop-greengrass-components.md#component-types)。

## 作業系統
<a name="greengrass-cli-component-os-support"></a>

此元件可以安裝在執行下列作業系統的核心裝置上：
+ Linux
+ Windows

## 要求
<a name="greengrass-cli-component-requirements"></a>

此元件有下列需求：
+ <a name="greengrass-cli-authorization-requirement"></a>您必須獲得使用 Greengrass CLI 與 AWS IoT Greengrass Core 軟體互動的授權。執行下列其中一項操作以使用 Greengrass CLI：
  + 使用執行 AWS IoT Greengrass Core 軟體的系統使用者。
  + 使用具有根或管理許可的使用者。在 Linux 核心裝置上，您可以使用 `sudo` 來取得根許可。
  + 當您部署元件時，請使用您在 `AuthorizedPosixGroups`或 `AuthorizedWindowsGroups`組態參數中指定的群組中的系統使用者。如需詳細資訊，請參閱 [Greengrass CLI 元件組態](#greengrass-cli-component-configuration)。
+ Greengrass CLI 元件支援在 VPC 中執行。

## 相依性
<a name="greengrass-cli-component-dependencies"></a>

當您部署元件時， AWS IoT Greengrass 也會部署其相依性的相容版本。這表示您必須符合元件及其所有相依性的要求，才能成功部署元件。本節列出此元件[發行版本的](#greengrass-cli-component-changelog)相依性，以及為每個相依性定義元件版本的語意版本限制。您也可以在 [AWS IoT Greengrass 主控台](https://console.aws.amazon.com//greengrass)中檢視每個版本元件的相依性。在元件詳細資訊頁面上，尋找**相依性**清單。

------
#### [ 2.16.0 ]

下表列出此元件 2.16.0 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.12.0 <2.17.0 | 軟式 | 

------
#### [ 2.15.1 ]

下表列出此元件 2.15.1 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.12.0 <2.16.0 | 軟式 | 

------
#### [ 2.15.0 ]

下表列出此元件 2.15.0 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.12.0 <2.16.0 | 軟式 | 

------
#### [ 2.14.0 – 2.14.3 ]

下表列出此元件 2.14.0 和 2.14.3 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.12.0 <2.15.0 | 軟式 | 

------
#### [ 2.13.0 ]

下表列出此元件 2.13.0 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.12.0 <2.14.0 | 軟式 | 

------
#### [ 2.12.0 – 2.12.6 ]

下表列出此元件 2.12.0 至 2.12.6 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.12.0 <2.13.0 | 軟式 | 

------
#### [ 2.11.0 – 2.11.3 ]

下表列出此元件 2.11.0 到 2.11.3 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.11.0 <2.12.0 | 軟式 | 

------
#### [ 2.10.0 – 2.10.3 ]

下表列出此元件 2.10.0 到 2.10.3 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.5.0 <2.11.0 | 軟式 | 

------
#### [ 2.9.0 – 2.9.6 ]

下表列出此元件 2.9.0 到 2.9.6 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.5.0 <2.10.0 | 軟式 | 

------
#### [ 2.8.0 – 2.8.1 ]

下表列出此元件 2.8.0 和 2.8.1 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.5.0 <2.9.0 | 軟式 | 

------
#### [ 2.7.0 ]

下表列出此元件 2.7.0 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.5.0 <2.8.0 | 軟式 | 

------
#### [ 2.6.0 ]

下表列出此元件 2.6.0 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.5.0 <2.7.0 | 軟式 | 

------
#### [ 2.5.0 – 2.5.6 ]

下表列出此元件 2.5.0 到 2.5.6 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.5.0 <2.6.0 | 軟式 | 

------
#### [ 2.4.0 ]

下表列出此元件 2.4.0 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.1.0 <2.5.0 | 軟式 | 

------
#### [ 2.3.0 ]

下表列出此元件 2.3.0 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.1.0 <2.4.0 | 軟式 | 

------
#### [ 2.2.0 ]

下表列出此元件 2.2.0 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.1.0 <2.3.0 | 軟式 | 

------
#### [ 2.1.0 ]

下表列出此元件 2.1.0 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.1.0 <2.2.0 | 軟式 | 

------
#### [ 2.0.x ]

下表列出此元件 2.0.x 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.1.0 | 軟式 | 

**注意**  
Greengrass 核的最低相容版本對應至 Greengrass CLI 元件的修補程式版本。

------

如需元件相依性的詳細資訊，請參閱[元件配方參考](component-recipe-reference.md#recipe-reference-component-dependencies)。

## Configuration
<a name="greengrass-cli-component-configuration"></a>

此元件提供下列組態參數，您可以在部署元件時自訂這些參數。

------
#### [ 2.5.x - 2.14.x ]

`AuthorizedPosixGroups`  <a name="greengrass-cli-component-configuration-authorizedposixgroups"></a>
（選用） 字串，其中包含以逗號分隔的系統群組清單。您授權這些系統群組使用 Greengrass CLI 與 AWS IoT Greengrass Core 軟體互動。您可以指定群組名稱或群組 IDs。例如， 會`group1,1002,group3`授權三個系統群組 (`group1`、 `1002`和 `group3`) 使用 Greengrass CLI。  
如果您未指定任何要授權的群組，則可以使用 Greengrass CLI 做為根使用者 (`sudo`) 或執行 AWS IoT Greengrass Core 軟體的系統使用者。

`AuthorizedWindowsGroups`  <a name="greengrass-cli-component-configuration-authorizedwindowsgroups"></a>
（選用） 字串，其中包含以逗號分隔的系統群組清單。您授權這些系統群組使用 Greengrass CLI 與 AWS IoT Greengrass Core 軟體互動。您可以指定群組名稱或群組 IDs。例如， 會`group1,1002,group3`授權三個系統群組 (`group1`、 `1002`和 `group3`) 使用 Greengrass CLI。  
如果您未指定任何要授權的群組，則可以使用 Greengrass CLI 做為管理員或執行 AWS IoT Greengrass Core 軟體的系統使用者。

**Example 範例：組態合併更新**  
下列範例組態指定 授權三個 POSIX 系統群組 (`group1`、 和 `group3`) `1002`和兩個 Windows 使用者群組 (`Device Operators` 和 `QA Engineers`) 使用 Greengrass CLI。  

```
{
  "AuthorizedPosixGroups": "group1,1002,group3",
  "AuthorizedWindowsGroups": "Device Operators,QA Engineers"
}
```

------
#### [ 2.4.x - 2.0.x ]

`AuthorizedPosixGroups`  <a name="greengrass-cli-component-configuration-authorizedposixgroups"></a>
（選用） 字串，其中包含以逗號分隔的系統群組清單。您授權這些系統群組使用 Greengrass CLI 與 AWS IoT Greengrass Core 軟體互動。您可以指定群組名稱或群組 IDs。例如， 會`group1,1002,group3`授權三個系統群組 (`group1`、 `1002`和 `group3`) 使用 Greengrass CLI。  
如果您未指定任何要授權的群組，則可以使用 Greengrass CLI 做為根使用者 (`sudo`) 或執行 AWS IoT Greengrass Core 軟體的系統使用者。

**Example 範例：組態合併更新**  
下列範例組態指定 授權三個系統群組 (`group1`、 `1002`和 `group3`) 使用 Greengrass CLI。  

```
{
  "AuthorizedPosixGroups": "group1,1002,group3"
}
```

------

## 本機日誌檔案
<a name="greengrass-cli-component-log-file"></a>

此元件使用與 [Greengrass 核](greengrass-nucleus-component.md)元件相同的日誌檔案。

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

```
/greengrass/v2/logs/greengrass.log
```

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

```
C:\greengrass\v2\logs\greengrass.log
```

------

**檢視此元件的日誌**
+ 在核心裝置上執行下列命令，以即時檢視此元件的日誌檔案。將 `/greengrass/v2`或 *C：\$1greengrass\$1v2* 取代為 AWS IoT Greengrass 根資料夾的路徑。

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

  ```
  sudo tail -f /greengrass/v2/logs/greengrass.log
  ```

------
#### [ Windows (PowerShell) ]

  ```
  Get-Content C:\greengrass\v2\logs\greengrass.log -Tail 10 -Wait
  ```

------

## 變更記錄
<a name="greengrass-cli-component-changelog"></a>

下表說明每個版本元件的變更。


|  **版本**  |  **變更**  | 
| --- | --- | 
|  2.16.1  |  針對 Greengrass nucleus 2.16.1 版更新版本。  | 
|  2.16.0  |  針對 Greengrass nucleus 2.16.0 版更新版本。  | 
|  2.15.1  |  針對 Greengrass nucleus 2.15.1 版更新版本。  | 
|  2.15.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/greengrass-cli-component.html)  | 
|  2.14.3  |  針對 Greengrass nucleus 2.14.3 版更新版本。  | 
|  2.14.2  |  針對 Greengrass nucleus 2.14.2 版更新版本。  | 
|  2.14.1  |  針對 Greengrass nucleus 2.14.1 版更新版本。  | 
|  2.14.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/greengrass-cli-component.html)  | 
|  2.13.0  |  針對 Greengrass nucleus 2.13.0 版更新版本。  | 
|  2.12.6  |  針對 Greengrass nucleus 2.12.6 版更新版本。  | 
|  2.12.5  |  針對 Greengrass nucleus 2.12.5 版更新版本。  | 
|  2.12.4  |  針對 Greengrass nucleus 2.12.4 版更新版本。  | 
|  2.12.3  |   此版本不再可用。此版本的改善功能可在此元件的較新版本中使用。  針對 Greengrass nucleus 2.12.3 版更新版本。  | 
|  2.12.2  |  針對 Greengrass nucleus 2.12.2 版更新版本。  | 
|  2.12.1  |  針對 Greengrass nucleus 2.12.1 版更新版本。  | 
|  2.12.0  |  針對 Greengrass nucleus 2.12.0 版更新版本。  | 
|  2.11.3  |  針對 Greengrass nucleus 2.11.3 版更新版本。  | 
|  2.11.2  |  針對 Greengrass nucleus 2.11.2 版更新版本。  | 
|  2.11.1  |  針對 Greengrass nucleus 2.11.1 版更新版本。  | 
|  2.11.0  |  <a name="changelog-cli-2.11.0"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/greengrass-cli-component.html)  | 
|  2.10.3  |  針對 Greengrass nucleus 2.10.3 版更新版本。  | 
|  2.10.2  |  針對 Greengrass nucleus 2.10.2 版更新版本。  | 
|  2.10.1  |  針對 Greengrass nucleus 2.10.1 版更新版本。  | 
|  2.10.0  |  針對 Greengrass nucleus 2.10.0 版更新版本。  | 
|  2.9.6  |  針對 Greengrass nucleus 2.9.6 版更新版本。  | 
|  2.9.5  |  針對 Greengrass nucleus 2.9.5 版更新版本。  | 
|  2.9.4  |  針對 Greengrass nucleus 2.9.4 版更新版本。  | 
|  2.9.3  |  針對 Greengrass nucleus 2.9.3 版更新版本。  | 
|  2.9.2  |  針對 Greengrass nucleus 2.9.2 版更新版本。  | 
|  2.9.1  |  針對 Greengrass nucleus 2.9.1 版更新版本。  | 
|  2.9.0  | 針對 Greengrass nucleus 2.9.0 版更新版本。 | 
|  2.8.1  |  針對 Greengrass nucleus 2.8.1 版更新版本。  | 
|  2.8.0  | 針對 Greengrass nucleus 2.8.0 版更新版本。 | 
|  2.7.0  |  針對 Greengrass nucleus 2.7.0 版更新版本。  | 
|  2.6.0  |  <a name="changelog-greengrass-cli-2.6.0"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/greengrass-cli-component.html)  | 
|  2.5.6  |  針對 Greengrass nucleus 2.5.6 版更新版本。  | 
|  2.5.5  |  針對 Greengrass nucleus 2.5.5 版更新版本。  | 
|  2.5.4  |  針對 Greengrass nucleus 2.5.4 版更新版本。  | 
|  2.5.3  |  針對 Greengrass nucleus 2.5.3 版更新版本。  | 
|  2.5.2  |  針對 Greengrass nucleus 2.5.2 版更新版本。  | 
|  2.5.1  |  針對 Greengrass nucleus 2.5.1 版更新版本。  | 
|  2.5.0  |  <a name="changelog-greengrass-cli-2.5.0"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/greengrass-cli-component.html)  | 
|  2.4.0  |  <a name="changelog-greengrass-cli-2.4.0"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/greengrass-cli-component.html)  | 
|  2.3.0  |  針對 Greengrass nucleus 2.3.0 版更新版本。  | 
|  2.2.0  |  針對 Greengrass nucleus 2.2.0 版更新版本。  | 
|  2.1.0  |  針對 Greengrass nucleus 2.1.0 版更新版本。  | 
|  2.0.5  | 針對 Greengrass nucleus 2.0.5 版更新版本。 | 
|  2.0.4  | 針對 Greengrass nucleus 2.0.4 版更新版本。 | 
|  2.0.3  |  初始版本。  | 

# IP 偵測器
<a name="ip-detector-component"></a>

IP 偵測器元件 (`aws.greengrass.clientdevices.IPDetector`) 會執行下列動作：
+ 監控 Greengrass 核心裝置的網路連線資訊。此資訊包括核心裝置的網路端點，以及 MQTT 代理程式操作所在的連接埠。
+ 更新 AWS IoT Greengrass 雲端服務中核心裝置的連線資訊。

用戶端裝置可以使用 Greengrass 雲端探索來擷取相關聯的核心裝置的連線資訊。然後，用戶端裝置可以嘗試連線到每個核心裝置，直到成功連線為止。

**注意**  <a name="client-device-component-context"></a>
用戶端裝置是連線至 Greengrass 核心裝置的本機 IoT 裝置，用於傳送 MQTT 訊息和要處理的資料。如需詳細資訊，請參閱[與本機 IoT 裝置互動](interact-with-local-iot-devices.md)。

IP 偵測器元件會將核心裝置的現有連線資訊取代為其偵測到的資訊。由於此元件會移除現有資訊，您可以使用 IP 偵測器元件，或手動管理連線資訊。

**Topics**
+ [版本](#ip-detector-component-versions)
+ [類型](#ip-detector-component-type)
+ [作業系統](#ip-detector-component-os-support)
+ [要求](#ip-detector-component-requirements)
+ [相依性](#ip-detector-component-dependencies)
+ [Configuration](#ip-detector-component-configuration)
+ [本機日誌檔案](#ip-detector-component-log-file)
+ [變更記錄](#ip-detector-component-changelog)

## 版本
<a name="ip-detector-component-versions"></a>

此元件具有下列版本：
+ 2.2.x 版本
+ 2.1.x
+ 2.0.x

## 類型
<a name="ip-detector-component-type"></a>

<a name="public-component-type-plugin-para1"></a>此元件是外掛程式元件 (`aws.greengrass.plugin`)。[Greengrass 核心](greengrass-nucleus-component.md)會在與核心相同的 Java 虛擬機器 (JVM) 中執行此元件。當您在核心裝置上變更此元件的版本時，核心會重新啟動。

<a name="public-component-type-plugin-para2"></a>此元件使用與 Greengrass 核相同的日誌檔案。如需詳細資訊，請參閱[監控 AWS IoT Greengrass 日誌](monitor-logs.md)。

<a name="public-component-type-more-information"></a>如需詳細資訊，請參閱[元件類型](develop-greengrass-components.md#component-types)。

## 作業系統
<a name="ip-detector-component-os-support"></a>

此元件可以安裝在執行下列作業系統的核心裝置上：
+ Linux
+ Windows

## 要求
<a name="ip-detector-component-requirements"></a>

此元件有下列需求：
+ [Greengrass 服務角色](greengrass-service-role.md)必須與您的 相關聯， AWS 帳戶 並允許 `iot:GetThingShadow`和 `iot:UpdateThingShadow`許可。
+ 核心裝置的 AWS IoT 政策必須允許 `greengrass:UpdateConnectivityInfo`許可。如需詳細資訊，請參閱[AWS IoT 資料平面操作的 政策](device-auth.md#iot-policies)及[支援用戶端裝置的最低 AWS IoT 政策](device-auth.md#client-device-support-minimal-iot-policy)。
+ 如果您將核心裝置的 MQTT 代理程式元件設定為使用預設連接埠 8883 以外的連接埠，則必須使用 IP 偵測器 v2.1.0 或更新版本。將其設定為報告代理程式操作所在的連接埠。
+ 如果您有複雜的網路設定，IP 偵測器元件可能無法識別用戶端裝置可以連線到核心裝置的端點。如果 IP 偵測器元件無法管理端點，您必須改為手動管理核心裝置端點。例如，如果核心裝置位於轉送 MQTT 代理程式連接埠的路由器後方，您必須將路由器的 IP 地址指定為核心裝置的端點。如需詳細資訊，請參閱[管理核心裝置端點](manage-core-device-endpoints.md)。
+ IP 偵測器元件支援在 VPC 中執行。

## 相依性
<a name="ip-detector-component-dependencies"></a>

當您部署元件時， AWS IoT Greengrass 也會部署其相依性的相容版本。這表示您必須符合元件及其所有相依性的要求，才能成功部署元件。本節列出此元件[發行版本的](#ip-detector-component-changelog)相依性，以及為每個相依性定義元件版本的語意版本限制。您也可以在 [AWS IoT Greengrass 主控台](https://console.aws.amazon.com//greengrass)中檢視每個版本元件的相依性。在元件詳細資訊頁面上，尋找**相依性**清單。

------
#### [ 2.2.3 ]

下表列出此元件 2.2.3 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.2.0 <2.17.0 | 軟式 | 

------
#### [ 2.2.2 ]

下表列出此元件 2.2.2 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.2.0 <2.16.0 | 軟式 | 

------
#### [ 2.2.1 ]

下表列出此元件 2.2.1 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.2.0 <2.15.0 | 軟式 | 

------
#### [ 2.2.0 ]

下表列出此元件 2.2.0 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.2.0 <2.14.0 | 軟式 | 

------
#### [ 2.1.8 – 2.1.9 ]

下表列出此元件 2.1.8 和 2.1.9 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.2.0 <2.13.0 | 軟式 | 

------
#### [ 2.1.7 ]

下表列出此元件 2.1.7 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.2.0 <2.12.0 | 軟式 | 

------
#### [ 2.1.6 ]

下表列出此元件 2.1.6 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.2.0 <2.11.0 | 軟式 | 

------
#### [ 2.1.5 ]

下表列出此元件 2.1.5 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.2.0 <2.10.0 | 軟式 | 

------
#### [ 2.1.4 ]

下表列出此元件 2.1.4 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.2.0 <2.9.0 | 軟式 | 

------
#### [ 2.1.3 ]

下表列出此元件 2.1.3 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.2.0 <2.8.0 | 軟式 | 

------
#### [ 2.1.2 ]

下表列出此元件 2.1.2 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.2.0 <2.7.0 | 軟式 | 

------
#### [ 2.1.1 ]

下表列出此元件 2.1.1 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.2.0 <2.6.0 | 軟式 | 

------
#### [ 2.1.0 and 2.0.2 ]

下表列出此元件 2.1.0 和 2.0.2 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.2.0 <2.5.0 | 軟式 | 

------
#### [ 2.0.1 ]

下表列出此元件 2.0.1 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.2.0 <2.4.0 | 軟式 | 

------
#### [ 2.0.0 ]

下表列出此元件 2.0.0 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.2.0 <2.3.0 | 軟式 | 

------

如需元件相依性的詳細資訊，請參閱[元件配方參考](component-recipe-reference.md#recipe-reference-component-dependencies)。

## Configuration
<a name="ip-detector-component-configuration"></a>

此元件提供下列組態參數，您可以在部署元件時自訂這些參數。

------
#### [ 2.2.x ]

`defaultPort`  <a name="ip-detector-component-configuration-default-port"></a>
<a name="ip-detector-component-configuration-default-port-definition"></a>（選用） 此元件偵測到 IP 地址時要報告的 MQTT 代理程式連接埠。如果您將 MQTT 代理程式設定為使用與預設連接埠 8883 不同的連接埠，則必須指定此參數。  
預設：`8883`

`includeIPv4LoopbackAddrs`  <a name="ip-detector-component-configuration-include-ipv4-loopback-addrs"></a>
<a name="ip-detector-component-configuration-include-ipv4-loopback-addrs-definition"></a>（選用） 您可以啟用此選項來偵測和報告 IPv4 回送地址。這些是 IP 地址，例如 `localhost`，裝置可以自行通訊。在核心裝置和用戶端裝置在相同系統上執行的測試環境中使用此選項。  
預設：`false`

`includeIPv4LinkLocalAddrs`  <a name="ip-detector-component-configuration-include-ipv4-link-local-addrs"></a>
<a name="ip-detector-component-configuration-include-ipv4-link-local-addrs-definition"></a>（選用） 您可以啟用此選項來偵測和報告 IPv4 [連結本機地址](https://en.wikipedia.org/wiki/Link-local_address)。如果核心裝置的網路沒有動態主機組態協定 (DHCP) 或靜態指派的 IP 地址，請使用此選項。  
預設：`false`

`includeIPv6LoopbackAddrs`  <a name="ip-detector-component-configuration-include-ipv6-loopback-addrs"></a>
<a name="ip-detector-component-configuration-include-ipv6-loopback-addrs-definition"></a>（選用） 您可以啟用此選項來偵測和報告 IPv6 回送地址。這些是 IP 地址，例如 `localhost`，裝置可以自行通訊。在核心裝置和用戶端裝置在相同系統上執行的測試環境中使用此選項。您必須將 `includeIPv4Addrs` 設定為 `false`，並將 `includeIPv6Addrs` 設定為 `true`，才能使用此選項。  
預設：`false`

`includeIPv6LinkLocalAddrs`  <a name="ip-detector-component-configuration-include-ipv6-link-local-addrs"></a>
<a name="ip-detector-component-configuration-include-ipv6-link-local-addrs-definition"></a>（選用） 您可以啟用此選項來偵測和報告 IPv6 [連結本機地址](https://en.wikipedia.org/wiki/Link-local_address)。如果核心裝置的網路沒有動態主機組態通訊協定 (DHCP) 或靜態指派的 IP 地址，請使用此選項。您必須將 `includeIPv4Addrs` 設定為 `false`，並將 `includeIPv6Addrs` 設定為 `true`，才能使用此選項。  
預設：`false`

`includeIPv4Addrs`  <a name="ip-detector-component-configuration-include-ipv4-addrs"></a>
<a name="ip-detector-component-configuration-include-ipv4-addrs-definition"></a>（選用） 預設值設為 `true`。您可以啟用此選項來發佈核心裝置上找到的 IPv4 地址。  
預設：`true`

`includeIPv6Addrs`  <a name="ip-detector-component-configuration-include-ipv6-addrs"></a>
<a name="ip-detector-component-configuration-include-ipv6-addrs-definition"></a>（選用） 您可以啟用此選項來發佈核心裝置上找到的 IPv6 地址。`includeIPv4Addrs`設定為 `false` 以使用此選項。  
預設：`false`

------
#### [ 2.1.x ]

`defaultPort`  <a name="ip-detector-component-configuration-default-port"></a>
<a name="ip-detector-component-configuration-default-port-definition"></a>（選用） 此元件偵測到 IP 地址時要報告的 MQTT 代理程式連接埠。如果您將 MQTT 代理程式設定為使用與預設連接埠 8883 不同的連接埠，則必須指定此參數。  
預設：`8883`

`includeIPv4LoopbackAddrs`  <a name="ip-detector-component-configuration-include-ipv4-loopback-addrs"></a>
<a name="ip-detector-component-configuration-include-ipv4-loopback-addrs-definition"></a>（選用） 您可以啟用此選項來偵測和報告 IPv4 回送地址。這些是 IP 地址，例如 `localhost`，裝置可以自行通訊。在核心裝置和用戶端裝置在相同系統上執行的測試環境中使用此選項。  
預設：`false`

`includeIPv4LinkLocalAddrs`  <a name="ip-detector-component-configuration-include-ipv4-link-local-addrs"></a>
<a name="ip-detector-component-configuration-include-ipv4-link-local-addrs-definition"></a>（選用） 您可以啟用此選項來偵測和報告 IPv4 [連結本機地址](https://en.wikipedia.org/wiki/Link-local_address)。如果核心裝置的網路沒有動態主機組態協定 (DHCP) 或靜態指派的 IP 地址，請使用此選項。  
預設：`false`

------
#### [ 2.0.x ]

`includeIPv4LoopbackAddrs`  <a name="ip-detector-component-configuration-include-ipv4-loopback-addrs"></a>
<a name="ip-detector-component-configuration-include-ipv4-loopback-addrs-definition"></a>（選用） 您可以啟用此選項來偵測和報告 IPv4 回送地址。這些是 IP 地址，例如 `localhost`，裝置可以自行通訊。在核心裝置和用戶端裝置在相同系統上執行的測試環境中使用此選項。  
預設：`false`

`includeIPv4LinkLocalAddrs`  <a name="ip-detector-component-configuration-include-ipv4-link-local-addrs"></a>
<a name="ip-detector-component-configuration-include-ipv4-link-local-addrs-definition"></a>（選用） 您可以啟用此選項來偵測和報告 IPv4 [連結本機地址](https://en.wikipedia.org/wiki/Link-local_address)。如果核心裝置的網路沒有動態主機組態協定 (DHCP) 或靜態指派的 IP 地址，請使用此選項。  
預設：`false`

------

## 本機日誌檔案
<a name="ip-detector-component-log-file"></a>

此元件使用與 [Greengrass 核](greengrass-nucleus-component.md)元件相同的日誌檔案。

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

```
/greengrass/v2/logs/greengrass.log
```

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

```
C:\greengrass\v2\logs\greengrass.log
```

------

**檢視此元件的日誌**
+ 在核心裝置上執行下列命令，以即時檢視此元件的日誌檔案。將 `/greengrass/v2`或 *C：\$1greengrass\$1v2* 取代為 AWS IoT Greengrass 根資料夾的路徑。

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

  ```
  sudo tail -f /greengrass/v2/logs/greengrass.log
  ```

------
#### [ Windows (PowerShell) ]

  ```
  Get-Content C:\greengrass\v2\logs\greengrass.log -Tail 10 -Wait
  ```

------

## 變更記錄
<a name="ip-detector-component-changelog"></a>

下表說明每個版本元件的變更。


|  **版本**  |  **變更**  | 
| --- | --- | 
|  2.2.3  |  針對 Greengrass nucleus 2.16.0 版更新版本。  | 
|  2.2.2  | 針對 Greengrass nucleus 2.15.0 版更新版本。 | 
|  2.2.1  | 針對 Greengrass nucleus 2.14.0 版更新版本。 | 
|  2.2.0  | 針對 Greengrass nucleus 2.13.0 版更新版本。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/ip-detector-component.html)  | 
|  2.1.9  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/ip-detector-component.html)  | 
|  2.1.8  | 針對 Greengrass nucleus 2.12.0 版更新版本。 | 
|  2.1.7  | 針對 Greengrass nucleus 2.11.0 版更新版本。 | 
|  2.1.6  | 針對 Greengrass nucleus 2.10.0 版更新版本。 | 
|  2.1.5  | 針對 Greengrass nucleus 2.9.0 版更新版本。 | 
|  2.1.4  | 針對 Greengrass nucleus 2.8.0 版更新版本。 | 
|  2.1.3  |  針對 Greengrass nucleus 2.7.0 版更新版本。  | 
|  2.1.2  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/ip-detector-component.html)  | 
|  2.1.1  |  針對 Greengrass nucleus 2.5.0 版更新版本。  | 
|  2.1.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/ip-detector-component.html)  | 
|  2.0.2  |  針對 Greengrass nucleus 2.4.0 版更新版本。  | 
|  2.0.1  |  針對 Greengrass nucleus 2.3.0 版更新版本。  | 
|  2.0.0  |  初始版本。  | 

# Firehose
<a name="kinesis-firehose-component"></a>

Firehose 元件 (`aws.greengrass.KinesisFirehose`) 透過 Amazon Data Firehose 交付串流發佈資料到目的地，例如 Amazon S3、Amazon Redshift 和 Amazon OpenSearch Service。如需詳細資訊，請參閱《[Amazon Data Firehose 開發人員指南》中的什麼是](https://docs.aws.amazon.com/firehose/latest/dev/what-is-this-service.html) *Amazon Data Firehose*？。

若要使用此元件發佈至 Kinesis 交付串流，請將訊息發佈至此元件訂閱的主題。根據預設，此元件會訂閱 `kinesisfirehose/message`和`kinesisfirehose/message/binary/#`[本機發佈/訂閱](ipc-publish-subscribe.md)主題。您可以在部署此元件時指定其他主題，包括 AWS IoT Core MQTT 主題。

**注意**  
此元件提供與 Firehose 連接器 in AWS IoT Greengrass V1 類似的功能。如需詳細資訊，請參閱《*AWS IoT Greengrass V1 開發人員指南*》中的 [Firehose 連接器](https://docs.aws.amazon.com/greengrass/latest/developerguide/kinesis-firehose-connector.html)。

**Topics**
+ [版本](#kinesis-firehose-component-versions)
+ [Type](#kinesis-firehose-component-type)
+ [作業系統](#kinesis-firehose-component-os-support)
+ [要求](#kinesis-firehose-component-requirements)
+ [相依性](#kinesis-firehose-component-dependencies)
+ [Configuration](#kinesis-firehose-component-configuration)
+ [輸入資料](#kinesis-firehose-component-input-data)
+ [輸出資料](#kinesis-firehose-component-output-data)
+ [本機日誌檔案](#kinesis-firehose-component-log-file)
+ [授權](#kinesis-firehose-component-licenses)
+ [變更記錄](#kinesis-firehose-component-changelog)
+ [另請參閱](#kinesis-firehose-component-see-also)

## 版本
<a name="kinesis-firehose-component-versions"></a>

此元件具有下列版本：
+ 2.1.x
+ 2.0.x

## Type
<a name="kinesis-firehose-component-type"></a>

<a name="public-component-type-lambda"></a>此<a name="public-component-type-lambda-phrase"></a>元件是 Lambda 元件 (`aws.greengrass.lambda`)。[Greengrass 核](greengrass-nucleus-component.md)會使用 Lambda [啟動器元件執行此元件的 Lambda](lambda-launcher-component.md) 函數。

<a name="public-component-type-more-information"></a>如需詳細資訊，請參閱[元件類型](develop-greengrass-components.md#component-types)。

## 作業系統
<a name="kinesis-firehose-component-os-support"></a>

此元件只能在 Linux 核心裝置上安裝。

## 要求
<a name="kinesis-firehose-component-requirements"></a>

此元件有下列需求：
+ <a name="core-device-lambda-function-requirements"></a>您的核心裝置必須符合執行 Lambda 函數的要求。如果您希望核心裝置執行容器化 Lambda 函數，則裝置必須符合執行此作業的要求。如需詳細資訊，請參閱[Lambda 函數需求](setting-up.md#greengrass-v2-lambda-requirements)。
+ <a name="public-component-python3-requirement"></a>安裝在核心裝置上並新增至 PATH 環境變數的 [Python](https://www.python.org/) 3.7 版。
+ [Greengrass 裝置角色](device-service-role.md)必須允許 `firehose:PutRecord`和 `firehose:PutRecordBatch`動作，如下列範例 IAM 政策所示。

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

****  

  ```
  {
    "Version":"2012-10-17",		 	 	 
    "Statement": [
      {
        "Action": [
          "firehose:PutRecord",
          "firehose:PutRecordBatch"
        ],
        "Effect": "Allow",
        "Resource": [
          "arn:aws:firehose:us-east-1:123456789012:deliverystream/stream-name"
        ]
      }
    ]
  }
  ```

------

  您可以動態覆寫此元件輸入訊息承載中的預設交付串流。如果您的應用程式使用此功能，IAM 政策必須包含所有目標串流做為資源。您可以為資源授予精細或條件式存取 (例如，使用萬用字元 `*` 命名機制)。
+ <a name="connector-component-legacy-subscription-router-dependency"></a>若要從此元件接收輸出資料，您必須在部署此元件時合併[舊版訂閱路由器元件](legacy-subscription-router-component.md) (`aws.greengrass.LegacySubscriptionRouter`) 的下列組態更新。此組態會指定此元件發佈回應的主題。

------
#### [ Legacy subscription router v2.1.x ]

  ```
  {
    "subscriptions": {
      "aws-greengrass-kinesisfirehose": {
        "id": "aws-greengrass-kinesisfirehose",
        "source": "component:aws.greengrass.KinesisFirehose",
        "subject": "kinesisfirehose/message/status",
        "target": "cloud"
      }
    }
  }
  ```

------
#### [ Legacy subscription router v2.0.x ]

  ```
  {
    "subscriptions": {
      "aws-greengrass-kinesisfirehose": {
        "id": "aws-greengrass-kinesisfirehose",
        "source": "arn:aws:lambda:region:aws:function:aws-greengrass-kinesisfirehose:version",
        "subject": "kinesisfirehose/message/status",
        "target": "cloud"
      }
    }
  }
  ```<a name="connector-component-legacy-subscription-router-dependency-replace"></a>
  + 以您使用 AWS 區域 的 取代*區域*。
  + ** 以此元件執行的 Lambda 函數版本取代 版本。若要尋找 Lambda 函數版本，您必須檢視要部署之此元件版本的配方。在[AWS IoT Greengrass 主控台](https://console.aws.amazon.com//greengrass)中開啟此元件的詳細資訊頁面，並尋找 **Lambda 函數**鍵值對。此鍵/值對包含 Lambda 函數的名稱和版本。

**重要**  <a name="connector-component-legacy-subscription-router-dependency-note"></a>
每次部署此元件時，都必須更新舊版訂閱路由器上的 Lambda 函數版本。這可確保針對您部署的元件版本使用正確的 Lambda 函數版本。

------

  <a name="connector-component-create-deployments"></a>如需詳細資訊，請參閱[建立部署](create-deployments.md)。
+ Firehose 元件支援在 VPC 中執行。若要在 VPC 中部署此元件，需要下列項目。
  + Firehose 元件必須具有`firehose.region.amazonaws.com`具有 VPC 端點 的連線`com.amazonaws.region.kinesis-firehose`能力。

### 端點和連接埠
<a name="kinesis-firehose-component-endpoints"></a>

除了基本操作所需的端點和連接埠之外，此元件還必須能夠對下列端點和連接埠執行傳出請求。如需詳細資訊，請參閱[允許透過代理或防火牆的裝置流量](allow-device-traffic.md)。


| Endpoint | 站點 | 必要 | Description | 
| --- | --- | --- | --- | 
|  `firehose.region.amazonaws.com`  | 443 | 是 |  將資料上傳至 Firehose。  | 

## 相依性
<a name="kinesis-firehose-component-dependencies"></a>

當您部署元件時， AWS IoT Greengrass 也會部署其相依性的相容版本。這表示您必須符合元件及其所有相依性的要求，才能成功部署元件。本節列出此元件[發行版本的](#kinesis-firehose-component-changelog)相依性，以及為每個相依性定義元件版本的語意版本限制。您也可以在 [AWS IoT Greengrass 主控台](https://console.aws.amazon.com//greengrass)中檢視每個版本元件的相依性。在元件詳細資訊頁面上，尋找**相依性**清單。

------
#### [ 2.1.10 ]

下表列出此元件 2.1.10 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.16.0  | 硬式 | 
| [Lambda 啟動器](lambda-launcher-component.md) | ^2.0.0  | 硬式 | 
| [Lambda 執行階段](lambda-runtimes-component.md) | ^2.0.0  | 軟式 | 
| [字符交換服務](token-exchange-service-component.md) | ^2.0.0  | 硬式 | 

------
#### [ 2.1.9 ]

下表列出此元件 2.1.9 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.15.0  | 硬式 | 
| [Lambda 啟動器](lambda-launcher-component.md) | ^2.0.0  | 硬式 | 
| [Lambda 執行階段](lambda-runtimes-component.md) | ^2.0.0  | 軟式 | 
| [權杖交換服務](token-exchange-service-component.md) | ^2.0.0  | 硬式 | 

------
#### [ 2.1.8 ]

下表列出此元件 2.1.8 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.14.0  | 硬式 | 
| [Lambda 啟動器](lambda-launcher-component.md) | ^2.0.0  | 硬式 | 
| [Lambda 執行階段](lambda-runtimes-component.md) | ^2.0.0  | 軟式 | 
| [字符交換服務](token-exchange-service-component.md) | ^2.0.0  | 硬式 | 

------
#### [ 2.1.7 ]

下表列出此元件 2.1.7 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.13.0  | 硬式 | 
| [Lambda 啟動器](lambda-launcher-component.md) | ^2.0.0  | 硬式 | 
| [Lambda 執行階段](lambda-runtimes-component.md) | ^2.0.0  | 軟式 | 
| [字符交換服務](token-exchange-service-component.md) | ^2.0.0  | 硬式 | 

------
#### [ 2.1.6 ]

下表列出此元件 2.1.6 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.12.0  | 硬式 | 
| [Lambda 啟動器](lambda-launcher-component.md) | ^2.0.0  | 硬式 | 
| [Lambda 執行階段](lambda-runtimes-component.md) | ^2.0.0  | 軟式 | 
| [字符交換服務](token-exchange-service-component.md) | ^2.0.0  | 硬式 | 

------
#### [ 2.1.5 ]

下表列出此元件 2.1.5 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.11.0  | 硬式 | 
| [Lambda 啟動器](lambda-launcher-component.md) | ^2.0.0  | 硬式 | 
| [Lambda 執行階段](lambda-runtimes-component.md) | ^2.0.0  | 軟式 | 
| [字符交換服務](token-exchange-service-component.md) | ^2.0.0  | 硬式 | 

------
#### [ 2.1.4 ]

下表列出此元件 2.1.4 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.10.0  | 硬式 | 
| [Lambda 啟動器](lambda-launcher-component.md) | ^2.0.0  | 硬式 | 
| [Lambda 執行階段](lambda-runtimes-component.md) | ^2.0.0  | 軟式 | 
| [權杖交換服務](token-exchange-service-component.md) | ^2.0.0  | 硬式 | 

------
#### [ 2.1.3 ]

下表列出此元件 2.1.3 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.9.0  | 硬式 | 
| [Lambda 啟動器](lambda-launcher-component.md) | ^2.0.0  | 硬式 | 
| [Lambda 執行階段](lambda-runtimes-component.md) | ^2.0.0  | 軟式 | 
| [權杖交換服務](token-exchange-service-component.md) | ^2.0.0  | 硬式 | 

------
#### [ 2.1.2 ]

下表列出此元件 2.1.2 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.8.0  | 硬式 | 
| [Lambda 啟動器](lambda-launcher-component.md) | ^2.0.0  | 硬式 | 
| [Lambda 執行階段](lambda-runtimes-component.md) | ^2.0.0  | 軟式 | 
| [權杖交換服務](token-exchange-service-component.md) | ^2.0.0  | 硬式 | 

------
#### [ 2.1.1 ]

下表列出此元件 2.1.1 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.7.0  | 硬式 | 
| [Lambda 啟動器](lambda-launcher-component.md) | ^2.0.0  | 硬式 | 
| [Lambda 執行階段](lambda-runtimes-component.md) | ^2.0.0  | 軟式 | 
| [權杖交換服務](token-exchange-service-component.md) | ^2.0.0  | 硬式 | 

------
#### [ 2.0.8 - 2.1.0 ]

下表列出此元件 2.0.8 和 2.1.0 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.6.0  | 硬式 | 
| [Lambda 啟動器](lambda-launcher-component.md) | ^2.0.0  | 硬式 | 
| [Lambda 執行階段](lambda-runtimes-component.md) | ^2.0.0  | 軟式 | 
| [權杖交換服務](token-exchange-service-component.md) | ^2.0.0  | 硬式 | 

------
#### [ 2.0.7 ]

下表列出此元件 2.0.7 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.5.0  | 硬式 | 
| [Lambda 啟動器](lambda-launcher-component.md) | ^2.0.0  | 硬式 | 
| [Lambda 執行階段](lambda-runtimes-component.md) | ^2.0.0  | 軟式 | 
| [權杖交換服務](token-exchange-service-component.md) | ^2.0.0  | 硬式 | 

------
#### [ 2.0.6 ]

下表列出此元件 2.0.6 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.4.0  | 硬式 | 
| [Lambda 啟動器](lambda-launcher-component.md) | ^2.0.0  | 硬式 | 
| [Lambda 執行階段](lambda-runtimes-component.md) | ^2.0.0  | 軟式 | 
| [字符交換服務](token-exchange-service-component.md) | ^2.0.0  | 硬式 | 

------
#### [ 2.0.5 ]

下表列出此元件 2.0.5 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.3.0  | 硬式 | 
| [Lambda 啟動器](lambda-launcher-component.md) | ^2.0.0  | 硬式 | 
| [Lambda 執行階段](lambda-runtimes-component.md) | ^2.0.0  | 軟式 | 
| [權杖交換服務](token-exchange-service-component.md) | ^2.0.0  | 硬式 | 

------
#### [ 2.0.4 ]

下表列出此元件 2.0.4 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.2.0  | 硬式 | 
| [Lambda 啟動器](lambda-launcher-component.md) | ^2.0.0  | 硬式 | 
| [Lambda 執行階段](lambda-runtimes-component.md) | ^2.0.0  | 軟式 | 
| [字符交換服務](token-exchange-service-component.md) | ^2.0.0  | 硬式 | 

------
#### [ 2.0.3 ]

下表列出此元件 2.0.3 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.3 <2.1.0  | 硬式 | 
| [Lambda 啟動器](lambda-launcher-component.md) | >=1.0.0  | 硬式 | 
| [Lambda 執行階段](lambda-runtimes-component.md) | >=1.0.0  | 軟式 | 
| [字符交換服務](token-exchange-service-component.md) | >=1.0.0  | 硬式 | 

------

如需元件相依性的詳細資訊，請參閱[元件配方參考](component-recipe-reference.md#recipe-reference-component-dependencies)。

## Configuration
<a name="kinesis-firehose-component-configuration"></a>

此元件提供下列組態參數，您可以在部署元件時自訂這些參數。

**注意**  <a name="connector-component-lambda-parameters"></a>
此元件的預設組態包含 Lambda 函數參數。建議您只編輯下列參數，以在裝置上設定此元件。

`lambdaParams`  
包含此元件 Lambda 函數參數的物件。此物件包含下列資訊：    
`EnvironmentVariables`  
包含 Lambda 函數參數的物件。此物件包含下列資訊：    
`DEFAULT_DELIVERY_STREAM_ARN`  
元件傳送資料之預設 Firehose 交付串流的 ARN。您可以使用輸入訊息承載中的 `delivery_stream_arn` 屬性覆寫目的地串流。  
核心裝置角色必須允許對所有目標交付串流執行必要的動作。如需詳細資訊，請參閱[要求](#kinesis-firehose-component-requirements)。  
`PUBLISH_INTERVAL`  
（選用） 在元件將批次資料發佈至 Firehose 之前等待的秒數上限。若要設定元件在接收指標時發佈指標，這表示無需批次處理，請指定 `0`。  
此值最多可達 900 秒。  
預設：10 秒  
`DELIVERY_STREAM_QUEUE_SIZE`  
（選用） 在元件拒絕相同交付串流的新記錄之前，要保留在記憶體中的記錄數目上限。  
此值必須至少為 2，000 筆記錄。  
預設：5，000 筆記錄

`containerMode`  <a name="connector-component-container-mode-parameter"></a>
（選用） 此元件的容器化模式。您可以從以下選項中選擇：  <a name="lambda-function-component-container-mode-parameter"></a>
+ `NoContainer` – 元件不會在隔離的執行時間環境中執行。
+ `GreengrassContainer` – 元件會在 AWS IoT Greengrass 容器內的隔離執行時間環境中執行。
預設：`GreengrassContainer`

`containerParams`  
<a name="connector-component-container-params-description"></a>（選用） 包含此元件容器參數的物件。如果您`GreengrassContainer`為 指定 ，元件會使用這些參數`containerMode`。  
此物件包含下列資訊：    
`memorySize`  
<a name="connector-component-container-params-memory-size-description"></a>（選用） 要配置給元件的記憶體量 （以 KB 為單位）。  
預設為 64 MB (65，535 KB)。

`pubsubTopics`  <a name="connector-component-pubsub-topics-parameter"></a>
（選用） 物件，其中包含元件訂閱接收訊息的主題。您可以指定每個主題，以及元件是從 或 AWS IoT Core 本機發佈/訂閱主題訂閱 MQTT 主題。  
此物件包含下列資訊：    
`0` – 這是做為字串的陣列索引。  
包含下列資訊的物件：    
`type`  
（選用） 此元件用來訂閱訊息的發佈/訂閱訊息類型。您可以從以下選項中選擇：  
+ `PUB_SUB` - 訂閱本機發佈/訂閱訊息。如果您選擇此選項，主題不能包含 MQTT 萬用字元。如需在指定此選項時如何從自訂元件傳送訊息的詳細資訊，請參閱 [發佈/訂閱本機訊息](ipc-publish-subscribe.md)。
+ `IOT_CORE` – 訂閱 AWS IoT Core MQTT 訊息。如果您選擇此選項，主題可以包含 MQTT 萬用字元。如需在指定此選項時如何從自訂元件傳送訊息的詳細資訊，請參閱 [發佈/訂閱 AWS IoT Core MQTT 訊息](ipc-iot-core-mqtt.md)。
預設：`PUB_SUB`  
`topic`  
（選用） 元件訂閱接收訊息的主題。如果您`IotCore`為 指定 `type`，則可以在本主題中使用 MQTT 萬用字元 (`+` 和 `#`)。

**Example 範例：組態合併更新 （容器模式）**  

```
{
  "lambdaExecutionParameters": {
    "EnvironmentVariables": {
      "DEFAULT_DELIVERY_STREAM_ARN": "arn:aws:firehose:us-west-2:123456789012:deliverystream/mystream"
    }
  },
  "containerMode": "GreengrassContainer"
}
```

**Example 範例：組態合併更新 （無容器模式）**  

```
{
  "lambdaExecutionParameters": {
    "EnvironmentVariables": {
      "DEFAULT_DELIVERY_STREAM_ARN": "arn:aws:firehose:us-west-2:123456789012:deliverystream/mystream"
    }
  },
  "containerMode": "NoContainer"
}
```

## 輸入資料
<a name="kinesis-firehose-component-input-data"></a>

此元件接受下列主題的串流內容，並將內容傳送至目標交付串流。元件接受兩種類型的輸入資料：
+ `kinesisfirehose/message` 主題上的 JSON 資料。
+ `kinesisfirehose/message/binary/#` 主題上的二進位資料。

**JSON 資料的預設主題 （本機發佈/訂閱）：** `kinesisfirehose/message`  
<a name="connector-component-input-properties"></a>訊息接受下列屬性。輸入訊息必須是 JSON 格式。    
`request`  
要傳送到交付串流和目標交付串流 (如果與預設串流不同) 的資料。  
類型：`object`包含下列資訊：    
`data`  
要傳送到交付串流的資料。  
類型：`string`  
`delivery_stream_arn`  
（選用） 目標 Firehose 交付串流的 ARN。指定此屬性以覆寫預設交付串流。  
類型：`string`  
`id`  <a name="connector-component-input-property-id"></a>
請求的任意 ID。使用此屬性將輸入請求映射至輸出回應。當您指定此屬性時，元件會將回應物件中的 `id` 屬性設定為此值。  
類型：`string`

**Example 範例輸入**  

```
{
  "request": {
    "delivery_stream_arn": "arn:aws:firehose:region:account-id:deliverystream/stream2-name",
    "data": "Data to send to the delivery stream."
  },
  "id": "request123"
}
```

**二進位資料的預設主題 （本機發佈/訂閱）：** `kinesisfirehose/message/binary/#`  
使用此主題傳送包含二進位資料的訊息。元件不會剖析二進位資料。元件會依原樣串流資料。  
若要將輸入請求映射到輸出回應，請將訊息主題中的 `#` 萬用字元換成任意請求 ID。例如，如果您將訊息發佈到 `kinesisfirehose/message/binary/request123`，回應物件中的 `id` 屬性會設為 `request123`。  
如果您不想將請求映射到回應，您可以將訊息發佈到 `kinesisfirehose/message/binary/`。請務必包含結尾斜線 (`/`)。

## 輸出資料
<a name="kinesis-firehose-component-output-data"></a>

 <a name="connector-component-output-data"></a>此元件預設會將回應發佈為下列 MQTT 主題的輸出資料。您必須將此主題指定為[舊版訂閱路由器元件](legacy-subscription-router-component.md)組態`subject`中的 。如需如何在自訂元件中訂閱此主題訊息的詳細資訊，請參閱 [發佈/訂閱 AWS IoT Core MQTT 訊息](ipc-iot-core-mqtt.md)。

**預設主題 (AWS IoT Core MQTT)：** `kinesisfirehose/message/status`

**Example 範例輸出**  
回應中包含批次中所傳送之各筆資料記錄的狀態。  

```
{
  "response": [
    {
      "ErrorCode": "error",
      "ErrorMessage": "test error",
      "id": "request123",
      "status": "fail"
    },
    {
      "firehose_record_id": "xyz2",
      "id": "request456",
      "status": "success"
    },
    {
      "firehose_record_id": "xyz3",
      "id": "request890",
      "status": "success"
    }
  ]
}
```

**注意**  <a name="connector-component-retryable-error"></a>
如果元件偵測到可以重試的錯誤，例如連線錯誤，它會在下一個批次中重試發佈。

## 本機日誌檔案
<a name="kinesis-firehose-component-log-file"></a>

此元件使用以下日誌檔案。

```
/greengrass/v2/logs/aws.greengrass.KinesisFirehose.log
```

**檢視此元件的日誌**
+ 在核心裝置上執行下列命令，以即時檢視此元件的日誌檔案。`/greengrass/v2` 將 取代為 AWS IoT Greengrass 根資料夾的路徑。

  ```
  sudo tail -f /greengrass/v2/logs/aws.greengrass.KinesisFirehose.log
  ```

## 授權
<a name="kinesis-firehose-component-licenses"></a>

此元件包含下列第三方軟體/授權：<a name="boto-3-licenses"></a>
+ [適用於 Python (Boto3) 的 AWS SDK](https://pypi.org/project/boto3/)/Apache License 2.0
+ [botocore](https://pypi.org/project/botocore/)/Apache License 2.0
+ [dateutil](https://pypi.org/project/python-dateutil/1.4/)/PSF License
+ [docutils](https://pypi.org/project/docutils/)/BSD 授權、GNU 一般公有授權 (GPL)、Python 軟體基金會授權、公有網域
+ [jmespath](https://pypi.org/project/jmespath/)/MIT License
+ [s3transfer](https://pypi.org/project/s3transfer/)/Apache License 2.0
+ [urllib3](https://pypi.org/project/urllib3/)/MIT License

<a name="component-core-software-license"></a>此元件根據 [Greengrass 核心軟體授權合約](https://greengrass-release-license.s3.us-west-2.amazonaws.com/greengrass-license-v1.pdf)發行。

## 變更記錄
<a name="kinesis-firehose-component-changelog"></a>

下表說明每個版本元件的變更。


|  **版本**  |  **變更**  | 
| --- | --- | 
|  2.1.10  | 針對 Greengrass nucleus 2.15.0 版更新版本。 | 
|  2.1.9  | 針對 Greengrass nucleus 2.14.0 版更新版本。 | 
|  2.1.8  | 針對 Greengrass nucleus 2.13.0 版更新版本。 | 
|  2.1.7  | 針對 Greengrass nucleus 2.12.0 版更新版本。 | 
|  2.1.6  | 針對 Greengrass nucleus 2.11.0 版更新版本。 | 
|  2.1.5  | 針對 Greengrass nucleus 2.10.0 版更新版本。 | 
|  2.1.4  | 針對 Greengrass nucleus 2.9.0 版更新版本。 | 
|  2.1.3  | 針對 Greengrass nucleus 2.8.0 版更新版本。 | 
|  2.1.2  |  針對 Greengrass nucleus 2.7.0 版更新版本。  | 
|  2.1.1  |  針對 Greengrass nucleus 2.6.0 版更新版本。  | 
|  2.1.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/kinesis-firehose-component.html)  | 
|  2.0.8  |  針對 Greengrass nucleus 2.5.0 版更新版本。  | 
|  2.0.7  |  針對 Greengrass nucleus 2.4.0 版更新版本。  | 
|  2.0.6  |  針對 Greengrass nucleus 2.3.0 版更新版本。  | 
|  2.0.5  |  針對 Greengrass nucleus 2.2.0 版更新版本。  | 
|  2.0.4  |  針對 Greengrass nucleus 2.1.0 版更新版本。  | 
|  2.0.3  |  初始版本。  | 

## 另請參閱
<a name="kinesis-firehose-component-see-also"></a>
+ 《[Amazon Data Firehose 開發人員指南》中的什麼是](https://docs.aws.amazon.com/firehose/latest/dev/what-is-this-service.html) *Amazon Data Firehose*？

# Lambda 啟動器
<a name="lambda-launcher-component"></a>

Lambda 啟動器元件 (`aws.greengrass.LambdaLauncher`) 會在 AWS IoT Greengrass 核心裝置上啟動和停止 AWS Lambda 函數。此元件也會設定任何容器化，並以您指定的使用者身分執行程序。

**注意**  <a name="lambda-component-dependency-note"></a>
當您將 Lambda 函數元件部署至核心裝置時，部署也會包含此元件。如需詳細資訊，請參閱[執行 AWS Lambda 函數](run-lambda-functions.md)。

**Topics**
+ [版本](#lambda-launcher-component-versions)
+ [類型](#lambda-launcher-component-type)
+ [作業系統](#lambda-launcher-component-os-support)
+ [要求](#lambda-launcher-component-requirements)
+ [相依性](#lambda-launcher-component-dependencies)
+ [Configuration](#lambda-launcher-component-configuration)
+ [本機日誌檔案](#lambda-launcher-component-log-file)
+ [變更記錄](#lambda-launcher-component-changelog)

## 版本
<a name="lambda-launcher-component-versions"></a>

此元件具有下列版本：
+ 2.0.x

## 類型
<a name="lambda-launcher-component-type"></a>

<a name="public-component-type-generic"></a>此<a name="public-component-type-generic-phrase"></a>元件是一般元件 (`aws.greengrass.generic`)。[Greengrass 核](greengrass-nucleus-component.md)會執行元件的生命週期指令碼。

<a name="public-component-type-more-information"></a>如需詳細資訊，請參閱[元件類型](develop-greengrass-components.md#component-types)。

## 作業系統
<a name="lambda-launcher-component-os-support"></a>

此元件只能在 Linux 核心裝置上安裝。

## 要求
<a name="lambda-launcher-component-requirements"></a>

此元件有下列需求：
+ <a name="core-device-lambda-function-requirements"></a>您的核心裝置必須符合執行 Lambda 函數的要求。如果您希望核心裝置執行容器化 Lambda 函數，則裝置必須符合執行此作業的要求。如需詳細資訊，請參閱[Lambda 函數需求](setting-up.md#greengrass-v2-lambda-requirements)。
+ 支援在 VPC 中執行 Lambda 啟動器元件。

## 相依性
<a name="lambda-launcher-component-dependencies"></a>

當您部署元件時， AWS IoT Greengrass 也會部署其相依性的相容版本。這表示您必須符合元件及其所有相依性的要求，才能成功部署元件。本節列出此元件[發行版本的](#lambda-launcher-component-changelog)相依性，以及為每個相依性定義元件版本的語意版本限制。您也可以在 [AWS IoT Greengrass 主控台](https://console.aws.amazon.com//greengrass)中檢視每個版本元件的相依性。在元件詳細資訊頁面上，尋找**相依性**清單。

------
#### [ 2.0.11 – 2.0.13 ]

下表列出此元件 2.0.11 至 2.0.13 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Lambda 管理員](lambda-manager-component.md) | >=2.0.0 <2.4.0  | 硬式 | 

------
#### [ 2.0.9 – 2.0.10 ]

下表列出此元件 2.0.9 至 2.0.10 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Lambda 管理員](lambda-manager-component.md) | >=2.0.0 <2.3.0  | 硬式 | 

------
#### [ 2.0.4 - 2.0.8 ]

下表列出此元件 2.0.4 至 2.0.8 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Lambda 管理員](lambda-manager-component.md) | >=2.0.0 <2.2.0  | 硬式 | 

------
#### [ 2.0.3 ]

下表列出此元件 2.0.3 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Lambda 管理員](lambda-manager-component.md) | >=2.0.3 <2.1.0 | 硬式 | 

------

如需元件相依性的詳細資訊，請參閱[元件配方參考](component-recipe-reference.md#recipe-reference-component-dependencies)。

## Configuration
<a name="lambda-launcher-component-configuration"></a>

此元件沒有任何組態參數。

## 本機日誌檔案
<a name="lambda-launcher-component-log-file"></a>

此元件使用以下日誌檔案。

```
/greengrass/v2/logs/lambdaFunctionComponentName.log
```

**檢視此元件的日誌**
+ 在核心裝置上執行下列命令，以即時檢視此元件的日誌檔案。`/greengrass/v2` 將 取代為 AWS IoT Greengrass 根資料夾的路徑，並將 *lambdaFunctionComponentName* 取代為此元件啟動的 Lambda 函數元件名稱。

  ```
  sudo tail -f /greengrass/v2/logs/lambdaFunctionComponentName.log
  ```

## 變更記錄
<a name="lambda-launcher-component-changelog"></a>

下表說明每個版本元件的變更。


|  **版本**  |  **變更**  | 
| --- | --- | 
|  2.0.13  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/lambda-launcher-component.html)  | 
|  2.0.12  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/lambda-launcher-component.html)  | 
|  2.0.11  |  支援 Lambda Manager 2.3.0。  | 
|  2.0.10  |  <a name="changelog-lambda-launcher-2.0.10"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/lambda-launcher-component.html)  | 
|  2.0.9  |  針對 Greengrass nucleus 2.5.0 版更新版本。  | 
|  2.0.8  |  針對 Greengrass nucleus 2.4.0 版更新版本。  | 
|  2.0.7  |  針對 Greengrass nucleus 2.3.0 版更新版本。  | 
|  2.0.6  |  一般效能改進與錯誤修正。  | 
|  2.0.4  |  <a name="changelog-lambda-launcher-2.0.4"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/lambda-launcher-component.html)  | 
|  2.0.3  |  初始版本。  | 

# Lambda 管理員
<a name="lambda-manager-component"></a>

Lambda Manager 元件 (`aws.greengrass.LambdaManager`) 會管理在 Greengrass 核心裝置上執行之 AWS Lambda 函數的工作項目和程序間通訊。

**注意**  <a name="lambda-component-dependency-note"></a>
當您將 Lambda 函數元件部署至核心裝置時，部署也會包含此元件。如需詳細資訊，請參閱[執行 AWS Lambda 函數](run-lambda-functions.md)。

**Topics**
+ [版本](#lambda-manager-component-versions)
+ [作業系統](#lambda-manager-component-os-support)
+ [類型](#lambda-manager-component-type)
+ [需求](#lambda-manager-component-requirements)
+ [相依性](#lambda-manager-component-dependencies)
+ [Configuration](#lambda-manager-component-configuration)
+ [本機日誌檔案](#lambda-manager-component-log-file)
+ [變更記錄](#lambda-manager-component-changelog)

## 版本
<a name="lambda-manager-component-versions"></a>

此元件具有下列版本：
+ 2.3.x 版本
+ 2.2.x 版本
+ 2.1.x
+ 2.0.x

## 作業系統
<a name="lambda-manager-component-os-support"></a>

此元件只能在 Linux 核心裝置上安裝。

## 類型
<a name="lambda-manager-component-type"></a>

<a name="public-component-type-plugin-para1"></a>此元件是外掛程式元件 (`aws.greengrass.plugin`)。[Greengrass 核會在](greengrass-nucleus-component.md)與核相同的 Java 虛擬機器 (JVM) 中執行此元件。當您在核心裝置上變更此元件的版本時，核會重新啟動。

<a name="public-component-type-plugin-para2"></a>此元件使用與 Greengrass 核相同的日誌檔案。如需詳細資訊，請參閱[監控 AWS IoT Greengrass 日誌](monitor-logs.md)。

<a name="public-component-type-more-information"></a>如需詳細資訊，請參閱[元件類型](develop-greengrass-components.md#component-types)。

## 需求
<a name="lambda-manager-component-requirements"></a>

此元件有下列需求：
+ <a name="core-device-lambda-function-requirements"></a>您的核心裝置必須符合執行 Lambda 函數的要求。如果您希望核心裝置執行容器化 Lambda 函數，則裝置必須符合執行此作業的要求。如需詳細資訊，請參閱[Lambda 函數需求](setting-up.md#greengrass-v2-lambda-requirements)。
+ 支援 Lambda 管理員元件在 VPC 中執行。

## 相依性
<a name="lambda-manager-component-dependencies"></a>

當您部署元件時， AWS IoT Greengrass 也會部署其相依性的相容版本。這表示您必須符合元件及其所有相依性的要求，才能成功部署元件。本節列出此元件[發行版本的](#lambda-manager-component-changelog)相依性，以及為每個相依性定義元件版本的語意版本限制。您也可以在 [AWS IoT Greengrass 主控台](https://console.aws.amazon.com//greengrass)中檢視每個版本元件的相依性。在元件詳細資訊頁面上，尋找**相依性**清單。

------
#### [ 2.3.7 ]

下表列出此元件 2.3.7 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.17.0 | 軟式 | 

------
#### [ 2.3.6 ]

下表列出此元件 2.3.6 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) |  >=2.0.0 <2.16.0  | 軟式 | 

------
#### [ 2.3.5 ]

下表列出此元件 2.3.5 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) |  >=2.0.0 <2.15.0  | 軟式 | 

------
#### [ 2.3.4 ]

下表列出此元件 2.3.4 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) |  >=2.0.0 <2.14.0  | 軟式 | 

------
#### [ 2.3.2 and 2.3.3 ]

下表列出此元件 2.3.2 和 2.3.3 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) |  >=2.0.0 <2.13.0  | 軟式 | 

------
#### [ 2.2.10 and 2.3.1 ]

下表列出此元件 2.2.10 版和 2.3.1 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) |  >=2.0.0 <2.12.0  | 軟式 | 

------
#### [ 2.2.8 and 2.2.9 ]

下表列出此元件 2.2.8 和 2.2.9 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) |  >=2.0.0 <2.11.0  | 軟式 | 

------
#### [ 2.2.7 ]

下表列出此元件 2.2.7 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) |  >=2.0.0 <2.10.0  | 軟式 | 

------
#### [ 2.2.6 ]

下表列出此元件 2.2.6 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) |  >=2.0.0 <2.9.0  | 軟式 | 

------
#### [ 2.2.5 ]

下表列出此元件 2.2.5 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) |  >=2.0.0 <2.8.0  | 軟式 | 

------
#### [ 2.2.4 ]

下表列出此元件 2.2.4 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) |  >=2.0.0 <2.7.0  | 軟式 | 

------
#### [ 2.2.1 - 2.2.3 ]

下表列出此元件 2.2.1 至 2.2.3 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) |  >=2.0.0 <2.6.0  | 軟式 | 

------
#### [ 2.2.0 ]

下表列出此元件 2.2.0 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) |  >=2.5.0 <2.6.0  | 軟式 | 

------
#### [ 2.1.3 and 2.1.4 ]

下表列出此元件 2.1.3 和 2.1.4 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) |  >=2.0.0 <2.5.0  | 軟式 | 

------
#### [ 2.1.2 ]

下表列出此元件 2.1.2 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) |  >=2.0.0 <2.4.0  | 軟式 | 

------
#### [ 2.1.1 ]

下表列出此元件 2.1.1 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) |  >=2.0.0 <2.3.0  | 軟式 | 

------
#### [ 2.1.0 ]

下表列出此元件 2.1.0 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) |  >=2.0.0 <2.2.0  | 軟式 | 

------
#### [ 2.0.x ]

下表列出此元件 2.0.x 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) |  >=2.0.3 <2.1.0  | 軟式 | 

------

如需元件相依性的詳細資訊，請參閱[元件配方參考](component-recipe-reference.md#recipe-reference-component-dependencies)。

## Configuration
<a name="lambda-manager-component-configuration"></a>

此元件提供下列組態參數，您可以在部署元件時自訂這些參數。

`logHandlerMode`  
僅適用於 lambda Manager 2.3.0\$1 版 
用來選擇要使用的 Lambda 日誌管理員實作。將 值設定為 `optimized` ，以使用較少的執行緒讀取 lambda 日誌。

`getResultTimeoutInSecond`  
（選用） Lambda 函數在逾時之前可執行的秒數上限。  
預設：`60`

## 本機日誌檔案
<a name="lambda-manager-component-log-file"></a>

此元件使用與 [Greengrass 核](greengrass-nucleus-component.md)元件相同的日誌檔案。

```
/greengrass/v2/logs/greengrass.log
```

**檢視此元件的日誌**
+ 在核心裝置上執行下列命令，以即時檢視此元件的日誌檔案。`/greengrass/v2` 將 取代為 AWS IoT Greengrass 根資料夾的路徑。

  ```
  sudo tail -f /greengrass/v2/logs/greengrass.log
  ```

## 變更記錄
<a name="lambda-manager-component-changelog"></a>

下表說明每個版本元件的變更。


|  **版本**  |  **變更**  | 
| --- | --- | 
|  2.3.7  |  針對 Greengrass nucleus 2.16.0 版更新版本。  | 
|  2.3.6  | 針對 Greengrass nucleus 2.15.0 版更新版本。 | 
|  2.3.5  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/lambda-manager-component.html)  | 
|  2.3.4  | 針對 Greengrass nucleus 2.13.0 版更新版本。 | 
|  2.3.3  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/lambda-manager-component.html)  | 
|  2.3.2  | 針對 Greengrass nucleus 2.12.0 版更新版本。 | 
|  2.3.1  |  <a name="changelog-lambda-manager-2.3.1"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/lambda-manager-component.html)  | 
|  2.3.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/lambda-manager-component.html)  | 
|  2.2.11  |  <a name="changelog-lambda-manager-2.2.11"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/lambda-manager-component.html)  | 
|  2.2.10  | 針對 Greengrass nucleus 2.11.0 版更新版本。 | 
|  2.2.9  |  <a name="changelog-lambda-manager-2.2.9"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/lambda-manager-component.html)  | 
|  2.2.8  | 針對 Greengrass nucleus 2.10.0 版更新版本。 | 
|  2.2.7  | 針對 Greengrass nucleus 2.9.0 版更新版本。 | 
|  2.2.6  | 針對 Greengrass nucleus 2.8.0 版更新版本。 | 
|  2.2.5  |  <a name="changelog-lambda-manager-2.2.5"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/lambda-manager-component.html)  | 
|  2.2.4  |  針對 Greengrass nucleus 2.6.0 版更新版本。  | 
|  2.2.3  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/lambda-manager-component.html)  | 
|  2.2.2  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/lambda-manager-component.html)  | 
|  2.2.1  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/lambda-manager-component.html)  | 
|  2.2.0  |  <a name="changelog-lambda-manager-2.2.0"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/lambda-manager-component.html)  | 
|  2.1.4  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/lambda-manager-component.html)  | 
|  2.1.3  |  針對 Greengrass nucleus 2.4.0 版更新版本。  | 
|  2.1.2  |  針對 Greengrass nucleus 2.3.0 版更新版本。  | 
|  2.1.1  |  針對 Greengrass nucleus 2.2.0 版更新版本。  | 
|  2.1.0  |  針對 Greengrass nucleus 2.1.0 版更新版本。  | 
|  2.0.3  |  初始版本。  | 

# Lambda 執行期
<a name="lambda-runtimes-component"></a>

Lambda 執行期元件 (`aws.greengrass.LambdaRuntimes`) 提供 Greengrass 核心裝置用來執行 AWS Lambda 函數的執行期。

**注意**  <a name="lambda-component-dependency-note"></a>
當您將 Lambda 函數元件部署至核心裝置時，部署也會包含此元件。如需詳細資訊，請參閱[執行 AWS Lambda 函數](run-lambda-functions.md)。

**Topics**
+ [版本](#lambda-runtimes-component-versions)
+ [Type](#lambda-runtimes-component-type)
+ [作業系統](#lambda-runtimes-component-os-support)
+ [要求](#lambda-runtimes-component-requirements)
+ [相依性](#lambda-runtimes-component-dependencies)
+ [組態](#lambda-runtimes-component-configuration)
+ [本機日誌檔案](#lambda-runtimes-component-log-file)
+ [變更記錄](#lambda-runtimes-component-changelog)

## 版本
<a name="lambda-runtimes-component-versions"></a>

此元件具有下列版本：
+ 2.0.x

## Type
<a name="lambda-runtimes-component-type"></a>

<a name="public-component-type-generic"></a>此<a name="public-component-type-generic-phrase"></a>元件是一般元件 (`aws.greengrass.generic`)。[Greengrass 核](greengrass-nucleus-component.md)會執行元件的生命週期指令碼。

<a name="public-component-type-more-information"></a>如需詳細資訊，請參閱[元件類型](develop-greengrass-components.md#component-types)。

## 作業系統
<a name="lambda-runtimes-component-os-support"></a>

此元件只能安裝在 Linux 核心裝置上。

## 要求
<a name="lambda-runtimes-component-requirements"></a>

此元件有下列需求：
+ <a name="core-device-lambda-function-requirements"></a>您的核心裝置必須符合執行 Lambda 函數的要求。如果您希望核心裝置執行容器化 Lambda 函數，則裝置必須符合執行此作業的要求。如需詳細資訊，請參閱[Lambda 函數需求](setting-up.md#greengrass-v2-lambda-requirements)。
+ 支援在 VPC 中執行 Lambda 執行時間元件。

## 相依性
<a name="lambda-runtimes-component-dependencies"></a>

此元件沒有任何相依性。

## 組態
<a name="lambda-runtimes-component-configuration"></a>

此元件沒有任何組態參數。

## 本機日誌檔案
<a name="lambda-runtimes-component-log-file"></a>

此元件不會輸出日誌。

## 變更記錄
<a name="lambda-runtimes-component-changelog"></a>

下表說明每個版本的元件的變更。


|  **版本**  |  **變更**  | 
| --- | --- | 
|  2.0.9  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/lambda-runtimes-component.html)  | 
|  2.0.8  |  針對 Greengrass nucleus 2.5.0 版更新版本。  | 
|  2.0.7  |  針對 Greengrass nucleus 2.4.0 版更新版本。  | 
|  2.0.6  |  針對 Greengrass nucleus 2.3.0 版更新版本。  | 
|  2.0.5  |  針對 Greengrass nucleus 2.2.0 版更新版本。  | 
|  2.0.4  |  針對 Greengrass nucleus 2.1.0 版更新版本。  | 
|  2.0.3  |  初始版本。  | 

# 傳統訂閱路由器
<a name="legacy-subscription-router-component"></a>

舊版訂閱路由器 (`aws.greengrass.LegacySubscriptionRouter`) 會管理 Greengrass 核心裝置上的訂閱。訂閱是 AWS IoT Greengrass V1 的一項功能，定義 Lambda 函數可用於核心裝置上的 MQTT 訊息的主題。如需詳細資訊，請參閱《*AWS IoT Greengrass V1 開發人員指南*[》中的 MQTT 訊息工作流程中的受管訂閱](https://docs.aws.amazon.com/greengrass/v1/developerguide/gg-sec.html#gg-msg-workflow)。

您可以使用此元件為使用 AWS IoT Greengrass Core SDK 的連接器元件和 Lambda 函數元件啟用訂閱。

**注意**  <a name="legacy-subscription-router-requirement-note"></a>
只有在您的 Lambda 函數在 AWS IoT Greengrass 核心 SDK 中使用 `publish()` 函數時，才需要舊版訂閱路由器元件。如果您更新 Lambda 函數程式碼以使用 AWS IoT Device SDK V2 中的程序間通訊 (IPC) 界面，則不需要部署舊版訂閱路由器元件。如需詳細資訊，請參閱下列[程序間通訊](interprocess-communication.md)服務：  
[發佈/訂閱本機訊息](ipc-publish-subscribe.md)
[發佈/訂閱 AWS IoT Core MQTT 訊息](ipc-iot-core-mqtt.md)

**Topics**
+ [版本](#legacy-subscription-router-component-versions)
+ [Type](#legacy-subscription-router-component-type)
+ [作業系統](#legacy-subscription-router-component-os-support)
+ [要求](#legacy-subscription-router-component-requirements)
+ [相依性](#legacy-subscription-router-component-dependencies)
+ [Configuration](#legacy-subscription-router-component-configuration)
+ [本機日誌檔案](#legacy-subscription-router-component-log-file)
+ [變更記錄](#legacy-subscription-router-component-changelog)

## 版本
<a name="legacy-subscription-router-component-versions"></a>

此元件具有下列版本：
+ 2.1.x
+ 2.0.x

## Type
<a name="legacy-subscription-router-component-type"></a>

<a name="public-component-type-generic"></a>此<a name="public-component-type-generic-phrase"></a>元件是一般元件 (`aws.greengrass.generic`)。[Greengrass 核](greengrass-nucleus-component.md)會執行元件的生命週期指令碼。

<a name="public-component-type-more-information"></a>如需詳細資訊，請參閱[元件類型](develop-greengrass-components.md#component-types)。

## 作業系統
<a name="legacy-subscription-router-component-os-support"></a>

此元件只能安裝在 Linux 核心裝置上。

## 要求
<a name="legacy-subscription-router-component-requirements"></a>

此元件有下列需求：
+ 舊版訂閱路由器支援在 VPC 中執行。

## 相依性
<a name="legacy-subscription-router-component-dependencies"></a>

當您部署元件時， AWS IoT Greengrass 也會部署其相依性的相容版本。這表示您必須符合元件及其所有相依性的要求，才能成功部署元件。本節列出此元件[發行版本的](#legacy-subscription-router-component-changelog)相依性，以及為每個相依性定義元件版本的語意版本限制。您也可以在 [AWS IoT Greengrass 主控台](https://console.aws.amazon.com//greengrass)中檢視每個版本元件的相依性。在元件詳細資訊頁面上，尋找**相依性**清單。

------
#### [ 2.1.15 ]

下表列出此元件 2.1.15 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.17.0 | 軟式 | 

------
#### [ 2.1.14 ]

下表列出此元件 2.1.14 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.16.0 | 軟式 | 

------
#### [ 2.1.13 ]

下表列出此元件 2.1.13 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.15.0 | 軟式 | 

------
#### [ 2.1.12 ]

下表列出此元件 2.1.12 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.14.0 | 軟式 | 

------
#### [ 2.1.11 ]

下表列出此元件 2.1.11 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.13.0 | 軟式 | 

------
#### [ 2.1.10 ]

下表列出此元件 2.1.10 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.12.0 | 軟式 | 

------
#### [ 2.1.9 ]

下表列出此元件 2.1.9 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.11.0 | 軟式 | 

------
#### [ 2.1.8 ]

下表列出此元件 2.1.8 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.10.0 | 軟式 | 

------
#### [ 2.1.7 ]

下表列出此元件 2.1.7 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.9.0 | 軟式 | 

------
#### [ 2.1.6 ]

下表列出此元件 2.1.6 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.8.0 | 軟式 | 

------
#### [ 2.1.5 ]

下表列出此元件 2.1.5 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.7.0 | 軟式 | 

------
#### [ 2.1.4 ]

下表列出此元件 2.1.4 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.6.0 | 軟式 | 

------
#### [ 2.1.3 ]

下表列出此元件 2.1.3 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.5.0 | 軟式 | 

------
#### [ 2.1.2 ]

下表列出此元件 2.1.2 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.4.0 | 軟式 | 

------
#### [ 2.1.1 ]

下表列出此元件 2.1.1 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.3.0 | 軟式 | 

------
#### [ 2.1.0 ]

下表列出此元件 2.1.0 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.2.0 | 軟式 | 

------
#### [ 2.0.3 ]

下表列出此元件 2.0.3 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.3 <2.1.0 | 軟式 | 

------

如需元件相依性的詳細資訊，請參閱[元件配方參考](component-recipe-reference.md#recipe-reference-component-dependencies)。

## Configuration
<a name="legacy-subscription-router-component-configuration"></a>

此元件提供下列組態參數，您可以在部署元件時自訂這些參數。

------
#### [ v2.1.x ]

`subscriptions`  
<a name="legacy-subscription-router-component-configuration-subscriptions-intro"></a>（選用） 在核心裝置上啟用的訂閱。這是物件，其中每個金鑰都是唯一的 ID，而每個值都是定義該連接器訂閱的物件。當您部署使用 AWS IoT Greengrass Core SDK 的 V1 連接器元件或 Lambda 函數時，必須設定訂閱。  
每個訂閱物件都包含下列資訊：    
`id`  <a name="legacy-subscription-router-component-configuration-subscription-id"></a>
此訂閱的唯一 ID。此 ID 必須符合此訂閱物件的金鑰。  
`source`  
使用 AWS IoT Greengrass 核心 SDK 的 Lambda 函數，發佈 MQTT 訊息到您在 中指定的主題`subject`。請指定下列其中一項：  
+ <a name="legacy-subscription-router-component-configuration-subscription-source-target-component-name"></a>核心裝置上的 Lambda 函數元件名稱。使用 `component:` 字首指定元件名稱，例如 **component:com.example.HelloWorldLambda**。
+ <a name="legacy-subscription-router-component-configuration-subscription-source-target-function-arn"></a>核心裝置上 Lambda 函數的 Amazon Resource Name (ARN)。
**重要**  <a name="legacy-subscription-router-function-version-requirement"></a>
如果 Lambda 函數的版本變更，您必須使用新版本的函數設定訂閱。否則，在版本符合訂閱之前，此元件不會路由訊息。  
您必須指定包含要匯入之函數版本的 Amazon Resource Name (ARN)。您不能使用 `$LATEST` 之類的版本別名。
若要部署 V1 連接器元件的訂閱，請指定元件的名稱或連接器元件 Lambda 函數的 ARN。  
`subject`  <a name="legacy-subscription-router-component-configuration-subscription-subject"></a>
來源和目標可發佈和接收訊息的 MQTT 主題或主題篩選條件。此值支援 `+`和 `#`主題萬用字元。  
`target`  
<a name="legacy-subscription-router-component-configuration-subscription-target-intro"></a>針對您在 中指定的主題接收 MQTT 訊息的目標`subject`。訂閱指定 `source`函數將 MQTT 訊息發佈到 AWS IoT Core 核心裝置上的 Lambda 函數或 。請指定下列其中一項：  
+ <a name="legacy-subscription-router-component-configuration-subscription-target-cloud"></a>`cloud`。 `source` 函數會將 MQTT 訊息發佈至 AWS IoT Core。
+ <a name="legacy-subscription-router-component-configuration-subscription-source-target-component-name"></a>核心裝置上的 Lambda 函數元件名稱。使用 `component:` 字首指定元件名稱，例如 **component:com.example.HelloWorldLambda**。
+ <a name="legacy-subscription-router-component-configuration-subscription-source-target-function-arn"></a>核心裝置上 Lambda 函數的 Amazon Resource Name (ARN)。
**重要**  <a name="legacy-subscription-router-function-version-requirement"></a>
如果 Lambda 函數的版本變更，您必須使用新版本的函數設定訂閱。否則，在版本符合訂閱之前，此元件不會路由訊息。  
您必須指定包含要匯入之函數版本的 Amazon Resource Name (ARN)。您不能使用 `$LATEST` 之類的版本別名。
預設：無訂閱

**Example 範例組態更新 （定義訂閱 AWS IoT Core)**  
下列範例指定 `com.example.HelloWorldLambda` Lambda 函數元件在`hello/world`主題 AWS IoT Core 上將 MQTT 訊息發佈至 。  

```
{
  "subscriptions": {
    "Greengrass_HelloWorld_to_cloud": {
      "id": "Greengrass_HelloWorld_to_cloud",
      "source": "component:com.example.HelloWorldLambda",
      "subject": "hello/world",
      "target": "cloud"
    }
  }
}
```

**Example 範例組態更新 （定義另一個 Lambda 函數的訂閱）**  
下列範例指定 `com.example.HelloWorldLambda` Lambda 函數元件將 MQTT 訊息發佈至`hello/world`主題上的 `com.example.MessageRelay` Lambda 函數元件。  

```
{
  "subscriptions": {
    "Greengrass_HelloWorld_to_MessageRelay": {
      "id": "Greengrass_HelloWorld_to_MessageRelay",
      "source": "component:com.example.HelloWorldLambda",
      "subject": "hello/world",
      "target": "component:com.example.MessageRelay"
    }
  }
}
```

------
#### [ v2.0.x ]

`subscriptions`  
<a name="legacy-subscription-router-component-configuration-subscriptions-intro"></a>（選用） 在核心裝置上啟用的訂閱。這是物件，其中每個金鑰都是唯一的 ID，而每個值都是定義該連接器訂閱的物件。當您部署使用 AWS IoT Greengrass Core SDK 的 V1 連接器元件或 Lambda 函數時，必須設定訂閱。  
每個訂閱物件都包含下列資訊：    
`id`  <a name="legacy-subscription-router-component-configuration-subscription-id"></a>
此訂閱的唯一 ID。此 ID 必須符合此訂閱物件的金鑰。  
`source`  
使用 AWS IoT Greengrass 核心 SDK 的 Lambda 函數，發佈 MQTT 訊息到您在 中指定的主題`subject`。指定下列內容：  
+ <a name="legacy-subscription-router-component-configuration-subscription-source-target-function-arn"></a>核心裝置上 Lambda 函數的 Amazon Resource Name (ARN)。
**重要**  <a name="legacy-subscription-router-function-version-requirement"></a>
如果 Lambda 函數的版本變更，您必須使用新版本的函數設定訂閱。否則，在版本符合訂閱之前，此元件不會路由訊息。  
您必須指定包含要匯入之函數版本的 Amazon Resource Name (ARN)。您不能使用 `$LATEST` 之類的版本別名。
若要部署 V1 連接器元件的訂閱，請指定連接器元件 Lambda 函數的 ARN。  
`subject`  <a name="legacy-subscription-router-component-configuration-subscription-subject"></a>
來源和目標可發佈和接收訊息的 MQTT 主題或主題篩選條件。此值支援 `+`和 `#`主題萬用字元。  
`target`  
<a name="legacy-subscription-router-component-configuration-subscription-target-intro"></a>針對您在 中指定的主題接收 MQTT 訊息的目標`subject`。訂閱指定 `source`函數將 MQTT 訊息發佈到 AWS IoT Core 核心裝置上的 Lambda 函數或 。請指定下列其中一項：  
+ <a name="legacy-subscription-router-component-configuration-subscription-target-cloud"></a>`cloud`。 `source` 函數會將 MQTT 訊息發佈至 AWS IoT Core。
+ <a name="legacy-subscription-router-component-configuration-subscription-source-target-function-arn"></a>核心裝置上 Lambda 函數的 Amazon Resource Name (ARN)。
**重要**  <a name="legacy-subscription-router-function-version-requirement"></a>
如果 Lambda 函數的版本變更，您必須使用新版本的函數設定訂閱。否則，在版本符合訂閱之前，此元件不會路由訊息。  
您必須指定包含要匯入之函數版本的 Amazon Resource Name (ARN)。您不能使用 `$LATEST` 之類的版本別名。
預設：無訂閱

**Example 範例組態更新 （定義訂閱 AWS IoT Core)**  
下列範例指定 `Greengrass_HelloWorld`函數在`hello/world`主題 AWS IoT Core 上將 MQTT 訊息發佈至 。  

```
"subscriptions": {
  "Greengrass_HelloWorld_to_cloud": {
    "id": "Greengrass_HelloWorld_to_cloud",
    "source": "arn:aws:lambda:us-west-2:123456789012:function:Greengrass_HelloWorld:5",
    "subject": "hello/world",
    "target": "cloud"
  }
}
```

**Example 範例組態更新 （定義另一個 Lambda 函數的訂閱）**  
下列範例指定 `Greengrass_HelloWorld`函數將 MQTT 訊息發佈至`hello/world`主題`Greengrass_MessageRelay`上的 。  

```
"subscriptions": {
  "Greengrass_HelloWorld_to_MessageRelay": {
    "id": "Greengrass_HelloWorld_to_MessageRelay",
    "source": "arn:aws:lambda:us-west-2:123456789012:function:Greengrass_HelloWorld:5",
    "subject": "hello/world",
    "target": "arn:aws:lambda:us-west-2:123456789012:function:Greengrass_MessageRelay:5"
  }
}
```

------

## 本機日誌檔案
<a name="legacy-subscription-router-component-log-file"></a>

此元件不會輸出日誌。

## 變更記錄
<a name="legacy-subscription-router-component-changelog"></a>

下表說明每個版本元件的變更。


|  版本  |  變更  | 
| --- | --- | 
|  2.1.15  |  針對 Greengrass nucleus 2.16.0 版更新版本。  | 
|  2.1.14  | 針對 Greengrass nucleus 2.15.0 版更新版本。 | 
|  2.1.13  | 針對 Greengrass nucleus 2.14.0 版更新版本。 | 
|  2.1.12  | 針對 Greengrass nucleus 2.13.0 版更新版本。 | 
|  2.1.11  | 針對 Greengrass nucleus 2.12.0 版更新版本。 | 
|  2.1.10  | 針對 Greengrass nucleus 2.11.0 版更新版本。 | 
|  2.1.9  | 針對 Greengrass nucleus 2.10.0 版更新版本。 | 
|  2.1.8  | 針對 Greengrass nucleus 2.9.0 版更新版本。 | 
|  2.1.7  | 針對 Greengrass nucleus 2.8.0 版更新版本。 | 
|  2.1.6  |  針對 Greengrass nucleus 2.7.0 版更新版本。  | 
|  2.1.5  |  針對 Greengrass nucleus 2.6.0 版更新版本。  | 
|  2.1.4  |  針對 Greengrass nucleus 2.5.0 版更新版本。  | 
|  2.1.3  |  針對 Greengrass nucleus 2.4.0 版更新版本。  | 
|  2.1.2  |  針對 Greengrass nucleus 2.3.0 版更新版本。  | 
|  2.1.1  |  針對 Greengrass nucleus 2.2.0 版更新版本。  | 
|  2.1.0  |  <a name="changelog-legacy-subscription-router-2.1.0"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/legacy-subscription-router-component.html)  | 
|  2.0.3  |  初始版本。  | 

# 本機偵錯主控台
<a name="local-debug-console-component"></a>

本機偵錯主控台元件 (`aws.greengrass.LocalDebugConsole`) 提供本機儀表板，可顯示 AWS IoT Greengrass 核心裝置及其元件的相關資訊。您可以使用此儀表板來偵錯核心裝置並管理本機元件。

**重要**  
 <a name="local-dev-tools-production-environment-warning"></a>建議您僅在開發環境中使用此元件，而非生產環境中。此元件可讓您存取您在生產環境中通常不需要的資訊和操作。僅將此元件部署到您需要的核心裝置，以遵循最低權限原則。

**Topics**
+ [版本](#local-debug-console-component-versions)
+ [類型](#local-debug-console-component-type)
+ [作業系統](#local-debug-console-component-os-support)
+ [要求](#local-debug-console-component-requirements)
+ [相依性](#local-debug-console-component-dependencies)
+ [Configuration](#local-debug-console-component-configuration)
+ [用途](#local-debug-console-component-usage)
+ [本機日誌檔案](#local-debug-console-component-log-file)
+ [變更記錄](#local-debug-console-component-changelog)

## 版本
<a name="local-debug-console-component-versions"></a>

此元件具有下列版本：
+ 2.4.x 版本
+ 2.3.x 版本
+ 2.2.x 版本
+ 2.1.x
+ 2.0.x

## 類型
<a name="local-debug-console-component-type"></a>

<a name="public-component-type-plugin-para1"></a>此元件是外掛程式元件 (`aws.greengrass.plugin`)。[Greengrass 核心](greengrass-nucleus-component.md)會在與核心相同的 Java 虛擬機器 (JVM) 中執行此元件。當您在核心裝置上變更此元件的版本時，核心會重新啟動。

<a name="public-component-type-plugin-para2"></a>此元件使用與 Greengrass 核相同的日誌檔案。如需詳細資訊，請參閱[監控 AWS IoT Greengrass 日誌](monitor-logs.md)。

<a name="public-component-type-more-information"></a>如需詳細資訊，請參閱[元件類型](develop-greengrass-components.md#component-types)。

## 作業系統
<a name="local-debug-console-component-os-support"></a>

此元件可以安裝在執行下列作業系統的核心裝置上：
+ Linux
+ Windows

## 要求
<a name="local-debug-console-component-requirements"></a>

此元件有下列需求：
+ 您可以使用使用者名稱和密碼登入儀表板。`debug`系統會為您提供使用者名稱，即 。您必須使用 AWS IoT Greengrass CLI 來建立臨時密碼，以使用核心裝置上的儀表板對您進行身分驗證。您必須能夠使用 AWS IoT Greengrass CLI 來使用本機偵錯主控台。如需詳細資訊，請參閱 [Greengrass CLI 要求](greengrass-cli-component.md#greengrass-cli-component-requirements)。如需如何產生密碼和登入的詳細資訊，請參閱[本機偵錯主控台元件用量](#local-debug-console-component-usage)。
+ 本機偵錯主控台元件支援在 VPC 中執行。

## 相依性
<a name="local-debug-console-component-dependencies"></a>

當您部署元件時， AWS IoT Greengrass 也會部署其相依性的相容版本。這表示您必須符合元件及其所有相依性的要求，才能成功部署元件。本節列出此元件[發行版本的](#local-debug-console-component-changelog)相依性，以及為每個相依性定義元件版本的語意版本限制。您也可以在 [AWS IoT Greengrass 主控台](https://console.aws.amazon.com//greengrass)中檢視每個版本元件的相依性。在元件詳細資訊頁面上，尋找**相依性**清單。

------
#### [ 2.4.6 ]

下表列出此元件 2.4.6 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.10.0 <2.17.0 | 硬式 | 
| [Greengrass CLI](greengrass-cli-component.md) | >=2.10.0 <2.17.0 | 硬式 | 

------
#### [ 2.4.5 ]

下表列出此元件 2.4.5 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.10.0 <2.16.0 | 硬式 | 
| [Greengrass CLI](greengrass-cli-component.md) | >=2.10.0 <2.16.0 | 硬式 | 

------
#### [ 2.4.4 ]

下表列出此元件 2.4.4 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.10.0 <2.15.0 | 硬式 | 
| [Greengrass CLI](greengrass-cli-component.md) | >=2.10.0 <2.15.0 | 硬式 | 

------
#### [ 2.4.3 ]

下表列出此元件 2.4.3 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.10.0 <2.14.0 | 硬式 | 
| [Greengrass CLI](greengrass-cli-component.md) | >=2.10.0 <2.14.0 | 硬式 | 

------
#### [ 2.4.1 – 2.4.2 ]

下表列出此元件 2.4.1 至 2.4.2 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.10.0 <2.13.0 | 硬式 | 
| [Greengrass CLI](greengrass-cli-component.md) | >=2.10.0 <2.13.0 | 硬式 | 

------
#### [ 2.4.0 ]

下表列出此元件 2.4.0 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.10.0 <2.12.0 | 硬式 | 
| [Greengrass CLI](greengrass-cli-component.md) | >=2.10.0 <2.12.0 | 硬式 | 

------
#### [ 2.3.0 and 2.3.1 ]

下表列出此元件 2.3.0 和 2.3.1 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.10.0 <2.12.0 | 硬式 | 
| [Greengrass CLI](greengrass-cli-component.md) | >=2.10.0 <2.12.0 | 硬式 | 

------
#### [ 2.2.9 ]

下表列出此元件 2.2.9 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.1.0 <2.12.0 | 硬式 | 
| [Greengrass CLI](greengrass-cli-component.md) | >=2.1.0 <2.12.0 | 硬式 | 

------
#### [ 2.2.8 ]

下表列出此元件 2.2.8 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.1.0 <2.11.0 | 硬式 | 
| [Greengrass CLI](greengrass-cli-component.md) | >=2.1.0 <2.11.0 | 硬式 | 

------
#### [ 2.2.7 ]

下表列出此元件 2.2.7 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.1.0 <2.10.0 | 硬式 | 
| [Greengrass CLI](greengrass-cli-component.md) | >=2.1.0 <2.10.0 | 硬式 | 

------
#### [ 2.2.6 ]

下表列出此元件 2.2.6 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.1.0 <2.9.0 | 硬式 | 
| [Greengrass CLI](greengrass-cli-component.md) | >=2.1.0 <2.9.0 | 硬式 | 

------
#### [ 2.2.5 ]

下表列出此元件 2.2.5 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.1.0 <2.8.0 | 硬式 | 
| [Greengrass CLI](greengrass-cli-component.md) | >=2.1.0 <2.8.0 | 硬式 | 

------
#### [ 2.2.4 ]

下表列出此元件 2.2.4 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.1.0 <2.7.0 | 硬式 | 
| [Greengrass CLI](greengrass-cli-component.md) | >=2.1.0 <2.7.0 | 硬式 | 

------
#### [ 2.2.3 ]

下表列出此元件 2.2.3 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.1.0 <2.6.0 | 硬式 | 
| [Greengrass CLI](greengrass-cli-component.md) | >=2.1.0 <2.6.0 | 硬式 | 

------
#### [ 2.2.2 ]

下表列出此元件 2.2.2 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.1.0 <2.5.0 | 硬式 | 
| [Greengrass CLI](greengrass-cli-component.md) | >=2.1.0 <2.5.0 | 硬式 | 

------
#### [ 2.2.1 ]

下表列出此元件 2.2.1 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.1.0 <2.4.0 | 硬式 | 
| [Greengrass CLI](greengrass-cli-component.md) | >=2.1.0 <2.4.0 | 硬式 | 

------
#### [ 2.2.0 ]

下表列出此元件 2.2.0 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.1.0 <2.3.0 | 硬式 | 
| [Greengrass CLI](greengrass-cli-component.md) | >=2.1.0 <2.3.0 | 硬式 | 

------
#### [ 2.1.0 ]

下表列出此元件 2.1.0 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.1.0 <2.2.0 | 硬式 | 
| [Greengrass CLI](greengrass-cli-component.md) | >=2.1.0 <2.2.0 | 硬式 | 

------
#### [ 2.0.x ]

下表列出此元件 2.0.x 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) |  >=2.0.3 <2.1.0  | 軟式 | 
| [Greengrass CLI](greengrass-cli-component.md) |  >=2.0.3 <2.1.0  | 軟式 | 

------

如需元件相依性的詳細資訊，請參閱[元件配方參考](component-recipe-reference.md#recipe-reference-component-dependencies)。

## Configuration
<a name="local-debug-console-component-configuration"></a>

此元件提供下列組態參數，您可以在部署元件時自訂這些參數。

------
#### [ v2.1.x - v2.4.x ]

`httpsEnabled`  
（選用） 您可以為本機偵錯主控台啟用 HTTPS 通訊。如果您啟用 HTTPS 通訊，本機偵錯主控台會建立自我簽署憑證。Web 瀏覽器會顯示使用自我簽署憑證的網站的安全警告，因此您必須手動驗證憑證。然後，您可以略過警告。如需詳細資訊，請參閱[用途](#local-debug-console-component-usage)。  
預設：`true`

`port`  <a name="local-debug-console-component-configuration-port"></a>
（選用） 提供本機偵錯主控台的連接埠。  
預設：`1441`

`websocketPort`  <a name="local-debug-console-component-configuration-websocket-port"></a>
（選用） 用於本機偵錯主控台的 Websocket 連接埠。  
預設：`1442`

`bindHostname`  <a name="local-debug-console-component-configuration-bind-hostname"></a>
（選用） 用於本機偵錯主控台的主機名稱。  
如果您在 [Docker 容器中執行 AWS IoT Greengrass Core 軟體，請將](run-greengrass-docker.md)此參數設定為 `0.0.0.0`，以便您可以在 Docker 容器外部開啟本機偵錯主控台。  
預設：`localhost`

**Example 範例：組態合併更新**  
下列範例組態指定 在非預設連接埠上開啟本機偵錯主控台，並停用 HTTPS。  

```
{
  "httpsEnabled": false,
  "port": "10441",
  "websocketPort": "10442"
}
```

------
#### [ v2.0.x ]

`port`  <a name="local-debug-console-component-configuration-port"></a>
（選用） 提供本機偵錯主控台的連接埠。  
預設：`1441`

`websocketPort`  <a name="local-debug-console-component-configuration-websocket-port"></a>
（選用） 用於本機偵錯主控台的 Websocket 連接埠。  
預設：`1442`

`bindHostname`  <a name="local-debug-console-component-configuration-bind-hostname"></a>
（選用） 用於本機偵錯主控台的主機名稱。  
如果您在 [Docker 容器中執行 AWS IoT Greengrass Core 軟體，請將](run-greengrass-docker.md)此參數設定為 `0.0.0.0`，以便您可以在 Docker 容器外部開啟本機偵錯主控台。  
預設：`localhost`

**Example 範例：組態合併更新**  
下列範例組態指定 在非預設連接埠上開啟本機偵錯主控台。  

```
{
  "port": "10441",
  "websocketPort": "10442"
}
```

------

## 用途
<a name="local-debug-console-component-usage"></a>

若要使用本機偵錯主控台，請從 Greengrass CLI 建立工作階段。當您建立工作階段時，Greengrass CLI 會提供使用者名稱和密碼，可用來登入本機偵錯主控台。

請依照這些指示，在核心裝置或開發電腦上開啟本機偵錯主控台。

------
#### [ v2.1.x - v2.4.x ]

在 2.1.0 版和更新版本中，本機偵錯主控台預設使用 HTTPS。啟用 HTTPS 時，本機偵錯主控台會建立自我簽署憑證來保護連線。由於此自我簽署憑證，當您開啟本機偵錯主控台時，網頁瀏覽器會顯示安全警告。當您使用 Greengrass CLI 建立工作階段時，輸出會包含憑證的指紋，因此您可以驗證憑證是否合法且連線安全。

您可以停用 HTTPS。如需詳細資訊，請參閱[本機偵錯主控台組態](#local-debug-console-component-configuration)。

**開啟本機偵錯主控台**

1. <a name="local-debug-console-component-usage-forward-port"></a>（選用） 若要在開發電腦上檢視本機偵錯主控台，您可以透過 SSH 轉送主控台的連接埠。不過，您必須先在核心裝置的 SSH 組態檔案中啟用 `AllowTcpForwarding`選項。此選項預設為啟用。在開發電腦上執行下列命令，以在開發電腦上檢視位於 `localhost:1441`的儀表板。

   ```
   ssh -L 1441:localhost:1441 -L 1442:localhost:1442 username@core-device-ip-address
   ```
**注意**  
您可以從 `1441`和 變更預設連接埠`1442`。如需詳細資訊，請參閱[本機偵錯主控台組態](#local-debug-console-component-configuration)。

1. <a name="local-debug-console-component-create-session-step"></a>建立工作階段以使用本機偵錯主控台。當您建立工作階段時，會產生用於驗證的密碼。本機偵錯主控台需要密碼來提高安全性，因為您可以使用此元件來檢視重要資訊，並在核心裝置上執行操作。如果您在元件組態中啟用 HTTPS，本機偵錯主控台也會建立憑證來保護連線。HTTPS 預設為啟用。

   使用 AWS IoT Greengrass CLI 建立工作階段。此命令會產生隨機的 43 個字元密碼，會在 8 小時後過期。將 `/greengrass/v2`或 *C：\$1greengrass\$1v2* 取代為 AWS IoT Greengrass V2 根資料夾的路徑。

------
#### [ Linux or Unix ]

   ```
   sudo /greengrass/v2/bin/greengrass-cli get-debug-password
   ```

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

   ```
   C:\greengrass\v2\bin\greengrass-cli get-debug-password
   ```

------

   如果您已將本機偵錯主控台設定為使用 HTTPS，命令輸出看起來像下列範例。當您開啟本機偵錯主控台時，您可以使用憑證指紋來驗證連線是否安全。

   ```
   Username: debug
   Password: bEDp3MOHdj8ou2w5de_sCBI2XAaguy3a8XxREXAMPLE
   Password expires at: 2021-04-01T17:01:43.921999931-07:00
   The local debug console is configured to use TLS security. The certificate is self-signed so you will need to bypass your web browser's security warnings to open the console.
   Before you bypass the security warning, verify that the certificate fingerprint matches the following fingerprints.
   SHA-256: 15 0B 2C E2 54 8B 22 DE 08 46 54 8A B1 2B 25 DE FB 02 7D 01 4E 4A 56 67 96 DA A6 CC B1 D2 C4 1B
   SHA-1: BC 3E 16 04 D3 80 70 DA E0 47 25 F9 90 FA D6 02 80 3E B5 C1
   ```

   除錯檢視元件會建立持續 8 小時的工作階段。之後，您必須產生新密碼，才能再次檢視本機偵錯主控台。

1. 開啟並登入儀表板。如果您透過 SSH 轉送連接埠，請在 Greengrass 核心裝置上或在開發電腦上檢視儀表板。執行以下任意一項：
   + 如果您在本機偵錯主控台中啟用 HTTPS，這是預設設定，請執行下列動作：

     1. 如果您透過 SSH 轉送連接埠，`https://localhost:1441`請在核心裝置或開發電腦上開啟 。

        您的瀏覽器可能會顯示有關無效安全憑證的安全警告。

     1. 如果您的瀏覽器顯示安全性警告，請確認憑證是否合法，並略過安全性警告。請執行下列操作：

        1. 尋找憑證的 SHA-256 或 SHA-1 指紋，並確認其符合`get-debug-password`命令先前列印的 SHA-256 或 SHA-1 指紋。您的瀏覽器可能會提供一個或兩個指紋。請參閱瀏覽器的文件，以檢視憑證及其指紋。在某些瀏覽器中，憑證指紋稱為指紋。
**注意**  
如果憑證指紋不相符，請前往 [Step 2](#local-debug-console-component-create-session-step) 建立新的工作階段。如果憑證指紋仍然不相符，您的連線可能不安全。

        1. 如果憑證指紋相符，請略過瀏覽器的安全性警告，以開啟本機偵錯主控台。請參閱瀏覽器的文件以略過瀏覽器安全警告。

     1. 使用`get-debug-password`命令先前列印的使用者名稱和密碼登入網站。

        本機偵錯主控台隨即開啟。

     1. 如果本機偵錯主控台顯示錯誤，指出由於 TLS 交握失敗而無法連線至 WebSocket，您必須略過 WebSocket URL 的自我簽署安全警告。  
![\[本機偵錯主控台中的 WebSocket TLS 交握錯誤。\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/images/local-debug-console/websocket-tls-handshake-error.png)

        請執行下列操作：

        1. 在開啟本機偵錯主控台的相同瀏覽器`https://localhost:1442`中開啟 。

        1. 驗證憑證並略過安全性警告。

           在您略過警告之後，您的瀏覽器可能會顯示 HTTP 404 頁面。

        1. `https://localhost:1441` 再次開啟。

           本機偵錯主控台會顯示核心裝置的相關資訊。
   + 如果您在本機偵錯主控台中停用 HTTPS，請執行下列動作：

     1. <a name="local-debug-console-component-usage-open-localhost-http"></a>在`http://localhost:1441`核心裝置上開啟 ，或如果您透過 SSH 轉送連接埠，請在開發電腦上開啟它。

     1. <a name="local-debug-console-component-usage-sign-in"></a>使用`get-debug-password`命令先前列印的使用者名稱和密碼登入網站。

        本機偵錯主控台隨即開啟。

------
#### [ v2.0.x ]

**開啟本機偵錯主控台**

1. <a name="local-debug-console-component-usage-forward-port"></a>（選用） 若要在開發電腦上檢視本機偵錯主控台，您可以透過 SSH 轉送主控台的連接埠。不過，您必須先在核心裝置的 SSH 組態檔案中啟用 `AllowTcpForwarding`選項。此選項預設為啟用。在開發電腦上執行下列命令，以在開發電腦上檢視位於 `localhost:1441`的儀表板。

   ```
   ssh -L 1441:localhost:1441 -L 1442:localhost:1442 username@core-device-ip-address
   ```
**注意**  
您可以從 `1441`和 變更預設連接埠`1442`。如需詳細資訊，請參閱[本機偵錯主控台組態](#local-debug-console-component-configuration)。

1. 建立工作階段以使用本機偵錯主控台。當您建立工作階段時，會產生用於驗證的密碼。本機偵錯主控台需要密碼來提高安全性，因為您可以使用此元件來檢視重要資訊，並在核心裝置上執行操作。

   使用 AWS IoT Greengrass CLI 建立工作階段。此命令會產生隨機的 43 個字元密碼，會在 8 小時後過期。將 `/greengrass/v2`或 *C：\$1greengrass\$1v2* 取代為 AWS IoT Greengrass V2 根資料夾的路徑。

------
#### [ Linux or Unix ]

   ```
   sudo /greengrass/v2/bin/greengrass-cli get-debug-password
   ```

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

   ```
   C:\greengrass\v2\bin\greengrass-cli get-debug-password
   ```

------

   命令輸出看起來像下列範例。

   ```
   Username: debug
   Password: bEDp3MOHdj8ou2w5de_sCBI2XAaguy3a8XxREXAMPLE
   Password will expire at: 2021-04-01T17:01:43.921999931-07:00
   ```

   除錯檢視元件會建立工作階段 4 小時，然後您必須產生新密碼才能再次檢視本機除錯主控台。

1. <a name="local-debug-console-component-usage-open-localhost-http"></a>在`http://localhost:1441`核心裝置上開啟 ，或如果您透過 SSH 轉送連接埠，請在開發電腦上開啟它。

1. <a name="local-debug-console-component-usage-sign-in"></a>使用`get-debug-password`命令先前列印的使用者名稱和密碼登入網站。

   本機偵錯主控台隨即開啟。

------

## 本機日誌檔案
<a name="local-debug-console-component-log-file"></a>

此元件使用與 [Greengrass 核](greengrass-nucleus-component.md)元件相同的日誌檔案。

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

```
/greengrass/v2/logs/greengrass.log
```

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

```
C:\greengrass\v2\logs\greengrass.log
```

------

**檢視此元件的日誌**
+ 在核心裝置上執行下列命令，以即時檢視此元件的日誌檔案。將 `/greengrass/v2`或 *C：\$1greengrass\$1v2* 取代為 AWS IoT Greengrass 根資料夾的路徑。

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

  ```
  sudo tail -f /greengrass/v2/logs/greengrass.log
  ```

------
#### [ Windows (PowerShell) ]

  ```
  Get-Content C:\greengrass\v2\logs\greengrass.log -Tail 10 -Wait
  ```

------

## 變更記錄
<a name="local-debug-console-component-changelog"></a>

下表說明每個版本元件的變更。


|  **版本**  |  **變更**  | 
| --- | --- | 
|  2.4.6  |  針對 Greengrass nucleus 2.16.0 版更新版本。  | 
|  2.4.5  | 針對 Greengrass nucleus 2.15.0 版更新版本。 | 
|  2.4.4  | 針對 Greengrass nucleus 2.14.0 版更新版本。 | 
|  2.4.3  |  針對 Greengrass nucleus 2.13.0 版更新版本。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/local-debug-console-component.html)  | 
|  2.4.2  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/local-debug-console-component.html)  | 
|  2.4.1  |  針對 Greengrass nucleus 2.12.0 版更新版本。 | 
|  2.4.0  |  <a name="changelog-local-debug-console-2.4.0"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/local-debug-console-component.html)  | 
|  2.3.1  |  針對 Greengrass nucleus 2.11.0 版更新版本。 | 
|  2.3.0  | 針對 Greengrass nucleus 2.10.0 版更新版本。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/local-debug-console-component.html) | 
|  2.2.7  | 針對 Greengrass nucleus 2.9.0 版更新版本。 | 
|  2.2.6  | 針對 Greengrass nucleus 2.8.0 版更新版本。 | 
|  2.2.5  |  針對 Greengrass nucleus 2.7.0 版更新版本。  | 
|  2.2.4  |  針對 Greengrass nucleus 2.6.0 版更新版本。  | 
|  2.2.3  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/local-debug-console-component.html)  | 
|  2.2.2  |  針對 Greengrass nucleus 2.4.0 版更新版本。  | 
|  2.2.1  |  針對 Greengrass nucleus 2.3.0 版更新版本。  | 
|  2.2.0  |  針對 Greengrass nucleus 2.2.0 版更新版本。  | 
|  2.1.0  |  <a name="changelog-local-debug-console-2.1.0"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/local-debug-console-component.html)  | 
|  2.0.3  |  初始版本。  | 

# 日誌管理員
<a name="log-manager-component"></a>

**警告**  
我們建議您升級至 Log Manager 2.3.5 版或更新版本。2.3.5 版可最佳化 Log Manager 組態寫入、降低 IO 操作並改善日誌上傳速度、整體裝置效能，以及可能延長的裝置生命週期。

日誌管理員元件 (`aws.greengrass.LogManager`) 會將日誌從 AWS IoT Greengrass 核心裝置上傳至 Amazon CloudWatch Logs。您可以從 Greengrass 核、其他 Greengrass 元件，以及其他非 Greengrass 元件的應用程式和服務上傳日誌。如需如何在 CloudWatch Logs 和本機檔案系統上監控日誌的詳細資訊，請參閱 [監控 AWS IoT Greengrass 日誌](monitor-logs.md)。

<a name="log-manager-considerations-intro"></a>當您使用日誌管理員元件寫入 CloudWatch Logs 時，適用下列考量：<a name="log-manager-considerations"></a>
+ **日誌延遲**

  日誌管理員元件 2.2.8 版 （及更舊版本） 只會從輪換的日誌檔案處理和上傳日誌。根據預設， AWS IoT Greengrass 核心軟體會每小時輪換日誌檔案，或在它們為 1，024 KB 之後輪換日誌檔案。因此，日誌管理員元件只會在 AWS IoT Greengrass Core 軟體或 Greengrass 元件寫入超過 1，024 KB 的日誌之後上傳日誌。您可以設定較低的日誌檔案大小限制，讓日誌檔案更頻繁地輪換。這會導致日誌管理員元件更頻繁地將日誌上傳至 CloudWatch Logs。

  日誌管理員元件 2.3.0 版 （及更新版本） 會處理和上傳所有日誌。當您撰寫新的日誌時，日誌管理員 2.3.0 版 （及更新版本） 會處理並直接上傳該作用中日誌檔案，而不是等待輪換。這表示您可以在 5 分鐘內檢視新日誌。

  日誌管理員元件會定期上傳新日誌。根據預設，日誌管理員元件會每 5 分鐘上傳新日誌。您可以設定較低的上傳間隔，讓日誌管理員元件透過設定 ，更頻繁地將日誌上傳至 CloudWatch Logs`periodicUploadIntervalSec`。如需如何設定此定期間隔的詳細資訊，請參閱[組態](https://docs.aws.amazon.com/greengrass/v2/developerguide/log-manager-component.html#log-manager-component-configuration)。

  日誌可以近乎即時地從相同的 Greengrass 檔案系統上傳。如果您需要即時觀察日誌，請考慮使用[檔案系統日誌](monitor-logs.md#access-local-logs)。
**注意**  
如果您使用不同的檔案系統來寫入日誌，日誌管理員會還原為日誌管理員元件 2.2.8 版和更早版本中的行為。如需有關存取檔案系統日誌的資訊，請參閱[存取檔案系統日誌](https://docs.aws.amazon.com/greengrass/v2/developerguide/monitor-logs.html#access-local-logs)。
+ **時鐘扭曲**

  日誌管理員元件使用標準 Signature 第 4 版簽署程序來建立對 CloudWatch Logs 的 API 請求。如果核心裝置上的系統時間不同步超過 15 分鐘，則 CloudWatch Logs 會拒絕請求。如需詳細資訊，請參閱 *AWS 一般參考* 中的 [Signature 第 4 版簽署程序](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html)。

如需此元件上傳日誌之日誌群組和日誌串流的相關資訊，請參閱 [Usage](#log-manager-component-usage)。

**Topics**
+ [版本](#log-manager-component-versions)
+ [Type](#log-manager-component-type)
+ [作業系統](#log-manager-component-os-support)
+ [要求](#log-manager-component-requirements)
+ [相依性](#log-manager-component-dependencies)
+ [Configuration](#log-manager-component-configuration)
+ [Usage](#log-manager-component-usage)
+ [本機日誌檔案](#log-manager-component-log-file)
+ [變更記錄](#log-manager-component-changelog)

## 版本
<a name="log-manager-component-versions"></a>

此元件具有下列版本：
+ 2.3.x 版本
+ 2.2.x 版本
+ 2.1.x
+ 2.0.x

## Type
<a name="log-manager-component-type"></a>

<a name="public-component-type-plugin-para1"></a>此元件是外掛程式元件 (`aws.greengrass.plugin`)。[Greengrass 核心](greengrass-nucleus-component.md)會在與核心相同的 Java 虛擬機器 (JVM) 中執行此元件。當您在核心裝置上變更此元件的版本時，核會重新啟動。

<a name="public-component-type-plugin-para2"></a>此元件使用與 Greengrass 核相同的日誌檔案。如需詳細資訊，請參閱[監控 AWS IoT Greengrass 日誌](monitor-logs.md)。

<a name="public-component-type-more-information"></a>如需詳細資訊，請參閱[元件類型](develop-greengrass-components.md#component-types)。

## 作業系統
<a name="log-manager-component-os-support"></a>

此元件可以安裝在執行下列作業系統的核心裝置上：
+ Linux
+ Windows

## 要求
<a name="log-manager-component-requirements"></a>

此元件有下列需求：
+ [Greengrass 裝置角色](device-service-role.md)必須允許 `logs:CreateLogGroup`、`logs:PutLogEvents`、 `logs:CreateLogStream`和 `logs:DescribeLogStreams`動作，如下列範例 IAM 政策所示。

  ```
  {
    "Version": "2012-10-17",		 	 	 
    "Statement": [
      {
        "Action": [
          "logs:CreateLogGroup",
          "logs:CreateLogStream",
          "logs:PutLogEvents",
          "logs:DescribeLogStreams"
        ],
        "Effect": "Allow",
        "Resource": "arn:aws:logs:*:*:*"
      }
    ]
  }
  ```
**注意**  
根據預設，您在安裝 AWS IoT Greengrass Core 軟體時建立的 [Greengrass 裝置角色](device-service-role.md)包含此範例政策中的許可。

  如需詳細資訊，請參閱《Amazon [ CloudWatch Logs 使用者指南》中的針對 CloudWatch Logs 使用身分型政策 (IAM 政策）](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/iam-identity-based-access-control-cwl.html)。 *Amazon CloudWatch *
+ 日誌管理員元件支援在 VPC 中執行。若要在 VPC 中部署此元件，需要下列項目。
  + 日誌管理員元件必須具有`logs.region.amazonaws.com`具有 VPC 端點 的連線`com.amazonaws.us-east-1.logs`能力。

### 端點和連接埠
<a name="log-manager-component-endpoints"></a>

除了基本操作所需的端點和連接埠之外，此元件還必須能夠對下列端點和連接埠執行傳出請求。如需詳細資訊，請參閱[允許透過代理或防火牆的裝置流量](allow-device-traffic.md)。


| Endpoint | 站點 | 必要 | Description | 
| --- | --- | --- | --- | 
|  `logs.region.amazonaws.com`  | 443 | 否 |  如果您將日誌寫入 CloudWatch Logs，則為必要項目。  | 

## 相依性
<a name="log-manager-component-dependencies"></a>

當您部署元件時， AWS IoT Greengrass 也會部署其相依性的相容版本。這表示您必須符合元件及其所有相依性的要求，才能成功部署元件。本節列出此元件[發行版本的](#log-manager-component-changelog)相依性，以及為每個相依性定義元件版本的語意版本限制。您也可以在 [AWS IoT Greengrass 主控台](https://console.aws.amazon.com//greengrass)中檢視每個版本元件的相依性。在元件詳細資訊頁面上，尋找**相依性**清單。

------
#### [ 2.3.11 ]

下表列出此元件 2.3.11 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.1.0 <2.17.0 | 軟式 | 

------
#### [ 2.3.10 ]

下表列出此元件 2.3.10 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.1.0 <2.16.0 | 軟式 | 

------
#### [ 2.3.9 ]

下表列出此元件 2.3.9 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.1.0 <2.15.0 | 軟式 | 

------
#### [ 2.3.8 ]

下表列出此元件 2.3.8 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.1.0 <2.14.0 | 軟式 | 

------
#### [ 2.3.7 ]

下表列出此元件 2.3.7 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.1.0 <2.13.0 | 軟式 | 

------
#### [ 2.3.5 and 2.3.6 ]

下表列出此元件 2.3.5 和 2.3.6 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.1.0 <2.12.0 | 軟式 | 

------
#### [ 2.3.3 – 2.3.4 ]

下表列出此元件 2.3.3 至 2.3.4 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.1.0 <2.11.0 | 軟式 | 

------
#### [ 2.2.8 – 2.3.2 ]

下表列出此元件 2.2.8 至 2.3.2 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.1.0 <2.10.0 | 軟式 | 

------
#### [ 2.2.7 ]

下表列出此元件 2.2.7 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.1.0 <2.9.0 | 軟式 | 

------
#### [ 2.2.6 ]

下表列出此元件 2.2.6 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.1.0 <2.8.0 | 軟式 | 

------
#### [ 2.2.5 ]

下表列出此元件 2.2.5 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.1.0 <2.7.0 | 軟式 | 

------
#### [ 2.2.1 - 2.2.4 ]

下表列出此元件 2.2.1 - 2.2.4 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.1.0 <2.6.0 | 軟式 | 

------
#### [ 2.1.3 and 2.2.0 ]

下表列出此元件 2.1.3 和 2.2.0 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.1.0 <2.5.0 | 軟式 | 

------
#### [ 2.1.2 ]

下表列出此元件 2.1.2 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.1.0 <2.4.0 | 軟式 | 

------
#### [ 2.1.1 ]

下表列出此元件 2.1.1 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.1.0 <2.3.0 | 軟式 | 

------
#### [ 2.1.0 ]

下表列出此元件 2.1.0 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.1.0 <2.2.0  | 軟式 | 

------
#### [ 2.0.x ]

下表列出此元件 2.0.x 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) |  >=2.0.3 <2.1.0  | 軟式 | 

------

如需元件相依性的詳細資訊，請參閱[元件配方參考](component-recipe-reference.md#recipe-reference-component-dependencies)。

## Configuration
<a name="log-manager-component-configuration"></a>

此元件提供下列組態參數，您可以在部署元件時自訂這些參數。

------
#### [ v2.3.10 ]

`logsUploaderConfiguration`  
（選用） 日誌管理員元件上傳之日誌的組態。此物件包含下列資訊：    
  `systemLogsConfiguration`   
（選用） AWS IoT Greengrass 核心軟體系統日誌的組態，其中包含來自 [Greengrass 核](greengrass-nucleus-component.md)和[外掛程式元件](develop-greengrass-components.md#component-types)的日誌。指定此組態，讓日誌管理員元件能夠管理系統日誌。此物件包含下列資訊：    
`uploadToCloudWatch`  <a name="log-manager-component-configuration-system-upload-to-cloud-watch"></a>
（選用） 您可以將系統日誌上傳至 CloudWatch Logs。  
預設：`false`  
`minimumLogLevel`  <a name="log-manager-component-configuration-system-minimum-log-level"></a>
（選用） 要上傳的日誌訊息最低層級。此最低層級僅適用於您將 [Greengrass 核元件](greengrass-nucleus-component.md)設定為輸出 JSON 格式日誌的情況。若要啟用 JSON 格式日誌，請`JSON`為[記錄格式](greengrass-nucleus-component.md#greengrass-nucleus-component-configuration-logging-format)參數 () 指定 `logging.format`。  
從下列日誌層級中選擇，此處依層級順序列出：  <a name="nucleus-log-levels"></a>
+ `DEBUG`
+ `INFO`
+ `WARN`
+ `ERROR`
預設：`INFO`  
`diskSpaceLimit`  <a name="log-manager-component-configuration-system-disk-space-limit"></a>
（選用） Greengrass 系統日誌檔案的總大小上限，以您在 中指定的單位表示`diskSpaceLimitUnit`。在 Greengrass 系統日誌檔案的總大小超過此總大小上限之後， AWS IoT Greengrass Core 軟體會刪除最舊的 Greengrass 系統日誌檔案。  
此參數等同於 [Greengrass 核元件](greengrass-nucleus-component.md)的[日誌大小限制](greengrass-nucleus-component.md#greengrass-nucleus-component-configuration-system-logs-limit)參數 (`totalLogsSizeKB`)。Core AWS IoT Greengrass 軟體會使用兩個值的最小值作為 Greengrass 系統日誌大小總計上限。  
`diskSpaceLimitUnit`  <a name="log-manager-component-configuration-disk-space-limit-unit"></a>
（選用） 的單位`diskSpaceLimit`。您可以從以下選項中選擇：  
+ `KB` – KB
+ `MB` – MB
+ `GB` – GB
預設：`KB`  
`deleteLogFileAfterCloudUpload`  <a name="log-manager-component-configuration-delete-log-file-after-cloud-upload"></a>
（選用） 您可以在日誌管理員元件將日誌上傳至 CloudWatch Logs 後刪除日誌檔案。  
預設：`false`  
  `componentLogsConfigurationMap`   
（選用） 核心裝置上元件的日誌組態映射。此映射中的每個`componentName`物件都會定義元件或應用程式的日誌組態。日誌管理員元件會將這些元件日誌上傳至 CloudWatch Logs。  
我們強烈建議每個元件使用單一組態金鑰。您只能將只有一個日誌檔案在使用 時主動寫入的一組檔案設為目標`logFileRegex`。未遵循此建議可能會導致重複的日誌上傳到 CloudWatch。如果您以單一 regex 鎖定多個作用中日誌檔案，建議您升級至 log Manager v2.3.1 或更新版本，並考慮使用[範例組態變更您的組態](#log-manager-multiple-logs-v2.3.10)。
如果您要從 v2.2.0 之前的日誌管理員版本升級，您可以繼續使用`componentLogsConfiguration`清單，而不是 `componentLogsConfigurationMap`。不過，我們強烈建議您使用映射格式，以便您可以使用合併和重設更新來修改特定元件的組態。如需 `componentLogsConfiguration` 參數的相關資訊，請參閱此元件 v2.1.x 的組態參數。  
*`componentName`*  
此日誌組態之*`componentName`*元件或應用程式的日誌組態。您可以指定 Greengrass 元件的名稱或其他值來識別此日誌群組。  
每個物件都包含下列資訊：    
`minimumLogLevel`  <a name="log-manager-component-configuration-component-minimum-log-level"></a>
（選用） 要上傳的日誌訊息最低層級。此最低層級僅適用於此元件的日誌使用特定的 JSON 格式時，您可以在 GitHub 上的[AWS IoT Greengrass 記錄模組](https://github.com/aws-greengrass/aws-greengrass-logging-java)儲存庫中找到該格式。  
從下列日誌層級中選擇，此處依層級順序列出：  <a name="nucleus-log-levels"></a>
+ `DEBUG`
+ `INFO`
+ `WARN`
+ `ERROR`
預設：`INFO`  
`diskSpaceLimit`  <a name="log-manager-component-configuration-component-disk-space-limit"></a>
（選用） 此元件的所有日誌檔案總大小上限，以您在 中指定的單位表示`diskSpaceLimitUnit`。此元件日誌檔案的總大小超過此總大小上限後， AWS IoT Greengrass 核心軟體會刪除此元件最舊的日誌檔案。  
此參數與 [Greengrass 核元件](greengrass-nucleus-component.md)的[日誌大小限制](greengrass-nucleus-component.md#greengrass-nucleus-component-configuration-system-logs-limit)參數 (`totalLogsSizeKB`) 有關。Core AWS IoT Greengrass 軟體會使用兩個值的最小值作為此元件的總日誌大小上限。  
`diskSpaceLimitUnit`  <a name="log-manager-component-configuration-disk-space-limit-unit"></a>
（選用） 的單位`diskSpaceLimit`。您可以從以下選項中選擇：  
+ `KB` – KB
+ `MB` – MB
+ `GB` – GB
預設：`KB`  
`logFileDirectoryPath`  <a name="log-manager-component-configuration-component-log-file-dir-path"></a>
（選用） 包含此元件日誌檔案之資料夾的路徑。  
您不需要為列印為標準輸出 (stdout) 和標準錯誤 (stderr) 的 Greengrass 元件指定此參數。  
預設：`/greengrass/v2/logs`。  
`logFileRegex`  <a name="log-manager-component-configuration-component-log-file-regex"></a>
（選用） 規則表達式，指定元件或應用程式使用的日誌檔案名稱格式。日誌管理員元件使用此規則表達式來識別 資料夾中的日誌檔案`logFileDirectoryPath`。  
您不需要為列印為標準輸出 (stdout) 和標準錯誤 (stderr) 的 Greengrass 元件指定此參數。  
如果您的元件或應用程式輪換日誌檔案，請指定符合輪換日誌檔案名稱的 regex。例如，您可以指定 **hello\$1world\$1\$1\$1\$1w\$1.log**上傳 Hello World 應用程式的日誌。`\\\\w*` 模式符合零個或多個單字字元，其中包含英數字元和底線。此 regex 會比對名稱中含和不含時間戳記的日誌檔案。在此範例中，日誌管理員會上傳下列日誌檔案：  
+ `hello_world.log` – Hello World 應用程式的最新日誌檔案。
+ `hello_world_2020_12_15_17_0.log` – Hello World 應用程式的較舊日誌檔案。
預設：`componentName\\\\w*.log`，其中 *componentName* 是此日誌組態的元件名稱。  
`deleteLogFileAfterCloudUpload`  <a name="log-manager-component-configuration-delete-log-file-after-cloud-upload"></a>
（選用） 您可以在日誌管理員元件將日誌上傳至 CloudWatch Logs 後刪除日誌檔案。  
預設：`false`  
`multiLineStartPattern`  <a name="log-manager-component-configuration-component-multi-line-start-pattern"></a>
（選用） 規則表達式，可識別新行上的日誌訊息何時是新的日誌訊息。如果規則表達式不符合新行，日誌管理員元件會將新行附加到上一行的日誌訊息。  
根據預設，日誌管理員元件會檢查該行是否以空格字元開頭，例如標籤或空格。如果沒有，日誌管理員會將該行視為新的日誌訊息處理。否則，它會將該行附加到目前的日誌訊息。此行為可確保日誌管理員元件不會分割跨越多行的訊息，例如堆疊追蹤。

  `periodicUploadIntervalSec`   
（選用） 以秒為單位的期間，日誌管理員元件會檢查要上傳的新日誌檔案。  
預設：`300`(5 分鐘）  
下限：`0.000001`(1 微秒）

`updateToTlogIntervalSec`  
（選用） 以秒為單位的期間，表示 nucleus 將 Amazon CloudWatch Events 日誌上傳事件詳細資訊寫入本機交易日誌 () 的頻率`config.tlog`。預設為 中指定的值`periodicUploadIntervalSec`。您可以修改此參數來增加寫入間隔。  
預設：`periodicUploadIntervalSec`  
下限：`periodicUploadIntervalSec`

`deprecatedVersionSupport`  
指出日誌管理員是否應使用日誌管理員 v2.3.5 中引入的記錄速度改進。將 值設定為 `false`以使用改進。  
當您從日誌管理員 v2.3.1 或更早的重複日誌項目升級`false`時，如果您將此值設定為 ，則可能會上傳重複的日誌項目。  
預設值為 `true`。

**Example 範例：組態合併更新**  
下列範例組態指定 將系統日誌和`com.example.HelloWorld`元件日誌上傳至 CloudWatch Logs。  

```
{
  "logsUploaderConfiguration": {
    "systemLogsConfiguration": {
      "uploadToCloudWatch": "true",
      "minimumLogLevel": "INFO",
      "diskSpaceLimit": "10",
      "diskSpaceLimitUnit": "MB",
      "deleteLogFileAfterCloudUpload": "false"
    },
    "componentLogsConfigurationMap": {
      "com.example.HelloWorld": {
        "minimumLogLevel": "INFO",
        "diskSpaceLimit": "20",
        "diskSpaceLimitUnit": "MB",
        "deleteLogFileAfterCloudUpload": "false"
      }
    }
  },
  "periodicUploadIntervalSec": "300",
  "deprecatedVersionSupport": "false"
}
```

**Example 範例：使用 Log Manager v2.3.1 上傳多個作用中日誌檔案的組態**  
如果您想要以多個作用中日誌檔案為目標，建議使用下列範例組態。此範例組態會指定您要上傳至 CloudWatch 的作用中日誌檔案。使用此組態範例組態也會上傳任何符合 的輪換檔案`logFileRegex`。日誌管理員 v2.3.1 支援此範例組態。  

```
{
  "logsUploaderConfiguration": {
    "componentLogsConfigurationMap": {
      "com.example.A": {
        "logFileRegex": "com.example.A\\w*.log",
        "deleteLogFileAfterCloudUpload": "false"
      }
      "com.example.B": {
        "logFileRegex": "com.example.B\\w*.log",
        "deleteLogFileAfterCloudUpload": "false"
      }
    }
  },
  "periodicUploadIntervalSec": "10"
}
```

------
#### [ v2.3.6 – v2.3.9 ]

`logsUploaderConfiguration`  
（選用） 日誌管理員元件上傳之日誌的組態。此物件包含下列資訊：    
  `systemLogsConfiguration`   
（選用） AWS IoT Greengrass 核心軟體系統日誌的組態，其中包含來自 [Greengrass 核](greengrass-nucleus-component.md)和[外掛程式元件](develop-greengrass-components.md#component-types)的日誌。指定此組態，讓日誌管理員元件能夠管理系統日誌。此物件包含下列資訊：    
`uploadToCloudWatch`  <a name="log-manager-component-configuration-system-upload-to-cloud-watch"></a>
（選用） 您可以將系統日誌上傳至 CloudWatch Logs。  
預設：`false`  
`minimumLogLevel`  <a name="log-manager-component-configuration-system-minimum-log-level"></a>
（選用） 要上傳的日誌訊息最低層級。只有在您將 [Greengrass 核元件](greengrass-nucleus-component.md)設定為輸出 JSON 格式日誌時，才會套用此最低層級。若要啟用 JSON 格式日誌，請`JSON`為[記錄格式](greengrass-nucleus-component.md#greengrass-nucleus-component-configuration-logging-format)參數 () 指定 `logging.format`。  
從下列日誌層級中選擇，此處依層級順序列出：  <a name="nucleus-log-levels"></a>
+ `DEBUG`
+ `INFO`
+ `WARN`
+ `ERROR`
預設：`INFO`  
`diskSpaceLimit`  <a name="log-manager-component-configuration-system-disk-space-limit"></a>
（選用） Greengrass 系統日誌檔案的總大小上限，以您在 中指定的單位表示`diskSpaceLimitUnit`。在 Greengrass 系統日誌檔案的總大小超過此總大小上限之後， AWS IoT Greengrass Core 軟體會刪除最舊的 Greengrass 系統日誌檔案。  
此參數等同於 [Greengrass 核元件](greengrass-nucleus-component.md)的[日誌大小限制](greengrass-nucleus-component.md#greengrass-nucleus-component-configuration-system-logs-limit)參數 (`totalLogsSizeKB`)。Core AWS IoT Greengrass 軟體會使用兩個值的最小值作為 Greengrass 系統日誌大小總計上限。  
`diskSpaceLimitUnit`  <a name="log-manager-component-configuration-disk-space-limit-unit"></a>
（選用） 的單位`diskSpaceLimit`。您可以從以下選項中選擇：  
+ `KB` – KB
+ `MB` – MB
+ `GB` – GB
預設：`KB`  
`deleteLogFileAfterCloudUpload`  <a name="log-manager-component-configuration-delete-log-file-after-cloud-upload"></a>
（選用） 您可以在日誌管理員元件將日誌上傳至 CloudWatch Logs 後刪除日誌檔案。  
預設：`false`  
  `componentLogsConfigurationMap`   
（選用） 核心裝置上元件的日誌組態映射。此映射中的每個`componentName`物件都會定義元件或應用程式的日誌組態。日誌管理員元件會將這些元件日誌上傳至 CloudWatch Logs。  
我們強烈建議每個元件使用單一組態金鑰。您只能將只有一個日誌檔案在使用 時主動寫入的一組檔案設為目標`logFileRegex`。未遵循此建議可能會導致重複的日誌上傳到 CloudWatch。如果您以單一 regex 鎖定多個作用中日誌檔案，建議您升級至 log Manager v2.3.1 或更新版本，並考慮使用[範例組態變更您的組態](#log-manager-multiple-logs-v2.3.1)。
如果您要從 v2.2.0 之前的日誌管理員版本升級，您可以繼續使用`componentLogsConfiguration`清單，而不是 `componentLogsConfigurationMap`。不過，我們強烈建議您使用映射格式，以便您可以使用合併和重設更新來修改特定元件的組態。如需 `componentLogsConfiguration` 參數的相關資訊，請參閱此元件 v2.1.x 的組態參數。  
*`componentName`*  
此日誌組態之*`componentName`*元件或應用程式的日誌組態。您可以指定 Greengrass 元件的名稱或其他值來識別此日誌群組。  
每個物件都包含下列資訊：    
`minimumLogLevel`  <a name="log-manager-component-configuration-component-minimum-log-level"></a>
（選用） 要上傳的日誌訊息最低層級。此最低層級僅適用於此元件的日誌使用特定的 JSON 格式時，您可以在 GitHub 上的[AWS IoT Greengrass 記錄模組](https://github.com/aws-greengrass/aws-greengrass-logging-java)儲存庫中找到該格式。  
從下列日誌層級中選擇，此處依層級順序列出：  <a name="nucleus-log-levels"></a>
+ `DEBUG`
+ `INFO`
+ `WARN`
+ `ERROR`
預設：`INFO`  
`diskSpaceLimit`  <a name="log-manager-component-configuration-component-disk-space-limit"></a>
（選用） 此元件的所有日誌檔案總大小上限，以您在 中指定的單位表示`diskSpaceLimitUnit`。此元件日誌檔案的總大小超過此總大小上限後， AWS IoT Greengrass 核心軟體會刪除此元件最舊的日誌檔案。  
此參數與 [Greengrass 核元件](greengrass-nucleus-component.md)的[日誌大小限制](greengrass-nucleus-component.md#greengrass-nucleus-component-configuration-system-logs-limit)參數 (`totalLogsSizeKB`) 有關。Core AWS IoT Greengrass 軟體會使用兩個值的最小值作為此元件的總日誌大小上限。  
`diskSpaceLimitUnit`  <a name="log-manager-component-configuration-disk-space-limit-unit"></a>
（選用） 的單位`diskSpaceLimit`。您可以從以下選項中選擇：  
+ `KB` – KB
+ `MB` – MB
+ `GB` – GB
預設：`KB`  
`logFileDirectoryPath`  <a name="log-manager-component-configuration-component-log-file-dir-path"></a>
（選用） 包含此元件日誌檔案之資料夾的路徑。  
您不需要為列印為標準輸出 (stdout) 和標準錯誤 (stderr) 的 Greengrass 元件指定此參數。  
預設：`/greengrass/v2/logs`。  
`logFileRegex`  <a name="log-manager-component-configuration-component-log-file-regex"></a>
（選用） 規則表達式，指定元件或應用程式使用的日誌檔案名稱格式。日誌管理員元件使用此規則表達式來識別 資料夾中的日誌檔案`logFileDirectoryPath`。  
您不需要為列印為標準輸出 (stdout) 和標準錯誤 (stderr) 的 Greengrass 元件指定此參數。  
如果您的元件或應用程式輪換日誌檔案，請指定符合輪換日誌檔案名稱的 regex。例如，您可以指定 **hello\$1world\$1\$1\$1\$1w\$1.log**上傳 Hello World 應用程式的日誌。`\\\\w*` 模式符合零個或多個單字字元，其中包含英數字元和底線。此 regex 會比對名稱中含和不含時間戳記的日誌檔案。在此範例中，日誌管理員會上傳下列日誌檔案：  
+ `hello_world.log` – Hello World 應用程式的最新日誌檔案。
+ `hello_world_2020_12_15_17_0.log` – Hello World 應用程式的較舊日誌檔案。
預設：`componentName\\\\w*.log`，其中 *componentName* 是此日誌組態的元件名稱。  
`deleteLogFileAfterCloudUpload`  <a name="log-manager-component-configuration-delete-log-file-after-cloud-upload"></a>
（選用） 您可以在日誌管理員元件將日誌上傳至 CloudWatch Logs 後刪除日誌檔案。  
預設：`false`  
`multiLineStartPattern`  <a name="log-manager-component-configuration-component-multi-line-start-pattern"></a>
（選用） 規則表達式，可識別新行上的日誌訊息何時是新的日誌訊息。如果規則表達式不符合新行，日誌管理員元件會將新行附加到上一行的日誌訊息。  
根據預設，日誌管理員元件會檢查該行是否以空格字元開頭，例如標籤或空格。如果沒有，日誌管理員會將該行視為新的日誌訊息處理。否則，它會將該行附加到目前的日誌訊息。此行為可確保日誌管理員元件不會分割跨越多行的訊息，例如堆疊追蹤。

  `periodicUploadIntervalSec`   
（選用） 以秒為單位的期間，日誌管理員元件會檢查要上傳的新日誌檔案。  
預設：`300`(5 分鐘）  
下限：`0.000001`(1 微秒）

`deprecatedVersionSupport`  
指出日誌管理員是否應使用日誌管理員 v2.3.5 中引入的記錄速度改進。將 值設定為 `false`以使用改進。  
當您從日誌管理員 v2.3.1 或更早的重複日誌項目升級`false`時，如果您將此值設定為 ，則可能會上傳重複的日誌項目。  
預設值為 `true`。

**Example 範例：組態合併更新**  
下列範例組態指定 將系統日誌和`com.example.HelloWorld`元件日誌上傳至 CloudWatch Logs。  

```
{
  "logsUploaderConfiguration": {
    "systemLogsConfiguration": {
      "uploadToCloudWatch": "true",
      "minimumLogLevel": "INFO",
      "diskSpaceLimit": "10",
      "diskSpaceLimitUnit": "MB",
      "deleteLogFileAfterCloudUpload": "false"
    },
    "componentLogsConfigurationMap": {
      "com.example.HelloWorld": {
        "minimumLogLevel": "INFO",
        "diskSpaceLimit": "20",
        "diskSpaceLimitUnit": "MB",
        "deleteLogFileAfterCloudUpload": "false"
      }
    }
  },
  "periodicUploadIntervalSec": "300",
  "deprecatedVersionSupport": "false"
}
```

**Example 範例：使用 Log Manager v2.3.1 上傳多個作用中日誌檔案的組態**  
如果您想要以多個作用中日誌檔案為目標，建議使用以下範例組態。此範例組態會指定您要上傳至 CloudWatch 的作用中日誌檔案。使用此組態範例組態也會上傳任何符合 的輪換檔案`logFileRegex`。日誌管理員 v2.3.1 支援此範例組態。  

```
{
  "logsUploaderConfiguration": {
    "componentLogsConfigurationMap": {
      "com.example.A": {
        "logFileRegex": "com.example.A\\w*.log",
        "deleteLogFileAfterCloudUpload": "false"
      }
      "com.example.B": {
        "logFileRegex": "com.example.B\\w*.log",
        "deleteLogFileAfterCloudUpload": "false"
      }
    }
  },
  "periodicUploadIntervalSec": "10"
}
```

------
#### [ v2.3.0 – 2.3.5 ]

`logsUploaderConfiguration`  
（選用） 日誌管理員元件上傳之日誌的組態。此物件包含下列資訊：    
  `systemLogsConfiguration`   
（選用） AWS IoT Greengrass 核心軟體系統日誌的組態，其中包含來自 [Greengrass 核](greengrass-nucleus-component.md)和[外掛程式元件](develop-greengrass-components.md#component-types)的日誌。指定此組態，讓日誌管理員元件能夠管理系統日誌。此物件包含下列資訊：    
`uploadToCloudWatch`  <a name="log-manager-component-configuration-system-upload-to-cloud-watch"></a>
（選用） 您可以將系統日誌上傳至 CloudWatch Logs。  
預設：`false`  
`minimumLogLevel`  <a name="log-manager-component-configuration-system-minimum-log-level"></a>
（選用） 要上傳的日誌訊息最低層級。只有在您將 [Greengrass 核元件](greengrass-nucleus-component.md)設定為輸出 JSON 格式日誌時，才會套用此最低層級。若要啟用 JSON 格式日誌，請`JSON`為[記錄格式](greengrass-nucleus-component.md#greengrass-nucleus-component-configuration-logging-format)參數 () 指定 `logging.format`。  
從下列日誌層級中選擇，此處依層級順序列出：  <a name="nucleus-log-levels"></a>
+ `DEBUG`
+ `INFO`
+ `WARN`
+ `ERROR`
預設：`INFO`  
`diskSpaceLimit`  <a name="log-manager-component-configuration-system-disk-space-limit"></a>
（選用） Greengrass 系統日誌檔案的總大小上限，以您在 中指定的單位表示`diskSpaceLimitUnit`。在 Greengrass 系統日誌檔案的總大小超過此總大小上限之後， AWS IoT Greengrass Core 軟體會刪除最舊的 Greengrass 系統日誌檔案。  
此參數等同於 [Greengrass 核元件](greengrass-nucleus-component.md)的[日誌大小限制](greengrass-nucleus-component.md#greengrass-nucleus-component-configuration-system-logs-limit)參數 (`totalLogsSizeKB`)。Core AWS IoT Greengrass 軟體會使用兩個值的最小值作為 Greengrass 系統日誌大小總計上限。  
`diskSpaceLimitUnit`  <a name="log-manager-component-configuration-disk-space-limit-unit"></a>
（選用） 的單位`diskSpaceLimit`。您可以從以下選項中選擇：  
+ `KB` – KB
+ `MB` – MB
+ `GB` – GB
預設：`KB`  
`deleteLogFileAfterCloudUpload`  <a name="log-manager-component-configuration-delete-log-file-after-cloud-upload"></a>
（選用） 您可以在日誌管理員元件將日誌上傳至 CloudWatch Logs 後刪除日誌檔案。  
預設：`false`  
  `componentLogsConfigurationMap`   
（選用） 核心裝置上元件的日誌組態映射。此映射中的每個`componentName`物件都會定義元件或應用程式的日誌組態。日誌管理員元件會將這些元件日誌上傳至 CloudWatch Logs。  
我們強烈建議每個元件使用單一組態金鑰。您只能將只有一個日誌檔案在使用 時主動寫入的一組檔案設為目標`logFileRegex`。未遵循此建議可能會導致重複的日誌上傳到 CloudWatch。如果您以單一 regex 鎖定多個作用中日誌檔案，建議您升級至 log Manager v2.3.1，並考慮使用[範例組態變更您的組態](#log-manager-multiple-logs-v2.3.1)。
如果您要從 v2.2.0 之前的日誌管理員版本升級，您可以繼續使用`componentLogsConfiguration`清單，而不是 。 `componentLogsConfigurationMap`不過，我們強烈建議您使用映射格式，以便您可以使用合併和重設更新來修改特定元件的組態。如需 `componentLogsConfiguration` 參數的相關資訊，請參閱此元件 v2.1.x 的組態參數。  
*`componentName`*  
此日誌組態之*`componentName`*元件或應用程式的日誌組態。您可以指定 Greengrass 元件的名稱或其他值來識別此日誌群組。  
每個物件都包含下列資訊：    
`minimumLogLevel`  <a name="log-manager-component-configuration-component-minimum-log-level"></a>
（選用） 要上傳的日誌訊息最低層級。此最低層級僅適用於此元件的日誌使用特定的 JSON 格式時，您可以在 GitHub 上的[AWS IoT Greengrass 記錄模組](https://github.com/aws-greengrass/aws-greengrass-logging-java)儲存庫中找到該格式。  
從下列日誌層級中選擇，此處依層級順序列出：  <a name="nucleus-log-levels"></a>
+ `DEBUG`
+ `INFO`
+ `WARN`
+ `ERROR`
預設：`INFO`  
`diskSpaceLimit`  <a name="log-manager-component-configuration-component-disk-space-limit"></a>
（選用） 您在 中指定的單位中，此元件所有日誌檔案的總大小上限`diskSpaceLimitUnit`。此元件日誌檔案的總大小超過此總大小上限後， AWS IoT Greengrass 核心軟體會刪除此元件最舊的日誌檔案。  
此參數與 [Greengrass 核元件](greengrass-nucleus-component.md)的[日誌大小限制](greengrass-nucleus-component.md#greengrass-nucleus-component-configuration-system-logs-limit)參數 (`totalLogsSizeKB`) 有關。Core AWS IoT Greengrass 軟體會使用兩個值的最小值作為此元件的總日誌大小上限。  
`diskSpaceLimitUnit`  <a name="log-manager-component-configuration-disk-space-limit-unit"></a>
（選用） 的單位`diskSpaceLimit`。您可以從以下選項中選擇：  
+ `KB` – KB
+ `MB` – MB
+ `GB` – GB
預設：`KB`  
`logFileDirectoryPath`  <a name="log-manager-component-configuration-component-log-file-dir-path"></a>
（選用） 包含此元件日誌檔案之資料夾的路徑。  
您不需要為列印為標準輸出 (stdout) 和標準錯誤 (stderr) 的 Greengrass 元件指定此參數。  
預設：`/greengrass/v2/logs`。  
`logFileRegex`  <a name="log-manager-component-configuration-component-log-file-regex"></a>
（選用） 規則表達式，指定元件或應用程式使用的日誌檔案名稱格式。日誌管理員元件使用此規則表達式來識別 資料夾中的日誌檔案`logFileDirectoryPath`。  
您不需要為列印為標準輸出 (stdout) 和標準錯誤 (stderr) 的 Greengrass 元件指定此參數。  
如果您的元件或應用程式輪換日誌檔案，請指定符合輪換日誌檔案名稱的 regex。例如，您可以指定 **hello\$1world\$1\$1\$1\$1w\$1.log**上傳 Hello World 應用程式的日誌。`\\\\w*` 模式符合零個或多個單字字元，其中包含英數字元和底線。此 regex 會比對名稱中具有和沒有時間戳記的日誌檔案。在此範例中，日誌管理員會上傳下列日誌檔案：  
+ `hello_world.log` – Hello World 應用程式的最新日誌檔案。
+ `hello_world_2020_12_15_17_0.log` – Hello World 應用程式的較舊日誌檔案。
預設：`componentName\\\\w*.log`，其中 *componentName* 是此日誌組態的元件名稱。  
`deleteLogFileAfterCloudUpload`  <a name="log-manager-component-configuration-delete-log-file-after-cloud-upload"></a>
（選用） 您可以在日誌管理員元件將日誌上傳至 CloudWatch Logs 後刪除日誌檔案。  
預設：`false`  
`multiLineStartPattern`  <a name="log-manager-component-configuration-component-multi-line-start-pattern"></a>
（選用） 規則表達式，可識別新行上的日誌訊息何時是新的日誌訊息。如果規則表達式不符合新行，日誌管理員元件會將新行附加到前一行的日誌訊息。  
根據預設，日誌管理員元件會檢查該行是否以空格字元開頭，例如標籤或空格。如果沒有，日誌管理員會將該行視為新的日誌訊息處理。否則，它會將該行附加到目前的日誌訊息。此行為可確保日誌管理員元件不會分割跨越多行的訊息，例如堆疊追蹤。

  `periodicUploadIntervalSec`   
（選用） 以秒為單位的期間，日誌管理員元件會檢查要上傳的新日誌檔案。  
預設：`300`(5 分鐘）  
最小值：`0.000001`(1 微秒）

**Example 範例：組態合併更新**  
下列範例組態指定 將系統日誌和`com.example.HelloWorld`元件日誌上傳至 CloudWatch Logs。  

```
{
  "logsUploaderConfiguration": {
    "systemLogsConfiguration": {
      "uploadToCloudWatch": "true",
      "minimumLogLevel": "INFO",
      "diskSpaceLimit": "10",
      "diskSpaceLimitUnit": "MB",
      "deleteLogFileAfterCloudUpload": "false"
    },
    "componentLogsConfigurationMap": {
      "com.example.HelloWorld": {
        "minimumLogLevel": "INFO",
        "diskSpaceLimit": "20",
        "diskSpaceLimitUnit": "MB",
        "deleteLogFileAfterCloudUpload": "false"
      }
    }
  },
  "periodicUploadIntervalSec": "300"
}
```

**Example 範例：使用 Log Manager v2.3.1 上傳多個作用中日誌檔案的組態**  
如果您想要以多個作用中日誌檔案為目標，建議使用以下範例組態。此範例組態會指定您要上傳至 CloudWatch 的作用中日誌檔案。使用此組態範例組態也會上傳任何符合 的輪換檔案`logFileRegex`。日誌管理員 v2.3.1 支援此範例組態。  

```
{
  "logsUploaderConfiguration": {
    "componentLogsConfigurationMap": {
      "com.example.A": {
        "logFileRegex": "com.example.A\\w*.log",
        "deleteLogFileAfterCloudUpload": "false"
      }
      "com.example.B": {
        "logFileRegex": "com.example.B\\w*.log",
        "deleteLogFileAfterCloudUpload": "false"
      }
    }
  },
  "periodicUploadIntervalSec": "10"
}
```

------
#### [ v2.2.x ]

`logsUploaderConfiguration`  
（選用） 日誌管理員元件上傳之日誌的組態。此物件包含下列資訊：    
  `systemLogsConfiguration`   
（選用） AWS IoT Greengrass 核心軟體系統日誌的組態，其中包含來自 [Greengrass 核](greengrass-nucleus-component.md)和[外掛程式元件](develop-greengrass-components.md#component-types)的日誌。指定此組態，讓日誌管理員元件能夠管理系統日誌。此物件包含下列資訊：    
`uploadToCloudWatch`  <a name="log-manager-component-configuration-system-upload-to-cloud-watch"></a>
（選用） 您可以將系統日誌上傳至 CloudWatch Logs。  
預設：`false`  
`minimumLogLevel`  <a name="log-manager-component-configuration-system-minimum-log-level"></a>
（選用） 要上傳的日誌訊息最低層級。只有在您將 [Greengrass 核元件](greengrass-nucleus-component.md)設定為輸出 JSON 格式日誌時，才會套用此最低層級。若要啟用 JSON 格式日誌，請`JSON`為[記錄格式](greengrass-nucleus-component.md#greengrass-nucleus-component-configuration-logging-format)參數 () 指定 `logging.format`。  
從下列日誌層級中選擇，此處依層級順序列出：  <a name="nucleus-log-levels"></a>
+ `DEBUG`
+ `INFO`
+ `WARN`
+ `ERROR`
預設：`INFO`  
`diskSpaceLimit`  <a name="log-manager-component-configuration-system-disk-space-limit"></a>
（選用） Greengrass 系統日誌檔案的總大小上限，以您在 中指定的單位表示`diskSpaceLimitUnit`。在 Greengrass 系統日誌檔案的總大小超過此總大小上限之後， AWS IoT Greengrass Core 軟體會刪除最舊的 Greengrass 系統日誌檔案。  
此參數等同於 [Greengrass 核元件](greengrass-nucleus-component.md)的[日誌大小限制](greengrass-nucleus-component.md#greengrass-nucleus-component-configuration-system-logs-limit)參數 (`totalLogsSizeKB`)。Core AWS IoT Greengrass 軟體會使用兩個值的最小值作為 Greengrass 系統日誌大小總計上限。  
`diskSpaceLimitUnit`  <a name="log-manager-component-configuration-disk-space-limit-unit"></a>
（選用） 的單位`diskSpaceLimit`。您可以從以下選項中選擇：  
+ `KB` – KB
+ `MB` – MB
+ `GB` – GB
預設：`KB`  
`deleteLogFileAfterCloudUpload`  <a name="log-manager-component-configuration-delete-log-file-after-cloud-upload"></a>
（選用） 您可以在日誌管理員元件將日誌上傳至 CloudWatch Logs 後刪除日誌檔案。  
預設：`false`  
  `componentLogsConfigurationMap`   
（選用） 核心裝置上元件的日誌組態映射。此映射中的每個`componentName`物件都會定義元件或應用程式的日誌組態。日誌管理員元件會將這些元件日誌上傳至 CloudWatch Logs。  
如果您要從 v2.2.0 之前的日誌管理員版本升級，您可以繼續使用`componentLogsConfiguration`清單，而不是 。 `componentLogsConfigurationMap`不過，我們強烈建議您使用映射格式，以便您可以使用合併和重設更新來修改特定元件的組態。如需 `componentLogsConfiguration` 參數的相關資訊，請參閱此元件 v2.1.x 的組態參數。  
*`componentName`*  
此日誌組態之*`componentName`*元件或應用程式的日誌組態。您可以指定 Greengrass 元件的名稱或其他值來識別此日誌群組。  
每個物件都包含下列資訊：    
`minimumLogLevel`  <a name="log-manager-component-configuration-component-minimum-log-level"></a>
（選用） 要上傳的日誌訊息最低層級。此最低層級僅適用於此元件的日誌使用特定的 JSON 格式時，您可以在 GitHub 上的[AWS IoT Greengrass 記錄模組](https://github.com/aws-greengrass/aws-greengrass-logging-java)儲存庫中找到該格式。  
從下列日誌層級中選擇，此處依層級順序列出：  <a name="nucleus-log-levels"></a>
+ `DEBUG`
+ `INFO`
+ `WARN`
+ `ERROR`
預設：`INFO`  
`diskSpaceLimit`  <a name="log-manager-component-configuration-component-disk-space-limit"></a>
（選用） 此元件的所有日誌檔案總大小上限，以您在 中指定的單位表示`diskSpaceLimitUnit`。此元件日誌檔案的總大小超過此總大小上限後， AWS IoT Greengrass 核心軟體會刪除此元件最舊的日誌檔案。  
此參數與 [Greengrass 核元件](greengrass-nucleus-component.md)的[日誌大小限制](greengrass-nucleus-component.md#greengrass-nucleus-component-configuration-system-logs-limit)參數 (`totalLogsSizeKB`) 有關。Core AWS IoT Greengrass 軟體會使用兩個值的最小值作為此元件的總日誌大小上限。  
`diskSpaceLimitUnit`  <a name="log-manager-component-configuration-disk-space-limit-unit"></a>
（選用） 的單位`diskSpaceLimit`。您可以從以下選項中選擇：  
+ `KB` – KB
+ `MB` – MB
+ `GB` – GB
預設：`KB`  
`logFileDirectoryPath`  <a name="log-manager-component-configuration-component-log-file-dir-path"></a>
（選用） 包含此元件日誌檔案的資料夾路徑。  
您不需要為列印為標準輸出 (stdout) 和標準錯誤 (stderr) 的 Greengrass 元件指定此參數。  
預設：`/greengrass/v2/logs`。  
`logFileRegex`  <a name="log-manager-component-configuration-component-log-file-regex"></a>
（選用） 規則表達式，指定元件或應用程式使用的日誌檔案名稱格式。日誌管理員元件使用此規則表達式來識別 資料夾中的日誌檔案`logFileDirectoryPath`。  
您不需要為列印為標準輸出 (stdout) 和標準錯誤 (stderr) 的 Greengrass 元件指定此參數。  
如果您的元件或應用程式輪換日誌檔案，請指定符合輪換日誌檔案名稱的 regex。例如，您可以指定 **hello\$1world\$1\$1\$1\$1w\$1.log**上傳 Hello World 應用程式的日誌。`\\\\w*` 模式符合零個或多個單字字元，其中包含英數字元和底線。此 regex 會比對名稱中含和不含時間戳記的日誌檔案。在此範例中，日誌管理員會上傳下列日誌檔案：  
+ `hello_world.log` – Hello World 應用程式的最新日誌檔案。
+ `hello_world_2020_12_15_17_0.log` – Hello World 應用程式的較舊日誌檔案。
預設：`componentName\\\\w*.log`，其中 *componentName* 是此日誌組態的元件名稱。  
`deleteLogFileAfterCloudUpload`  <a name="log-manager-component-configuration-delete-log-file-after-cloud-upload"></a>
（選用） 您可以在日誌管理員元件將日誌上傳至 CloudWatch Logs 後刪除日誌檔案。  
預設：`false`  
`multiLineStartPattern`  <a name="log-manager-component-configuration-component-multi-line-start-pattern"></a>
（選用） 規則表達式，可識別新行上的日誌訊息何時是新的日誌訊息。如果規則表達式不符合新行，日誌管理員元件會將新行附加到前一行的日誌訊息。  
根據預設，日誌管理員元件會檢查該行是否以空格字元開頭，例如標籤或空格。如果沒有，日誌管理員會將該行視為新的日誌訊息處理。否則，它會將該行附加到目前的日誌訊息。此行為可確保日誌管理員元件不會分割跨越多行的訊息，例如堆疊追蹤。

  `periodicUploadIntervalSec`   
（選用） 以秒為單位的期間，日誌管理員元件會檢查要上傳的新日誌檔案。  
預設：`300`(5 分鐘）  
下限：`0.000001`(1 微秒）

**Example 範例：組態合併更新**  
下列範例組態指定 將系統日誌和`com.example.HelloWorld`元件日誌上傳至 CloudWatch Logs。  

```
{
  "logsUploaderConfiguration": {
    "systemLogsConfiguration": {
      "uploadToCloudWatch": "true",
      "minimumLogLevel": "INFO",
      "diskSpaceLimit": "10",
      "diskSpaceLimitUnit": "MB",
      "deleteLogFileAfterCloudUpload": "false"
    },
    "componentLogsConfigurationMap": {
      "com.example.HelloWorld": {
        "minimumLogLevel": "INFO",
        "diskSpaceLimit": "20",
        "diskSpaceLimitUnit": "MB",
        "deleteLogFileAfterCloudUpload": "false"
      }
    }
  },
  "periodicUploadIntervalSec": "300"
}
```

------
#### [ v2.1.x ]

`logsUploaderConfiguration`  
（選用） 日誌管理員元件上傳之日誌的組態。此物件包含下列資訊：    
 `systemLogsConfiguration`   
（選用） AWS IoT Greengrass 核心軟體系統日誌的組態，其中包含來自 [Greengrass 核](greengrass-nucleus-component.md)和[外掛程式元件](develop-greengrass-components.md#component-types)的日誌。指定此組態，讓日誌管理員元件能夠管理系統日誌。此物件包含下列資訊：    
`uploadToCloudWatch`  <a name="log-manager-component-configuration-system-upload-to-cloud-watch"></a>
（選用） 您可以將系統日誌上傳至 CloudWatch Logs。  
預設：`false`  
`minimumLogLevel`  <a name="log-manager-component-configuration-system-minimum-log-level"></a>
（選用） 要上傳的日誌訊息最低層級。只有在您將 [Greengrass 核元件](greengrass-nucleus-component.md)設定為輸出 JSON 格式日誌時，才會套用此最低層級。若要啟用 JSON 格式日誌，請`JSON`為[記錄格式](greengrass-nucleus-component.md#greengrass-nucleus-component-configuration-logging-format)參數 () 指定 `logging.format`。  
從下列日誌層級中選擇，此處依層級順序列出：  <a name="nucleus-log-levels"></a>
+ `DEBUG`
+ `INFO`
+ `WARN`
+ `ERROR`
預設：`INFO`  
`diskSpaceLimit`  <a name="log-manager-component-configuration-system-disk-space-limit"></a>
（選用） Greengrass 系統日誌檔案的總大小上限，以您在 中指定的單位表示`diskSpaceLimitUnit`。在 Greengrass 系統日誌檔案的總大小超過此總大小上限之後， AWS IoT Greengrass Core 軟體會刪除最舊的 Greengrass 系統日誌檔案。  
此參數等同於 [Greengrass 核元件](greengrass-nucleus-component.md)的[日誌大小限制](greengrass-nucleus-component.md#greengrass-nucleus-component-configuration-system-logs-limit)參數 (`totalLogsSizeKB`)。Core AWS IoT Greengrass 軟體會使用兩個值的最小值作為 Greengrass 系統日誌大小總計上限。  
`diskSpaceLimitUnit`  <a name="log-manager-component-configuration-disk-space-limit-unit"></a>
（選用） 的單位`diskSpaceLimit`。您可以從以下選項中選擇：  
+ `KB` – KB
+ `MB` – MB
+ `GB` – GB
預設：`KB`  
`deleteLogFileAfterCloudUpload`  <a name="log-manager-component-configuration-delete-log-file-after-cloud-upload"></a>
（選用） 您可以在日誌管理員元件將日誌上傳至 CloudWatch Logs 後刪除日誌檔案。  
預設：`false`  
  `componentLogsConfiguration`   
（選用） 核心裝置上元件的日誌組態清單。此清單中的每個組態都會定義元件或應用程式的日誌組態。日誌管理員元件會將這些元件日誌上傳至 CloudWatch Logs  
每個物件都包含下列資訊：    
`componentName`  <a name="log-manager-component-configuration-component-component-name"></a>
此日誌組態的元件或應用程式名稱。您可以指定 Greengrass 元件的名稱或其他值來識別此日誌群組。  
`minimumLogLevel`  <a name="log-manager-component-configuration-component-minimum-log-level"></a>
（選用） 要上傳的日誌訊息最低層級。此最低層級僅適用於此元件的日誌使用特定的 JSON 格式，您可以在 GitHub 的記錄[AWS IoT Greengrass 模組](https://github.com/aws-greengrass/aws-greengrass-logging-java)儲存庫中找到該格式。  
從下列日誌層級中選擇，此處依層級順序列出：  <a name="nucleus-log-levels"></a>
+ `DEBUG`
+ `INFO`
+ `WARN`
+ `ERROR`
預設：`INFO`  
`diskSpaceLimit`  <a name="log-manager-component-configuration-component-disk-space-limit"></a>
（選用） 此元件的所有日誌檔案總大小上限，以您在 中指定的單位表示`diskSpaceLimitUnit`。此元件日誌檔案的總大小超過此總大小上限後， AWS IoT Greengrass 核心軟體會刪除此元件最舊的日誌檔案。  
此參數與 [Greengrass 核元件](greengrass-nucleus-component.md)的[日誌大小限制](greengrass-nucleus-component.md#greengrass-nucleus-component-configuration-system-logs-limit)參數 (`totalLogsSizeKB`) 有關。Core AWS IoT Greengrass 軟體會使用兩個值的最小值作為此元件的總日誌大小上限。  
`diskSpaceLimitUnit`  <a name="log-manager-component-configuration-disk-space-limit-unit"></a>
（選用） 的單位`diskSpaceLimit`。您可以從以下選項中選擇：  
+ `KB` – KB
+ `MB` – MB
+ `GB` – GB
預設：`KB`  
`logFileDirectoryPath`  <a name="log-manager-component-configuration-component-log-file-dir-path"></a>
（選用） 包含此元件日誌檔案的資料夾路徑。  
您不需要為列印為標準輸出 (stdout) 和標準錯誤 (stderr) 的 Greengrass 元件指定此參數。  
預設：`/greengrass/v2/logs`。  
`logFileRegex`  <a name="log-manager-component-configuration-component-log-file-regex"></a>
（選用） 規則表達式，指定元件或應用程式使用的日誌檔案名稱格式。日誌管理員元件使用此規則表達式來識別 資料夾中的日誌檔案`logFileDirectoryPath`。  
您不需要為列印為標準輸出 (stdout) 和標準錯誤 (stderr) 的 Greengrass 元件指定此參數。  
如果您的元件或應用程式輪換日誌檔案，請指定符合輪換日誌檔案名稱的 regex。例如，您可以指定 **hello\$1world\$1\$1\$1\$1w\$1.log**上傳 Hello World 應用程式的日誌。`\\\\w*` 模式符合零個或多個單字字元，其中包含英數字元和底線。此 regex 會比對名稱中含和不含時間戳記的日誌檔案。在此範例中，日誌管理員會上傳下列日誌檔案：  
+ `hello_world.log` – Hello World 應用程式的最新日誌檔案。
+ `hello_world_2020_12_15_17_0.log` – Hello World 應用程式的較舊日誌檔案。
預設：`componentName\\\\w*.log`，其中 *componentName* 是此日誌組態的元件名稱。  
`deleteLogFileAfterCloudUpload`  <a name="log-manager-component-configuration-delete-log-file-after-cloud-upload"></a>
（選用） 您可以在日誌管理員元件將日誌上傳至 CloudWatch Logs 後刪除日誌檔案。  
預設：`false`  
`multiLineStartPattern`  <a name="log-manager-component-configuration-component-multi-line-start-pattern"></a>
（選用） 規則表達式，可識別新行上的日誌訊息何時是新的日誌訊息。如果規則表達式不符合新行，日誌管理員元件會將新行附加到前一行的日誌訊息。  
根據預設，日誌管理員元件會檢查該行是否以空格字元開頭，例如標籤或空格。如果沒有，日誌管理員會將該行視為新的日誌訊息處理。否則，它會將該行附加到目前的日誌訊息。此行為可確保日誌管理員元件不會分割跨越多行的訊息，例如堆疊追蹤。

 `periodicUploadIntervalSec`   
（選用） 以秒為單位的期間，日誌管理員元件會檢查要上傳的新日誌檔案。  
預設：`300`(5 分鐘）  
下限：`0.000001`(1 微秒）

**Example 範例：組態合併更新**  
下列範例組態指定 將系統日誌和`com.example.HelloWorld`元件日誌上傳至 CloudWatch Logs。  

```
{
  "logsUploaderConfiguration": {
    "systemLogsConfiguration": {
      "uploadToCloudWatch": "true",
      "minimumLogLevel": "INFO",
      "diskSpaceLimit": "10",
      "diskSpaceLimitUnit": "MB",
      "deleteLogFileAfterCloudUpload": "false"
    },
    "componentLogsConfiguration": [
      {
        "componentName": "com.example.HelloWorld",
        "minimumLogLevel": "INFO",
        "diskSpaceLimit": "20",
        "diskSpaceLimitUnit": "MB",
        "deleteLogFileAfterCloudUpload": "false"
      }
    ]
  },
  "periodicUploadIntervalSec": "300"
}
```

------
#### [ v2.0.x ]

`logsUploaderConfiguration`  
（選用） 日誌管理員元件上傳之日誌的組態。此物件包含下列資訊：    
`systemLogsConfiguration`  
（選用） AWS IoT Greengrass 核心軟體系統日誌的組態。指定此組態，讓日誌管理員元件能夠管理系統日誌。此物件包含下列資訊：    
`uploadToCloudWatch`  <a name="log-manager-component-configuration-system-upload-to-cloud-watch"></a>
（選用） 您可以將系統日誌上傳至 CloudWatch Logs。  
預設：`false`  
`minimumLogLevel`  <a name="log-manager-component-configuration-system-minimum-log-level"></a>
（選用） 要上傳的日誌訊息最低層級。只有在您將 [Greengrass 核元件](greengrass-nucleus-component.md)設定為輸出 JSON 格式日誌時，才會套用此最低層級。若要啟用 JSON 格式日誌，請`JSON`為[記錄格式](greengrass-nucleus-component.md#greengrass-nucleus-component-configuration-logging-format)參數 () 指定 `logging.format`。  
從下列日誌層級中選擇，此處依層級順序列出：  <a name="nucleus-log-levels"></a>
+ `DEBUG`
+ `INFO`
+ `WARN`
+ `ERROR`
預設：`INFO`  
`diskSpaceLimit`  <a name="log-manager-component-configuration-system-disk-space-limit"></a>
（選用） Greengrass 系統日誌檔案的總大小上限，以您在 中指定的單位表示`diskSpaceLimitUnit`。在 Greengrass 系統日誌檔案的總大小超過此總大小上限之後， AWS IoT Greengrass Core 軟體會刪除最舊的 Greengrass 系統日誌檔案。  
此參數等同於 [Greengrass 核元件](greengrass-nucleus-component.md)的[日誌大小限制](greengrass-nucleus-component.md#greengrass-nucleus-component-configuration-system-logs-limit)參數 (`totalLogsSizeKB`)。Core AWS IoT Greengrass 軟體會使用兩個值的最小值作為 Greengrass 系統日誌大小總計上限。  
`diskSpaceLimitUnit`  <a name="log-manager-component-configuration-disk-space-limit-unit"></a>
（選用） 的單位`diskSpaceLimit`。您可以從以下選項中選擇：  
+ `KB` – KB
+ `MB` – MB
+ `GB` – GB
預設：`KB`  
`deleteLogFileAfterCloudUpload`  <a name="log-manager-component-configuration-delete-log-file-after-cloud-upload"></a>
（選用） 您可以在日誌管理員元件將日誌上傳至 CloudWatch Logs 後刪除日誌檔案。  
預設：`false`  
`componentLogsConfiguration`  
（選用） 核心裝置上元件的日誌組態清單。此清單中的每個組態都會定義元件或應用程式的日誌組態。日誌管理員元件會將這些元件日誌上傳至 CloudWatch Logs  
每個物件都包含下列資訊：    
`componentName`  <a name="log-manager-component-configuration-component-component-name"></a>
此日誌組態的元件或應用程式名稱。您可以指定 Greengrass 元件的名稱或其他值來識別此日誌群組。  
`minimumLogLevel`  <a name="log-manager-component-configuration-component-minimum-log-level"></a>
（選用） 要上傳的日誌訊息最低層級。此最低層級僅適用於此元件的日誌使用特定的 JSON 格式時，您可以在 GitHub 上的[AWS IoT Greengrass 記錄模組](https://github.com/aws-greengrass/aws-greengrass-logging-java)儲存庫中找到該格式。  
從下列日誌層級中選擇，此處依層級順序列出：  <a name="nucleus-log-levels"></a>
+ `DEBUG`
+ `INFO`
+ `WARN`
+ `ERROR`
預設：`INFO`  
`diskSpaceLimit`  <a name="log-manager-component-configuration-component-disk-space-limit"></a>
（選用） 此元件的所有日誌檔案總大小上限，以您在 中指定的單位表示`diskSpaceLimitUnit`。此元件日誌檔案的總大小超過此總大小上限後， AWS IoT Greengrass 核心軟體會刪除此元件最舊的日誌檔案。  
此參數與 [Greengrass 核元件](greengrass-nucleus-component.md)的[日誌大小限制](greengrass-nucleus-component.md#greengrass-nucleus-component-configuration-system-logs-limit)參數 (`totalLogsSizeKB`) 有關。Core AWS IoT Greengrass 軟體會使用兩個值的最小值作為此元件的總日誌大小上限。  
`diskSpaceLimitUnit`  <a name="log-manager-component-configuration-disk-space-limit-unit"></a>
（選用） 的單位`diskSpaceLimit`。您可以從以下選項中選擇：  
+ `KB` – KB
+ `MB` – MB
+ `GB` – GB
預設：`KB`  
`logFileDirectoryPath`  
包含此元件日誌檔案的資料夾路徑。  
若要上傳 Greengrass 元件的日誌，請指定 **`/greengrass/v2`/logs**，並將 取代`/greengrass/v2`為您的 Greengrass 根資料夾。  
`logFileRegex`  
規則表達式，指定元件或應用程式使用的日誌檔案名稱格式。日誌管理員元件使用此規則表達式來識別 資料夾中的日誌檔案`logFileDirectoryPath`。  
若要上傳 Greengrass 元件的日誌，請指定符合輪換日誌檔案名稱的 regex。例如，您可以指定 **com.example.HelloWorld\$1\$1w\$1.log**上傳 Hello World 元件的日誌。`\\w*` 模式符合零個或多個單字字元，其中包含英數字元和底線。此 regex 會比對名稱中含和不含時間戳記的日誌檔案。在此範例中，日誌管理員會上傳下列日誌檔案：  
+ `com.example.HelloWorld.log` – Hello World 元件的最新日誌檔案。
+ `com.example.HelloWorld_2020_12_15_17_0.log` – Hello World 元件的較舊日誌檔案。Greengrass 核將輪換時間戳記新增至日誌檔案。  
`deleteLogFileAfterCloudUpload`  <a name="log-manager-component-configuration-delete-log-file-after-cloud-upload"></a>
（選用） 您可以在日誌管理員元件將日誌上傳至 CloudWatch Logs 後刪除日誌檔案。  
預設：`false`  
`multiLineStartPattern`  <a name="log-manager-component-configuration-component-multi-line-start-pattern"></a>
（選用） 規則表達式，可識別新行上的日誌訊息何時是新的日誌訊息。如果規則表達式不符合新行，日誌管理員元件會將新行附加到上一行的日誌訊息。  
根據預設，日誌管理員元件會檢查該行是否以空格字元開頭，例如標籤或空格。如果沒有，日誌管理員會將該行視為新的日誌訊息處理。否則，它會將該行附加到目前的日誌訊息。此行為可確保日誌管理員元件不會分割跨越多行的訊息，例如堆疊追蹤。

`periodicUploadIntervalSec`  
（選用） 以秒為單位的期間，日誌管理員元件會檢查要上傳的新日誌檔案。  
預設：`300`(5 分鐘）  
下限：`0.000001`(1 微秒）

**Example 範例：組態合併更新**  
下列範例組態指定 將系統日誌和`com.example.HelloWorld`元件日誌上傳至 CloudWatch Logs。  

```
{
  "logsUploaderConfiguration": {
    "systemLogsConfiguration": {
      "uploadToCloudWatch": "true",
      "minimumLogLevel": "INFO",
      "diskSpaceLimit": "10",
      "diskSpaceLimitUnit": "MB",
      "deleteLogFileAfterCloudUpload": "false"
    },
    "componentLogsConfiguration": [
      {
        "componentName": "com.example.HelloWorld",
        "minimumLogLevel": "INFO",
        "logFileDirectoryPath": "/greengrass/v2/logs",
        "logFileRegex": "com.example.HelloWorld\\w*.log",
        "diskSpaceLimit": "20",
        "diskSpaceLimitUnit": "MB",
        "deleteLogFileAfterCloudUpload": "false"
      }
    ]
  },
  "periodicUploadIntervalSec": "300"
}
```

------

## Usage
<a name="log-manager-component-usage"></a>

日誌管理員元件會上傳至下列日誌群組和日誌串流。

------
#### [ 2.1.0 and later ]<a name="log-manager-log-group-stream-format"></a>

**日誌群組名稱**  

```
/aws/greengrass/componentType/region/componentName
```
日誌群組名稱使用下列變數：  
+ `componentType` – 元件的類型，可以是下列其中一項：
  + `GreengrassSystemComponent` – 此日誌群組包含核心和外掛程式元件的日誌，這些元件在與 Greengrass 核心相同的 JVM 中執行。元件是 [Greengrass 核](greengrass-nucleus-component.md)的一部分。
  + `UserComponent` – 此日誌群組包含一般元件、Lambda 元件和裝置上的其他應用程式的日誌。元件不是 Greengrass 核的一部分。

  如需詳細資訊，請參閱[元件類型](develop-greengrass-components.md#component-types)。
+ `region` – 核心裝置使用的 AWS 區域。
+ `componentName` – 元件的名稱。對於系統日誌，此值為 `System`。

**日誌串流名稱**  

```
/date/thing/thingName
```
日誌串流名稱使用下列變數：  
+ `date` – 日誌的日期，例如 `2020/12/15`。日誌管理員元件使用 `yyyy/MM/dd` 格式。
+ `thingName` – 核心裝置的名稱。
如果物件名稱包含冒號 (`:`)，則日誌管理員會以加號 () 取代冒號`+`。

------
#### [ 2.0.x ]

**日誌群組名稱**  

```
/aws/greengrass/componentType/region/componentName
```
日誌群組名稱使用下列變數：  
+ `componentType` – 元件的類型，可以是下列其中一項：
  + `GreengrassSystemComponent` – 元件是 [Greengrass 核](greengrass-nucleus-component.md)的一部分。
  + `UserComponent` – 元件不屬於 Greengrass 核。日誌管理員會將此類型用於裝置的 Greengrass 元件和其他應用程式。
+ `region` – 核心裝置使用的 AWS 區域。
+ `componentName` – 元件的名稱。對於系統日誌，此值為 `System`。

**日誌串流名稱**  

```
/date/deploymentTargets/thingName
```
日誌串流名稱使用下列變數：  
+ `date` – 日誌的日期，例如 `2020/12/15`。日誌管理員元件使用 `yyyy/MM/dd` 格式。
+ `deploymentTargets` – 部署包含 元件的物件。日誌管理員元件會以斜線分隔每個目標。如果元件因為本機部署而在核心裝置上執行，則此值為 `LOCAL_DEPLOYMENT`。

  假設您有一個名為 的核心裝置`MyGreengrassCore`，而核心裝置有兩個部署的範例：
  + 以核心裝置為目標的部署，`MyGreengrassCore`。
  + 以名為 的物件群組為目標的部署`MyGreengrassCoreGroup`，其中包含核心裝置。

  `deploymentTargets` 此核心裝置的 為 `thing/MyGreengrassCore/thinggroup/MyGreengrassCoreGroup`。
+ `thingName` – 核心裝置的名稱。

------

### 日誌項目的格式。
<a name="log-manager-entry-format"></a>

Greengrass 核會以字串或 JSON 格式寫入日誌檔案。對於系統日誌，您可以透過設定`logging`項目`format`的欄位來控制格式。您可以在 Greengrass 核元件的組態檔案中找到 `logging`項目。如需詳細資訊，請參閱 [Greengrass 核組態](https://docs.aws.amazon.com/greengrass/v2/developerguide/greengrass-nucleus-component.html#greengrass-nucleus-component-configuration)。

文字格式為自由格式，並接受任何字串。下列機群狀態服務訊息是字串格式化記錄的範例：

```
2023-03-26T18:18:27.271Z [INFO] (pool-1-thread-2)
com.aws.greengrass.status.FleetStatusService: fss-status-update-published. 
Status update published to FSS. {trigger=CADENCE, serviceName=FleetStatusService, 
currentState=RUNNING}
```

如果您想要使用 [Greengrass CLI 日誌](https://docs.aws.amazon.com/greengrass/v2/developerguide/gg-cli-logs.html)命令檢視日誌或以程式設計方式與日誌互動，您應該使用 JSON 格式。下列範例概述 JSON 形狀：

```
{
   "loggerName": <string>,
   "level": <"DEBUG" | "INFO" | "ERROR" | "TRACE" | "WARN">,
   "eventType": <string, optional>,
   "cause": <string, optional>,
   "contexts": {},
   "thread": <string>,
   "message": <string>,
   "timestamp": <epoch time> # Needs to be epoch time
}
```

若要控制元件日誌的輸出，您可以使用 `minimumLogLevel`組態選項。若要使用此選項，您的元件必須以 JSON 格式寫入其日誌項目。您應該使用與系統日誌檔案相同的格式。

## 本機日誌檔案
<a name="log-manager-component-log-file"></a>

此元件使用與 [Greengrass 核](greengrass-nucleus-component.md)元件相同的日誌檔案。

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

```
/greengrass/v2/logs/greengrass.log
```

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

```
C:\greengrass\v2\logs\greengrass.log
```

------

**檢視此元件的日誌**
+ 在核心裝置上執行下列命令，以即時檢視此元件的日誌檔案。將 `/greengrass/v2`或 *C：\$1greengrass\$1v2* 取代為 AWS IoT Greengrass 根資料夾的路徑。

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

  ```
  sudo tail -f /greengrass/v2/logs/greengrass.log
  ```

------
#### [ Windows (PowerShell) ]

  ```
  Get-Content C:\greengrass\v2\logs\greengrass.log -Tail 10 -Wait
  ```

------

## 變更記錄
<a name="log-manager-component-changelog"></a>

下表說明每個版本元件的變更。


|  **版本**  |  **變更**  | 
| --- | --- | 
|  2.3.11  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/log-manager-component.html)  | 
|  2.3.10  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/log-manager-component.html)  | 
|  2.3.9  |  針對 Greengrass nucleus 2.14.0 版更新版本。  | 
|  2.3.8  |  針對 Greengrass nucleus 2.13.0 版更新版本。  | 
|  2.3.7  |  針對 Greengrass nucleus 2.12.0 版更新版本。  | 
|  2.3.6  |  <a name="changelog-log-manager-2.3.6"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/log-manager-component.html)  | 
|  2.3.5  |  <a name="changelog-log-manager-2.3.5"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/log-manager-component.html) 針對 Greengrass nucleus 2.11.0 版更新版本。 | 
|  2.3.4  |  <a name="changelog-log-manager-2.3.4"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/log-manager-component.html)  | 
|  2.3.3  |  針對 Greengrass nucleus 2.10.0 版更新版本。  | 
|  2.3.2  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/log-manager-component.html)  | 
|  2.3.1  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/log-manager-component.html)  | 
|  2.3.0  |   當您升級至 log Manager 2.3.0 時，我們建議您升級至 Greengrass 核 2.9.1。   [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/log-manager-component.html)  | 
|  2.2.8  | 針對 Greengrass nucleus 2.9.0 版更新版本。 | 
|  2.2.7  | 針對 Greengrass nucleus 2.8.0 版更新版本。 | 
|  2.2.6  |  針對 Greengrass nucleus 2.7.0 版更新版本。  | 
|  2.2.5  |  針對 Greengrass nucleus 2.6.0 版更新版本。  | 
|  2.2.4  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/log-manager-component.html)  | 
|  2.2.3  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/log-manager-component.html)  | 
|  2.2.2  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/log-manager-component.html)  | 
|  2.2.1  |  針對 Greengrass nucleus 2.5.0 版更新版本。  | 
|  2.2.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/log-manager-component.html)  | 
|  2.1.3  |  針對 Greengrass nucleus 2.4.0 版更新版本。  | 
|  2.1.2  |  針對 Greengrass nucleus 2.3.0 版更新版本。  | 
|  2.1.1  |  <a name="changelog-log-manager-2.1.1"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/log-manager-component.html)  | 
|  2.1.0  |  <a name="changelog-log-manager-2.1.0"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/log-manager-component.html)  | 
|  2.0.x  |  初始版本。  | 

# 機器學習元件
<a name="machine-learning-components"></a>

AWS IoT Greengrass 提供下列機器學習元件，您可以將這些元件部署到支援的裝置，以使用在 Amazon SageMaker AI 中訓練的模型或儲存在 Amazon S3 中的您自己的預先訓練模型[來執行機器學習推論](perform-machine-learning-inference.md)。<a name="ml-component-types"></a>

AWS 提供以下類別的機器學習元件：
+ **模型元件** - 包含機器學習模型做為 Greengrass 成品。
+ **執行期元件** - 包含在 Greengrass 核心裝置上安裝機器學習架構及其相依性的指令碼。
+ **推論元件** - 包含推論程式碼，並包含元件相依性，以安裝機器學習架構並下載預先訓練的機器學習模型。

您可以在 AWS提供的機器學習元件中使用範例推論程式碼和預先訓練的模型，以使用 DLR 和 TensorFlow Lite 執行影像分類和物件偵測。若要使用存放在 Amazon S3 中的自有模型執行自訂機器學習推論，或使用不同的機器學習架構，您可以使用這些公有元件的配方做為範本來建立自訂機器學習元件。如需詳細資訊，請參閱[自訂您的機器學習元件](ml-customization.md)。

AWS IoT Greengrass 也包含 AWS提供的元件，可在 Greengrass 核心裝置上管理 SageMaker AI Edge Manager 代理程式的安裝和生命週期。透過 SageMaker AI Edge Manager，您可以直接在核心裝置上使用 Amazon SageMaker AI Neo 編譯模型。如需詳細資訊，請參閱[在 Greengrass 核心裝置上使用 Amazon SageMaker AI Edge Manager](use-sagemaker-edge-manager.md)。

下表列出 中可用的機器學習元件 AWS IoT Greengrass。

**注意**  <a name="component-nucleus-dependency-update-note"></a>
數個 AWS提供的元件取決於 Greengrass 核的特定次要版本。由於此相依性，當您將 Greengrass 核更新為新的次要版本時，您需要更新這些元件。如需每個元件所依賴之核的特定版本的資訊，請參閱對應的元件主題。如需更新核心的詳細資訊，請參閱 [更新 AWS IoT Greengrass 核心軟體 (OTA)](update-greengrass-core-v2.md)。

<a name="component-table-type-description"></a>當元件同時具有通用和 Lambda 的元件類型時，元件的目前版本是通用類型，而元件的先前版本是 Lambda 類型。


| 元件 | 說明 | [元件類型](develop-greengrass-components.md#component-types) | 支援的作業系統 | [開放原始碼](open-source.md) | 
| --- | --- | --- | --- | --- | 
| [SageMaker AI Edge Manager](sagemaker-edge-manager-component.md) | 在 Greengrass 核心裝置上部署 Amazon SageMaker AI Edge Manager 代理程式。 | 一般 | Linux、Windows | 否 | 
| [DLR 影像分類](dlr-image-classification-component.md) | 使用 DLR 影像分類模型存放區和 DLR 執行期元件做為相依性的推論元件，以安裝 DLR、下載範例影像分類模型，以及在支援的裝置上執行影像分類推論。 | 一般 | Linux、Windows | 否 | 
| [DLR 物件偵測](dlr-object-detection-component.md) | 使用 DLR 物件偵測模型存放區和 DLR 執行期元件做為相依性的推論元件，以安裝 DLR、下載範例物件偵測模型，以及在支援的裝置上執行物件偵測推論。 | 一般 | Linux、Windows | 否 | 
| [DLR 影像分類模型存放區](dlr-image-classification-model-store-component.md) | 模型元件，其中包含做為 Greengrass 成品的範例 ResNet-50 影像分類模型。 | 一般 | Linux、Windows | 否 | 
| [DLR 物件偵測模型存放區](dlr-object-detection-model-store-component.md) | 模型元件，其中包含做為 Greengrass 成品的範例 YOLOv3 物件偵測模型。 | 一般 | Linux、Windows | 否 | 
| [DLR 執行時間](dlr-component.md) | 包含安裝指令碼的執行期元件，用於在 Greengrass 核心裝置上安裝 DLR 及其相依性。 | 一般 | Linux、Windows | 否 | 
| [TensorFlow Lite 影像分類](tensorflow-lite-image-classification-component.md) | 使用 TensorFlow Lite 影像分類模型存放區和 TensorFlow Lite 執行期元件做為相依性的推論元件，以安裝 TensorFlow Lite、下載範例影像分類模型，以及在支援的裝置上執行影像分類推論。 | 一般 | Linux、Windows | 否 | 
| [TensorFlow Lite 物件偵測](tensorflow-lite-object-detection-component.md) | 使用 TensorFlow Lite 物件偵測模型存放區和 TensorFlow Lite 執行期元件做為相依性的推論元件，以安裝 TensorFlow Lite、下載範例物件偵測模型，以及在支援的裝置上執行物件偵測推論。 | 一般 | Linux、Windows | 否 | 
| [TensorFlow Lite 影像分類模型存放區](tensorflow-lite-image-classification-model-store-component.md) | 模型元件，其中包含做為 Greengrass 成品的範例 MobileNet v1 模型。 | 一般 | Linux、Windows | 否 | 
| [TensorFlow Lite 物件偵測模型存放區](tensorflow-lite-object-detection-model-store-component.md) | 模型元件，其中包含做為 Greengrass 成品的範例單一鏡頭偵測 (SSD) MobileNet 模型。 | 一般 | Linux、Windows | 否 | 
| [TensorFlow Lite 執行時間](tensorflow-lite-component.md) | 包含安裝指令碼的執行期元件，用於在 Greengrass 核心裝置上安裝 TensorFlow Lite 及其相依性。 | 一般 | Linux、Windows | 否 | 

# SageMaker AI Edge Manager
<a name="sagemaker-edge-manager-component"></a>

**重要**  
SageMaker AI Edge Manager 已於 2024 年 4 月 26 日終止。如需繼續將模型部署到邊緣裝置的詳細資訊，請參閱 [SageMaker AI Edge Manager 生命週期結束](https://docs.aws.amazon.com/sagemaker/latest/dg/edge-eol.html)。

Amazon SageMaker AI Edge Manager 元件 (`aws.greengrass.SageMakerEdgeManager`) 安裝 SageMaker AI Edge Manager 代理程式二進位檔。

SageMaker AI Edge Manager 為邊緣裝置提供模型管理，讓您可以在邊緣裝置機群上最佳化、保護、監控和維護機器學習模型。SageMaker AI Edge Manager 元件會在您的核心裝置上安裝和管理 SageMaker AI Edge Manager 代理程式的生命週期。您也可以使用 SageMaker AI Edge Manager 封裝和使用 SageMaker AI Neo 編譯模型作為 Greengrass 核心裝置上的模型元件。如需在核心裝置上使用 SageMaker AI Edge Manager 代理程式的詳細資訊，請參閱 [在 Greengrass 核心裝置上使用 Amazon SageMaker AI Edge Manager](use-sagemaker-edge-manager.md)。

SageMaker AI Edge Manager 元件 v1.3.x 安裝 Edge Manager 代理程式二進位 v1.20220822.836f3023。如需 Edge Manager 代理程式二進位版本的詳細資訊，請參閱 [Edge Manager 代理程式](https://docs.aws.amazon.com/sagemaker/latest/dg/edge-device-fleet-about)。

**注意**  
SageMaker AI Edge Manager 元件僅適用於下列項目 AWS 區域：  
美國東部 (俄亥俄)
美國東部 (維吉尼亞北部)
美國西部 (奧勒岡)
歐洲 (法蘭克福)
歐洲 (愛爾蘭)
亞太地區 (東京)

**Topics**
+ [版本](#sagemaker-edge-manager-component-versions)
+ [類型](#sagemaker-edge-manager-component-type)
+ [作業系統](#sagemaker-edge-manager-component-os-support)
+ [要求](#sagemaker-edge-manager-component-requirements)
+ [相依性](#sagemaker-edge-manager-component-dependencies)
+ [Configuration](#sagemaker-edge-manager-component-configuration)
+ [本機日誌檔案](#sagemaker-edge-manager-component-log-file)
+ [變更記錄](#sagemaker-edge-manager-component-changelog)

## 版本
<a name="sagemaker-edge-manager-component-versions"></a>

此元件具有下列版本：
+ 1.3.x
+ 1.2.x
+ 1.1.x
+ 1.0.x

## 類型
<a name="sagemaker-edge-manager-component-type"></a>

<a name="public-component-type-generic"></a>此<a name="public-component-type-generic-phrase"></a>元件是一般元件 (`aws.greengrass.generic`)。[Greengrass 核](greengrass-nucleus-component.md)會執行元件的生命週期指令碼。

<a name="public-component-type-more-information"></a>如需詳細資訊，請參閱[元件類型](develop-greengrass-components.md#component-types)。

## 作業系統
<a name="sagemaker-edge-manager-component-os-support"></a>

此元件可以安裝在執行下列作業系統的核心裝置上：
+ Linux
+ Windows

## 要求
<a name="sagemaker-edge-manager-component-requirements"></a>

此元件有下列需求：<a name="sm-edge-manager-component-reqs"></a>
+ <a name="sm-req-core-device"></a>在 Amazon Linux 2 上執行的 Greengrass 核心裝置、以 Debian 為基礎的 Linux 平台 (x86\$164 或 Armv8) 或 Windows (x86\$164)。如果您沒有帳戶，請參閱 [教學課程：入門 AWS IoT Greengrass V2](getting-started.md)。
+ <a name="sm-req-python"></a>[Python](https://www.python.org/downloads/) 3.6 或更新版本，包括`pip`安裝在核心裝置上的 Python 版本。
+ 使用下列項目設定的 [Greengrass 裝置角色](device-service-role.md)：
  + <a name="sm-req-iam-trust-relationship"></a>允許 `credentials.iot.amazonaws.com`和 `sagemaker.amazonaws.com`擔任角色的信任關係，如下列 IAM 政策範例所示。

    ```
    { 
      "Version": "2012-10-17",		 	 	 
      "Statement": [ 
        { 
          "Effect": "Allow", 
          "Principal": {
            "Service": "credentials.iot.amazonaws.com"
           }, 
          "Action": "sts:AssumeRole" 
        },
        { 
          "Effect": "Allow", 
          "Principal": {
            "Service": "sagemaker.amazonaws.com"
          }, 
          "Action": "sts:AssumeRole" 
        } 
      ] 
    }
    ```
  + <a name="sm-req-iam-sagemanakeredgedevicefleetpolicy"></a>[AmazonSageMakerEdgeDeviceFleetPolicy](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/service-role/AmazonSageMakerEdgeDeviceFleetPolicy) IAM 受管政策。
  + <a name="sm-req-iam-s3-putobject"></a>`s3:PutObject` 動作，如下列 IAM 政策範例所示。

    ```
    {
      "Version": "2012-10-17",		 	 	 
      "Statement": [
        {
          "Action": [
            "s3:PutObject"
          ],
          "Resource": [
            "*"
          ],
          "Effect": "Allow"
        }
      ]
    }
    ```
+ <a name="sm-req-s3-bucket"></a>在與 Greengrass 核心裝置相同的 AWS 帳戶 和 中建立 AWS 區域 的 Amazon S3 儲存貯體。SageMaker AI Edge Manager 需要 S3 儲存貯體來建立邊緣裝置機群，並儲存範例資料，避免在裝置上執行推論。如需建立 S3 儲存貯體的資訊，請參閱 [Amazon S3 入門](https://docs.aws.amazon.com/AmazonS3/latest/userguide/GetStartedWithS3.html)。
+ <a name="sm-req-edge-device-fleet"></a>使用與 Greengrass 核心裝置相同 AWS IoT 角色別名的 SageMaker AI 邊緣裝置機群。如需詳細資訊，請參閱[建立邊緣裝置機群](get-started-with-edge-manager-on-greengrass.md#create-edge-device-fleet-for-greengrass)。
+ <a name="sm-req-edge-device"></a>您的 Greengrass 核心裝置已註冊為 SageMaker AI Edge 裝置機群中的邊緣裝置。邊緣裝置名稱必須與核心裝置的 AWS IoT 物件名稱相符。如需詳細資訊，請參閱[註冊您的 Greengrass 核心裝置](get-started-with-edge-manager-on-greengrass.md#register-greengrass-core-device-in-sme)。

### 端點和連接埠
<a name="sagemaker-edge-manager-component-endpoints"></a>

除了基本操作所需的端點和連接埠之外，此元件還必須能夠對下列端點和連接埠執行傳出請求。如需詳細資訊，請參閱[允許透過代理或防火牆的裝置流量](allow-device-traffic.md)。


| Endpoint | 連線埠 | 必要 | 說明 | 
| --- | --- | --- | --- | 
|  `edge.sagemaker.region.amazonaws.com`  | 443 | 是 |  檢查裝置註冊狀態，並將指標傳送至 SageMaker AI。  | 
|  `*.s3.amazonaws.com`  | 443 | 是 |  將擷取資料上傳到您指定的 S3 儲存貯體。 您可以將 取代`*`為您上傳資料的每個儲存貯體的名稱。  | 

## 相依性
<a name="sagemaker-edge-manager-component-dependencies"></a>

當您部署元件時， AWS IoT Greengrass 也會部署其相依性的相容版本。這表示您必須符合元件及其所有相依性的要求，才能成功部署元件。本節列出此元件[發行版本的](#sagemaker-edge-manager-component-changelog)相依性，以及為每個相依性定義元件版本的語意版本限制。您也可以在 [AWS IoT Greengrass 主控台](https://console.aws.amazon.com//greengrass)中檢視每個版本元件的相依性。在元件詳細資訊頁面上，尋找**相依性**清單。

------
#### [ 1.3.5 and 1.3.6 ]

下表列出此元件 1.3.5 和 1.3.6 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.13.0 | 軟式 | 
| [字符交換服務](token-exchange-service-component.md) | >=0.0.0 | 硬式 | 

------
#### [ 1.3.4 ]

下表列出此元件 1.3.4 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.12.0 | 軟式 | 
| [字符交換服務](token-exchange-service-component.md) | >=0.0.0 | 硬式 | 

------
#### [ 1.3.3 ]

下表列出此元件 1.3.3 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.11.0 | 軟式 | 
| [權杖交換服務](token-exchange-service-component.md) | >=0.0.0 | 硬式 | 

------
#### [ 1.3.2 ]

下表列出此元件 1.3.2 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.10.0 | 軟式 | 
| [權杖交換服務](token-exchange-service-component.md) | >=0.0.0 | 硬式 | 

------
#### [ 1.3.1 ]

下表列出此元件 1.3.1 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.9.0 | 軟式 | 
| [權杖交換服務](token-exchange-service-component.md) | >=0.0.0 | 硬式 | 

------
#### [ 1.1.1 - 1.3.0 ]

下表列出此元件 1.1.1 - 1.3.0 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.8.0 | 軟式 | 
| [字符交換服務](token-exchange-service-component.md) | >=0.0.0 | 硬式 | 

------
#### [ 1.1.0 ]

下表列出此元件 1.1.0 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.6.0 | 軟式 | 
| [字符交換服務](token-exchange-service-component.md) | >=0.0.0 | 硬式 | 

------
#### [ 1.0.3 ]

下表列出此元件 1.0.3 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.5.0 | 軟式 | 
| [字符交換服務](token-exchange-service-component.md) | >=0.0.0 | 硬式 | 

------
#### [ 1.0.1 and 1.0.2 ]

下表列出此元件 1.0.1 和 1.0.2 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.4.0 | 軟式 | 
| [權杖交換服務](token-exchange-service-component.md) | >=0.0.0 | 硬式 | 

------
#### [ 1.0.0 ]

下表列出此元件 1.0.0 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.3.0 | 軟式 | 
| [權杖交換服務](token-exchange-service-component.md) | >=0.0.0 | 硬式 | 

------

如需元件相依性的詳細資訊，請參閱[元件配方參考](component-recipe-reference.md#recipe-reference-component-dependencies)。

## Configuration
<a name="sagemaker-edge-manager-component-configuration"></a>

此元件提供下列組態參數，您可以在部署元件時自訂這些參數。

**注意**  
本節說明您在 元件中設定的組態參數。如需對應 SageMaker AI Edge Manager 組態的詳細資訊，請參閱《*Amazon SageMaker AI 開發人員指南*》中的 [Edge Manager Agent](https://docs.aws.amazon.com/sagemaker/latest/dg/edge-device-fleet-about.html#edge-device-fleet-running-agent)。

`DeviceFleetName`  
包含 Greengrass 核心裝置的 SageMaker AI Edge Manager 裝置機群名稱。  
部署此元件時，您必須在組態更新中指定此參數的值。

`BucketName`  
您上傳擷取推論資料的 S3 儲存貯體名稱。儲存貯體名稱必須包含字串 `sagemaker`。  
如果您將 `CaptureDataDestination`設定為 `Cloud`，或者將 `CaptureDataPeriodicUpload`設定為 `true`，則您必須在部署此元件時，於組態更新中指定此參數的值。  
擷取資料是一種 SageMaker AI 功能，可用來將推論輸入、推論結果和其他推論資料上傳至 S3 儲存貯體或本機目錄，以供未來分析。如需搭配 SageMaker AI Edge Manager 使用擷取資料的詳細資訊，請參閱《*Amazon SageMaker AI 開發人員指南*》中的[管理模型](https://docs.aws.amazon.com/sagemaker/latest/dg/edge-manage-model.html#edge-manage-model-capturedata)。

`CaptureDataBatchSize`  
（選用） 代理程式處理的擷取資料請求批次大小。此值必須小於您在 中指定的緩衝區大小`CaptureDataBufferSize`。建議您不要超過緩衝區大小的一半。  
當緩衝區中的請求數量符合`CaptureDataBatchSize`數量，或`CaptureDataPushPeriodSeconds`間隔經過時，代理程式會處理請求批次，以先發生者為準。  
預設：`10`

`CaptureDataBufferSize`  
（選用） 存放在緩衝區中的擷取資料請求數目上限。  
預設：`30`

`CaptureDataDestination`  
（選用） 存放擷取資料的目的地。此參數可以有下列值：  
+ `Cloud`- 將擷取的資料上傳到您在 中指定的 S3 儲存貯體`BucketName`。
+ `Disk`- 將擷取的資料寫入元件的工作目錄。
如果您指定 `Disk`，您也可以選擇將 `CaptureDataPeriodicUpload`設定為 ，定期將擷取的資料上傳到您的 S3 儲存貯體`true`。  
預設：`Cloud`

`CaptureDataPeriodicUpload`  
（選用） 字串值，指定是否定期上傳擷取的資料。支援的值為 `true` 和 `false`。  
`true` 如果您將 設定為 `Disk`，且也希望代理程式定期上傳 S3 儲存貯體擷取的資料，請將此參數`CaptureDataDestination`設定為 。  
預設：`false`

`CaptureDataPeriodicUploadPeriodSeconds`  
（選用） SageMaker AI Edge Manager 代理程式將擷取資料上傳至 S3 儲存貯體的間隔，以秒為單位。如果您將 `CaptureDataPeriodicUpload`設定為 ，請使用此參數`true`。  
預設：`8`

`CaptureDataPushPeriodSeconds`  
（選用） SageMaker AI Edge Manager 代理程式處理緩衝區批次擷取資料請求的間隔，以秒為單位。  
當緩衝區中的請求數量符合`CaptureDataBatchSize`數量，或`CaptureDataPushPeriodSeconds`間隔經過時，代理程式會處理請求批次，以先發生者為準。  
預設：`4`

`CaptureDataBase64EmbedLimit`  
（選用） SageMaker AI Edge Manager 代理程式上傳的擷取資料位元組大小上限。  
預設：`3072`

`FolderPrefix`  
（選用） 代理程式寫入擷取資料的資料夾名稱。如果您將 `CaptureDataDestination`設定為 `Disk`，代理程式會在 指定的目錄中建立 資料夾`CaptureDataDiskPath`。如果您將 `CaptureDataDestination` 設定為 `Cloud`，或者將 `CaptureDataPeriodicUpload`設定為 `true`，則代理程式會在 S3 儲存貯體中建立 資料夾。  
預設：`sme-capture`

`CaptureDataDiskPath`  
此功能可在 SageMaker AI Edge Manager 元件的 v1.1.0 和更新版本中使用。  
（選用） 代理程式建立擷取資料資料夾的資料夾路徑。如果您將 `CaptureDataDestination`設定為 `Disk`，代理程式會在此目錄中建立擷取的資料資料夾。如果您未指定此值，代理程式會在元件的工作目錄中建立擷取的資料資料夾。使用 `FolderPrefix` 參數來指定擷取資料資料夾的名稱。  
預設：`/greengrass/v2/work/aws.greengrass.SageMakerEdgeManager/capture`

`LocalDataRootPath`  
此功能可在 SageMaker AI Edge Manager 元件的 v1.2.0 和更新版本中使用。  
（選用） 此元件在核心裝置上存放下列資料的路徑：  
+ 將 `DbEnable`設定為 時，執行時間資料的本機資料庫`true`。
+ 當您將 `DeploymentEnable`設定為 時，此元件會自動下載的 SageMaker AI Neo 編譯模型`true`。
預設：`/greengrass/v2/work/aws.greengrass.SageMakerEdgeManager`

`DbEnable`  
（選用） 您可以讓此元件在本機資料庫中存放執行時間資料以保留資料，以防元件故障或裝置斷電。  
此資料庫在核心裝置的檔案系統上需要 5 MB 的儲存空間。  
預設：`false`

`DeploymentEnable`  
此功能可在 SageMaker AI Edge Manager 元件的 v1.2.0 和更新版本中使用。  
（選用） 您可以啟用此元件，從您上傳至 Amazon S3 的模型中自動擷取 SageMaker AI Neo 編譯的模型。將新模型上傳至 Amazon S3 之後，請使用 SageMaker AI Studio 或 SageMaker AI API 將新模型部署至此核心裝置。當您啟用此功能時，您可以將新模型部署到核心裝置，而不需要建立 AWS IoT Greengrass 部署。  
若要使用此功能，您必須將 `DbEnable`設定為 `true`。此功能使用本機資料庫來追蹤從 擷取的模型 AWS 雲端。
預設：`false`

`DeploymentPollInterval`  
此功能可在 SageMaker AI Edge Manager 元件的 v1.2.0 和更新版本中使用。  
（選用） 此元件檢查要下載的新模型之間的時間量 （分鐘）。當您將 `DeploymentEnable`設定為 時，此選項適用`true`。  
預設：`1440`(1 天）

`DLRBackendOptions`  
此功能可在 SageMaker AI Edge Manager 元件的 v1.2.0 和更新版本中使用。  
（選用） 此元件使用的 DLR 執行期中要設定的 DLR 執行期旗標。您可以設定下列旗標：  
+ `TVM_TENSORRT_CACHE_DIR` – 啟用 TensorRT 模型快取。指定具有讀取/寫入許可的現有資料夾的絕對路徑。
+ `TVM_TENSORRT_CACHE_DISK_SIZE_MB` – 指派 TensorRT 模型快取資料夾的上限。當目錄大小超過此限制時，最少使用的快取引擎會被刪除。預設值為 512 MB。
例如，您可以將此參數設定為下列值，以啟用 TensorRT 模型快取，並將快取大小限制為 800 MB。  

```
TVM_TENSORRT_CACHE_DIR=/data/secured_folder/trt/cache; TVM_TENSORRT_CACHE_DISK_SIZE_MB=800
```

`SagemakerEdgeLogVerbose`  
（選用） 指定是否啟用偵錯記錄的字串值。支援的值為 `true` 和 `false`。  
預設：`false`

`UnixSocketName`  
（選用） 核心裝置上 SageMaker AI Edge Manager 通訊端檔案描述項的位置。  
預設：`/tmp/aws.greengrass.SageMakerEdgeManager.sock`

**Example 範例：組態合併更新**  
下列範例組態指定核心裝置是 *MyEdgeDeviceFleet* 的一部分，且代理程式會將擷取資料寫入裝置和 S3 儲存貯體。此組態也會啟用偵錯記錄。  

```
{
    "DeviceFleetName": "MyEdgeDeviceFleet",
    "BucketName": "amzn-s3-demo-bucket",
    "CaptureDataDestination": "Disk",
    "CaptureDataPeriodicUpload": "true",
    "SagemakerEdgeLogVerbose": "true"    
}
```

## 本機日誌檔案
<a name="sagemaker-edge-manager-component-log-file"></a>

此元件使用以下日誌檔案。

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

```
/greengrass/v2/logs/aws.greengrass.SageMakerEdgeManager.log
```

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

```
C:\greengrass\v2\logs\aws.greengrass.SageMakerEdgeManager.log
```

------

**檢視此元件的日誌**
+ 在核心裝置上執行下列命令，以即時檢視此元件的日誌檔案。將 `/greengrass/v2`或 *C：\$1greengrass\$1v2* 取代為 AWS IoT Greengrass 根資料夾的路徑。

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

  ```
  sudo tail -f /greengrass/v2/logs/aws.greengrass.SageMakerEdgeManager.log
  ```

------
#### [ Windows (PowerShell) ]

  ```
  Get-Content C:\greengrass\v2\logs\aws.greengrass.SageMakerEdgeManager.log -Tail 10 -Wait
  ```

------

## 變更記錄
<a name="sagemaker-edge-manager-component-changelog"></a>

下表說明每個版本元件的變更。


|  **版本**  |  **變更**  | 
| --- | --- | 
|  1.3.6  |  針對 Greengrass 核 2.12.5 版更新版本。  | 
|  1.3.5  | 針對 Greengrass nucleus 2.12.0 版更新版本。 | 
|  1.3.4  | 針對 Greengrass nucleus 2.11.0 版更新版本。 | 
|  1.3.3  | 針對 Greengrass nucleus 2.10.0 版更新版本。 | 
|  1.3.2  | 針對 Greengrass nucleus 2.9.0 版更新版本。 | 
|  1.3.1  | 針對 Greengrass nucleus 2.8.0 版更新版本。 | 
|  1.3.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/sagemaker-edge-manager-component.html)  | 
|  1.2.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/sagemaker-edge-manager-component.html)  | 
|  1.1.1  |  針對 Greengrass nucleus 2.7.0 版更新版本。  | 
|  1.1.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/sagemaker-edge-manager-component.html)  | 
|  1.0.3  |  針對 Greengrass nucleus 2.4.0 版更新版本。  | 
|  1.0.2  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/sagemaker-edge-manager-component.html)  | 
|  1.0.1  |  針對 Greengrass nucleus 2.3.0 版更新版本。  | 
|  1.0.0  |  初始版本。  | 

# DLR 影像分類
<a name="dlr-image-classification-component"></a>

DLR 影像分類元件 (`aws.greengrass.DLRImageClassification`) 包含使用 [Deep Learning Runtime](https://github.com/neo-ai/neo-ai-dlr) 和 resnet-50 模型執行影像分類推論的範例推論程式碼。此元件使用變體[DLR 影像分類模型存放區](dlr-image-classification-model-store-component.md)和[DLR 執行時間](dlr-component.md)元件做為相依性，以下載 DLR 和範例模型。

若要搭配自訂訓練的 DLR 模型使用此推論元件，[請建立相依模型存放區元件的自訂版本](ml-customization.md#override-public-model-store)。若要使用您自己的自訂推論程式碼，您可以使用此元件的配方做為範本來[建立自訂推論元件](ml-customization.md#create-inference-component)。

**Topics**
+ [版本](#dlr-image-classification-component-versions)
+ [類型](#dlr-image-classification-component-type)
+ [作業系統](#dlr-image-classification-component-os-support)
+ [要求](#dlr-image-classification-component-requirements)
+ [相依性](#dlr-image-classification-component-dependencies)
+ [Configuration](#dlr-image-classification-component-configuration)
+ [本機日誌檔案](#dlr-image-classification-component-log-file)
+ [變更記錄](#dlr-image-classification-component-changelog)

## 版本
<a name="dlr-image-classification-component-versions"></a>

此元件具有下列版本：
+ 2.1.x
+ 2.0.x

## 類型
<a name="dlr-image-classification-component-type"></a>

<a name="public-component-type-generic"></a>此<a name="public-component-type-generic-phrase"></a>元件是一般元件 (`aws.greengrass.generic`)。[Greengrass 核](greengrass-nucleus-component.md)會執行元件的生命週期指令碼。

<a name="public-component-type-more-information"></a>如需詳細資訊，請參閱[元件類型](develop-greengrass-components.md#component-types)。

## 作業系統
<a name="dlr-image-classification-component-os-support"></a>

此元件可以安裝在執行下列作業系統的核心裝置上：
+ Linux
+ Windows

## 要求
<a name="dlr-image-classification-component-requirements"></a>

此元件有下列需求：<a name="ml-component-requirements"></a>
+ 在執行 Amazon Linux 2 或 Ubuntu 18.04 的 Greengrass 核心裝置上，[GNU C Library](https://www.gnu.org/software/libc/) (glibc) 2.27 版或更新版本安裝在裝置上。
+ 在 Armv7l 裝置上，例如 Raspberry Pi，安裝在裝置上的 OpenCV-Python 相依性。執行下列命令來安裝相依性。

  ```
  sudo apt-get install libopenjp2-7 libilmbase23 libopenexr-dev libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libgtk-3-0 libwebp-dev
  ```
+ 執行 Raspberry Pi OS Bullseye 的 Raspberry Pi 裝置必須符合下列要求：
  + 裝置上已安裝 NumPy 1.22.4 或更新版本。Raspberry Pi OS Bullseye 包含舊版的 NumPy，因此您可以執行下列命令以在裝置上升級 NumPy。

    ```
    pip3 install --upgrade numpy
    ```
  + 裝置上啟用的舊版攝影機堆疊。Raspberry Pi OS Bullseye 包含預設啟用且不相容的新攝影機堆疊，因此您必須啟用舊版攝影機堆疊。<a name="raspberry-pi-bullseye-enable-legacy-camera-stack"></a>

**啟用舊版攝影機堆疊**

    1. 執行下列命令以開啟 Raspberry Pi 組態工具。

       ```
       sudo raspi-config
       ```

    1. 選取**界面選項**。

    1. 選取**舊版攝影機**以啟用舊版攝影機堆疊。

    1. 重新啟動 Raspberry Pi。

## 相依性
<a name="dlr-image-classification-component-dependencies"></a>

當您部署元件時， AWS IoT Greengrass 也會部署其相依性的相容版本。這表示您必須符合元件及其所有相依性的要求，才能成功部署元件。本節列出此元件[發行版本的](#dlr-image-classification-component-changelog)相依性，以及為每個相依性定義元件版本的語意版本限制。您也可以在 [AWS IoT Greengrass 主控台](https://console.aws.amazon.com//greengrass)中檢視每個版本元件的相依性。在元件詳細資訊頁面上，尋找**相依性**清單。

------
#### [ 2.1.13 and 2.1.14 ]

下表列出此元件 2.1.13 和 2.1.14 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.13.0 | 軟式 | 
| [DLR 影像分類模型存放區](dlr-image-classification-model-store-component.md) | \$12.1.0 | 硬式 | 
| [DLR](dlr-component.md) | \$11.6.0 | 硬式 | 

------
#### [ 2.1.12 ]

下表列出此元件 2.1.12 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.12.0 | 軟式 | 
| [DLR 影像分類模型存放區](dlr-image-classification-model-store-component.md) | \$12.1.0 | 硬式 | 
| [DLR](dlr-component.md) | \$11.6.0 | 硬式 | 

------
#### [ 2.1.11 ]

下表列出此元件 2.1.11 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.11.0 | 軟式 | 
| [DLR 影像分類模型存放區](dlr-image-classification-model-store-component.md) | \$12.1.0 | 硬式 | 
| [DLR](dlr-component.md) | \$11.6.0 | 硬式 | 

------
#### [ 2.1.10 ]

下表列出此元件 2.1.10 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.10.0 | 軟式 | 
| [DLR 影像分類模型存放區](dlr-image-classification-model-store-component.md) | \$12.1.0 | 硬式 | 
| [DLR](dlr-component.md) | \$11.6.0 | 硬式 | 

------
#### [ 2.1.9 ]

下表列出此元件 2.1.9 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.9.0 | 軟式 | 
| [DLR 影像分類模型存放區](dlr-image-classification-model-store-component.md) | \$12.1.0 | 硬式 | 
| [DLR](dlr-component.md) | \$11.6.0 | 硬式 | 

------
#### [ 2.1.8 ]

下表列出此元件 2.1.8 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.8.0 | 軟式 | 
| [DLR 影像分類模型存放區](dlr-image-classification-model-store-component.md) | \$12.1.0 | 硬式 | 
| [DLR](dlr-component.md) | \$11.6.0 | 硬式 | 

------
#### [ 2.1.7 ]

下表列出此元件 2.1.7 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.7.0 | 軟式 | 
| [DLR 影像分類模型存放區](dlr-image-classification-model-store-component.md) | \$12.1.0 | 硬式 | 
| [DLR](dlr-component.md) | \$11.6.0 | 硬式 | 

------
#### [ 2.1.6 ]

下表列出此元件 2.1.6 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.6.0 | 軟式 | 
| [DLR 影像分類模型存放區](dlr-image-classification-model-store-component.md) | \$12.1.0 | 硬式 | 
| [DLR](dlr-component.md) | \$11.6.0 | 硬式 | 

------
#### [ 2.1.4 - 2.1.5 ]

下表列出此元件 2.1.4 至 2.1.5 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.5.0 | 軟式 | 
| [DLR 影像分類模型存放區](dlr-image-classification-model-store-component.md) | \$12.1.0 | 硬式 | 
| [DLR](dlr-component.md) | \$11.6.0 | 硬式 | 

------
#### [ 2.1.3 ]

下表列出此元件 2.1.3 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.4.0 | 軟式 | 
| [DLR 影像分類模型存放區](dlr-image-classification-model-store-component.md) | \$12.1.0 | 硬式 | 
| [DLR](dlr-component.md) | \$11.6.0 | 硬式 | 

------
#### [ 2.1.2 ]

下表列出此元件 2.1.2 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.3.0 | 軟式 | 
| [DLR 影像分類模型存放區](dlr-image-classification-model-store-component.md) | \$12.1.0 | 硬式 | 
| [DLR](dlr-component.md) | \$11.6.0 | 硬式 | 

------
#### [ 2.1.1 ]

下表列出此元件 2.1.1 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.2.0 | 軟式 | 
| [DLR 影像分類模型存放區](dlr-image-classification-model-store-component.md) | \$12.1.0 | 硬式 | 
| [DLR](dlr-component.md) | \$11.6.0 | 硬式 | 

------
#### [ 2.0.x ]

下表列出此元件 2.0.x 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | \$12.0.0 | 軟式 | 
| DLR 影像分類模型存放區 | \$12.0.0 | 硬式 | 
| DLR | \$11.3.0 | 軟式 | 

------

## Configuration
<a name="dlr-image-classification-component-configuration"></a>

此元件提供下列組態參數，您可以在部署元件時自訂這些參數。

------
#### [ 2.1.x ]

`accessControl`  
<a name="ml-config-accesscontrol-desc"></a>（選用） 包含[授權政策](interprocess-communication.md#ipc-authorization-policies)的物件，允許元件將訊息發佈至預設通知主題。  
預設：  

```
{
   "aws.greengrass.ipc.mqttproxy": {
      "aws.greengrass.DLRImageClassification:mqttproxy:1": {
         "policyDescription": "Allows access to publish via topic ml/dlr/image-classification.",
         "operations": [
            "aws.greengrass#PublishToIoTCore"
         ],
         "resources": [
            "ml/dlr/image-classification"
         ]
      }
   }
}
```

`PublishResultsOnTopic`  
<a name="ml-config-publishresultsontopic-desc"></a>（選用） 您要發佈推論結果的主題。如果您修改此值，則也必須修改 `accessControl` 參數`resources`中的 值，以符合您的自訂主題名稱。  
預設：`ml/dlr/image-classification`

`Accelerator`  <a name="ml-config-accelerator"></a>
您要使用的加速器。支援的值為 `cpu` 和 `gpu`。  
相依模型元件中的範例模型僅支援 CPU 加速。若要搭配不同的自訂模型使用 GPU 加速，[請建立自訂模型元件](ml-customization.md#override-public-model-store)以覆寫公有模型元件。  
預設：`cpu`

`ImageDirectory`  
<a name="ml-config-imagedirectory-desc"></a>（選用） 推論元件讀取映像之裝置上的資料夾路徑。您可以將此值修改為您裝置上具有讀取/寫入存取權的任何位置。  
<a name="ml-config-imagedirectory-img-default"></a>預設：`/greengrass/v2/packages/artifacts-unarchived/component-name/image_classification/sample_images/`  
如果您將 的值設定為 `UseCamera` `true`，則會忽略此組態參數。

`ImageName`  
<a name="ml-config-imagename-desc"></a>（選用） 推論元件用來輸入進行預測的影像名稱。元件會在 中指定的資料夾中尋找映像`ImageDirectory`。根據預設，元件會使用預設映像目錄中的範例映像。 AWS IoT Greengrass 支援下列映像格式：`jpeg`、`png`、 `jpg`和 `npy`。  
<a name="ml-config-imagename-img-default"></a>預設：`cat.jpeg`  
如果您將 的值設定為 `UseCamera` `true`，則會忽略此組態參數。

`InferenceInterval`  <a name="ml-config-inferenceinterval"></a>
（選用） 推論程式碼所做的每個預測之間的秒數。範例推論程式碼會無限期執行，並在指定的時間間隔重複其預測。例如，如果您想要使用攝影機拍攝的影像進行即時預測，您可以將此值變更為較短的間隔。  
預設：`3600`

`ModelResourceKey`  <a name="ml-config-modelresourcekey"></a>
<a name="ml-config-modelresourcekey-desc"></a>（選用） 用於相依公有模型元件的模型。只有在您使用自訂元件覆寫公有模型元件時，才修改此參數。  
預設：  

```
{
    "armv7l": "DLR-resnet50-armv7l-cpu-ImageClassification",
    "aarch64": "DLR-resnet50-aarch64-cpu-ImageClassification",
    "x86_64": "DLR-resnet50-x86_64-cpu-ImageClassification",
    "windows": "DLR-resnet50-win-cpu-ImageClassification"
}
```

`UseCamera`  <a name="ml-config-usecamera"></a>
（選用） 字串值，定義是否使用連接至 Greengrass 核心裝置的攝影機的影像。支援的值為 `true` 和 `false`。  
當您將此值設定為 時`true`，範例推論程式碼會存取裝置上的攝影機，並在擷取的影像上本機執行推論。會忽略 `ImageName`和 `ImageDirectory` 參數的值。請確定執行此元件的使用者具有攝影機存放擷取影像之位置的讀取/寫入存取權。  
預設：`false`  
當您檢視此元件的配方時，`UseCamera`組態參數不會出現在預設組態中。不過，您可以在部署元件時修改[組態合併更新](update-component-configurations.md)中此參數的值。  
將 `UseCamera`設定為 時`true`，您還必須建立符號連結，讓推論元件從執行期元件建立的虛擬環境中存取您的攝影機。如需搭配範例推論元件使用攝影機的詳細資訊，請參閱 [更新元件組態](ml-tutorial-image-classification-camera.md)。

------
#### [ 2.0.x ]

`MLRootPath`  <a name="ml-config-mlrootpath"></a>
<a name="ml-config-mlrootpath-desc"></a>（選用） Linux 核心裝置上的資料夾路徑，其中推論元件會讀取映像和寫入推論結果。您可以將此值修改為裝置上執行此元件的使用者具有讀取/寫入存取權的任何位置。  
<a name="ml-config-mlrootpath-default-dlr"></a>預設：`/greengrass/v2/work/variant.DLR/greengrass_ml`  
<a name="ml-config-mlrootpath-default-tfl"></a>預設：`/greengrass/v2/work/variant.TensorFlowLite/greengrass_ml`

`Accelerator`  <a name="ml-config-accelerator"></a>
您要使用的加速器。支援的值為 `cpu` 和 `gpu`。  
相依模型元件中的範例模型僅支援 CPU 加速。若要搭配不同的自訂模型使用 GPU 加速，[請建立自訂模型元件](ml-customization.md#override-public-model-store)以覆寫公有模型元件。  
預設：`cpu`

`ImageName`  
<a name="ml-config-imagename-desc-dlr-1.3.0"></a>（選用） 推論元件用來輸入進行預測的影像名稱。元件會在 中指定的資料夾中尋找映像`ImageDirectory`。預設位置為 `MLRootPath/images`。 AWS IoT Greengrass 支援下列影像格式：`jpeg`、`png`、 `jpg`和 `npy`。  
<a name="ml-config-imagename-img-default"></a>預設：`cat.jpeg`

`InferenceInterval`  <a name="ml-config-inferenceinterval"></a>
（選用） 推論程式碼所做的每個預測之間的秒數。範例推論程式碼會無限期執行，並在指定的時間間隔重複其預測。例如，如果您想要使用攝影機拍攝的影像進行即時預測，您可以將此值變更為較短的間隔。  
預設：`3600`

`ModelResourceKey`  <a name="ml-config-modelresourcekey"></a>
<a name="ml-config-modelresourcekey-desc"></a>（選用） 用於相依公有模型元件的模型。只有在您使用自訂元件覆寫公有模型元件時，才修改此參數。  
預設：  

```
armv7l: "DLR-resnet50-armv7l-cpu-ImageClassification"
x86_64: "DLR-resnet50-x86_64-cpu-ImageClassification"
```

------

## 本機日誌檔案
<a name="dlr-image-classification-component-log-file"></a>

此元件使用以下日誌檔案。

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

```
/greengrass/v2/logs/aws.greengrass.DLRImageClassification.log
```

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

```
C:\greengrass\v2\logs\aws.greengrass.DLRImageClassification.log
```

------

**檢視此元件的日誌**
+ 在核心裝置上執行下列命令，以即時檢視此元件的日誌檔案。將 `/greengrass/v2`或 *C：\$1greengrass\$1v2* 取代為 AWS IoT Greengrass 根資料夾的路徑。

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

  ```
  sudo tail -f /greengrass/v2/logs/aws.greengrass.DLRImageClassification.log
  ```

------
#### [ Windows (PowerShell) ]

  ```
  Get-Content C:\greengrass\v2\logs\aws.greengrass.DLRImageClassification.log -Tail 10 -Wait
  ```

------

## 變更記錄
<a name="dlr-image-classification-component-changelog"></a>

下表說明每個版本元件的變更。


|  **版本**  |  **變更**  | 
| --- | --- | 
|  2.1.14  | 針對 Greengrass 核 2.12.5 版更新版本。 | 
|  2.1.13  | 針對 Greengrass nucleus 2.12.0 版更新版本。 | 
|  2.1.12  | 針對 Greengrass nucleus 2.11.0 版更新版本。 | 
|  2.1.11  | 針對 Greengrass nucleus 2.10.0 版更新版本。 | 
|  2.1.10  | 針對 Greengrass nucleus 2.9.0 版更新版本。 | 
|  2.1.9  | 針對 Greengrass nucleus 2.8.0 版更新版本。 | 
|  2.1.8  |  針對 Greengrass nucleus 2.7.0 版更新版本。  | 
|  2.1.7  |  針對 Greengrass nucleus 2.6.0 版更新版本。  | 
|  2.1.6  |  針對 Greengrass nucleus 2.5.0 版更新版本。  | 
|  2.1.5  |  所有 中發行的元件 AWS 區域。  | 
|  2.1.4  |  針對 Greengrass nucleus 2.4.0 版更新版本。 此版本不適用於歐洲 （倫敦） ()`eu-west-2`。  | 
|  2.1.3  |  針對 Greengrass nucleus 2.3.0 版更新版本。  | 
|  2.1.2  |  針對 Greengrass nucleus 2.2.0 版更新版本。  | 
|  2.1.1  |  <a name="changelog-dlr-image-classification-2.1.1"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/dlr-image-classification-component.html)  | 
|  2.0.4  |  初始版本。  | 

# DLR 物件偵測
<a name="dlr-object-detection-component"></a>

DLR 物件偵測元件 (`aws.greengrass.DLRObjectDetection`) 包含範例推論程式碼，以使用 [Deep Learning Runtime](https://github.com/neo-ai/neo-ai-dlr) 和範例預先訓練模型執行物件偵測推論。此元件使用變體[DLR 物件偵測模型存放區](dlr-object-detection-model-store-component.md)和[DLR 執行時間](dlr-component.md)元件做為相依性，以下載 DLR 和範例模型。

若要搭配自訂訓練的 DLR 模型使用此推論元件，[請建立相依模型存放區元件的自訂版本](ml-customization.md#override-public-model-store)。若要使用您自己的自訂推論程式碼，您可以使用此元件的配方做為範本來[建立自訂推論元件](ml-customization.md#create-inference-component)。

**Topics**
+ [版本](#dlr-object-detection-component-versions)
+ [類型](#dlr-object-detection-component-type)
+ [作業系統](#dlr-object-detection-component-os-support)
+ [要求](#dlr-object-detection-component-requirements)
+ [相依性](#dlr-object-detection-component-dependencies)
+ [Configuration](#dlr-object-detection-component-configuration)
+ [本機日誌檔案](#dlr-object-detection-component-log-file)
+ [變更記錄](#dlr-object-detection-component-changelog)

## 版本
<a name="dlr-object-detection-component-versions"></a>

此元件具有下列版本：
+ 2.1.x
+ 2.0.x

## 類型
<a name="dlr-object-detection-component-type"></a>

<a name="public-component-type-generic"></a>此<a name="public-component-type-generic-phrase"></a>元件是一般元件 (`aws.greengrass.generic`)。[Greengrass 核](greengrass-nucleus-component.md)會執行元件的生命週期指令碼。

<a name="public-component-type-more-information"></a>如需詳細資訊，請參閱[元件類型](develop-greengrass-components.md#component-types)。

## 作業系統
<a name="dlr-object-detection-component-os-support"></a>

此元件可以安裝在執行下列作業系統的核心裝置上：
+ Linux
+ Windows

## 要求
<a name="dlr-object-detection-component-requirements"></a>

此元件有下列需求：<a name="ml-component-requirements"></a>
+ 在執行 Amazon Linux 2 或 Ubuntu 18.04 的 Greengrass 核心裝置上，[GNU C Library](https://www.gnu.org/software/libc/) (glibc) 2.27 版或更新版本安裝在裝置上。
+ 在 Armv7l 裝置上，例如 Raspberry Pi，安裝在裝置上的 OpenCV-Python 相依性。執行下列命令來安裝相依性。

  ```
  sudo apt-get install libopenjp2-7 libilmbase23 libopenexr-dev libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libgtk-3-0 libwebp-dev
  ```
+ 執行 Raspberry Pi OS Bullseye 的 Raspberry Pi 裝置必須符合下列要求：
  + 裝置上已安裝 NumPy 1.22.4 或更新版本。Raspberry Pi OS Bullseye 包含舊版的 NumPy，因此您可以執行下列命令以在裝置上升級 NumPy。

    ```
    pip3 install --upgrade numpy
    ```
  + 裝置上啟用的舊版攝影機堆疊。Raspberry Pi OS Bullseye 包含預設啟用且不相容的新攝影機堆疊，因此您必須啟用舊版攝影機堆疊。<a name="raspberry-pi-bullseye-enable-legacy-camera-stack"></a>

**啟用舊版攝影機堆疊**

    1. 執行下列命令以開啟 Raspberry Pi 組態工具。

       ```
       sudo raspi-config
       ```

    1. 選取**界面選項**。

    1. 選取**舊版攝影機**以啟用舊版攝影機堆疊。

    1. 重新啟動 Raspberry Pi。

## 相依性
<a name="dlr-object-detection-component-dependencies"></a>

當您部署元件時， AWS IoT Greengrass 也會部署其相依性的相容版本。這表示您必須符合元件及其所有相依性的要求，才能成功部署元件。本節列出此元件[發行版本的](#dlr-object-detection-component-changelog)相依性，以及為每個相依性定義元件版本的語意版本限制。您也可以在 [AWS IoT Greengrass 主控台](https://console.aws.amazon.com//greengrass)中檢視每個版本元件的相依性。在元件詳細資訊頁面上，尋找**相依性**清單。

------
#### [ 2.1.13 and 2.1.14 ]

下表列出此元件 2.1.13 和 2.1.14 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.13.0 | 軟式 | 
| [DLR 物件偵測模型存放區](dlr-object-detection-model-store-component.md) | \$12.1.0 | 硬式 | 
| [DLR](dlr-component.md) | \$11.6.0 | 硬式 | 

------
#### [ 2.1.12 ]

下表列出此元件 2.1.12 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.12.0 | 軟式 | 
| [DLR 物件偵測模型存放區](dlr-object-detection-model-store-component.md) | \$12.1.0 | 硬式 | 
| [DLR](dlr-component.md) | \$11.6.0 | 硬式 | 

------
#### [ 2.1.11 ]

下表列出此元件 2.1.11 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.11.0 | 軟式 | 
| [DLR 物件偵測模型存放區](dlr-object-detection-model-store-component.md) | \$12.1.0 | 硬式 | 
| [DLR](dlr-component.md) | \$11.6.0 | 硬式 | 

------
#### [ 2.1.10 ]

下表列出此元件 2.1.10 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.10.0 | 軟式 | 
| [DLR 物件偵測模型存放區](dlr-object-detection-model-store-component.md) | \$12.1.0 | 硬式 | 
| [DLR](dlr-component.md) | \$11.6.0 | 硬式 | 

------
#### [ 2.1.9 ]

下表列出此元件 2.1.9 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.9.0 | 軟式 | 
| [DLR 物件偵測模型存放區](dlr-object-detection-model-store-component.md) | \$12.1.0 | 硬式 | 
| [DLR](dlr-component.md) | \$11.6.0 | 硬式 | 

------
#### [ 2.1.8 ]

下表列出此元件 2.1.8 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.8.0 | 軟式 | 
| [DLR 物件偵測模型存放區](dlr-object-detection-model-store-component.md) | \$12.1.0 | 硬式 | 
| [DLR](dlr-component.md) | \$11.6.0 | 硬式 | 

------
#### [ 2.1.7 ]

下表列出此元件 2.1.7 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.7.0 | 軟式 | 
| [DLR 物件偵測模型存放區](dlr-object-detection-model-store-component.md) | \$12.1.0 | 硬式 | 
| [DLR](dlr-component.md) | \$11.6.0 | 硬式 | 

------
#### [ 2.1.6 ]

下表列出此元件 2.1.6 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.6.0 | 軟式 | 
| [DLR 物件偵測模型存放區](dlr-object-detection-model-store-component.md) | \$12.1.0 | 硬式 | 
| [DLR](dlr-component.md) | \$11.6.0 | 硬式 | 

------
#### [ 2.1.4 - 2.1.5 ]

下表列出此元件 2.1.4 至 2.1.5 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.5.0 | 軟式 | 
| [DLR 物件偵測模型存放區](dlr-object-detection-model-store-component.md) | \$12.1.0 | 硬式 | 
| [DLR](dlr-component.md) | \$11.6.0 | 硬式 | 

------
#### [ 2.1.3 ]

下表列出此元件 2.1.3 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.4.0 | 軟式 | 
| [DLR 物件偵測模型存放區](dlr-object-detection-model-store-component.md) | \$12.1.0 | 硬式 | 
| [DLR](dlr-component.md) | \$11.6.0 | 硬式 | 

------
#### [ 2.1.2 ]

下表列出此元件 2.1.2 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.3.0 | 軟式 | 
| [DLR 物件偵測模型存放區](dlr-object-detection-model-store-component.md) | \$12.1.0 | 硬式 | 
| [DLR](dlr-component.md) | \$11.6.0 | 硬式 | 

------
#### [ 2.1.1 ]

下表列出此元件 2.1.1 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.2.0 | 軟式 | 
| [DLR 物件偵測模型存放區](dlr-object-detection-model-store-component.md) | \$12.1.0 | 硬式 | 
| [DLR](dlr-component.md) | \$11.6.0 | 硬式 | 

------
#### [ 2.0.x ]

下表列出此元件 2.0.x 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | \$12.0.0 | 軟式 | 
| DLR 物件偵測模型存放區 | \$12.0.0 | 硬式 | 
| DLR | \$11.3.0 | 軟式 | 

------

## Configuration
<a name="dlr-object-detection-component-configuration"></a>

此元件提供下列組態參數，您可以在部署元件時自訂這些參數。

------
#### [ 2.1.x ]

`accessControl`  
<a name="ml-config-accesscontrol-desc"></a>（選用） 包含[授權政策](interprocess-communication.md#ipc-authorization-policies)的物件，允許元件將訊息發佈至預設通知主題。  
預設：  

```
{
   "aws.greengrass.ipc.mqttproxy": {
      "aws.greengrass.DLRObjectDetection:mqttproxy:1": {
         "policyDescription": "Allows access to publish via topic ml/dlr/object-detection.",
         "operations": [
            "aws.greengrass#PublishToIoTCore"
         ],
         "resources": [
            "ml/dlr/object-detection"
         ]
      }
   }
}
```

`PublishResultsOnTopic`  
<a name="ml-config-publishresultsontopic-desc"></a>（選用） 您要發佈推論結果的主題。如果您修改此值，則也必須修改 `accessControl` 參數`resources`中的 值，以符合您的自訂主題名稱。  
預設：`ml/dlr/object-detection`

`Accelerator`  <a name="ml-config-accelerator"></a>
您要使用的加速器。支援的值為 `cpu` 和 `gpu`。  
相依模型元件中的範例模型僅支援 CPU 加速。若要搭配不同的自訂模型使用 GPU 加速，[請建立自訂模型元件](ml-customization.md#override-public-model-store)以覆寫公有模型元件。  
預設：`cpu`

`ImageDirectory`  
<a name="ml-config-imagedirectory-desc"></a>（選用） 推論元件讀取映像之裝置上的資料夾路徑。您可以將此值修改為您裝置上具有讀取/寫入存取權的任何位置。  
<a name="ml-config-imagedirectory-obj-default"></a>預設：`/greengrass/v2/packages/artifacts-unarchived/component-name/object_detection/sample_images/`  
如果您將 的值設定為 `UseCamera` `true`，則會忽略此組態參數。

`ImageName`  
<a name="ml-config-imagename-desc"></a>（選用） 推論元件用來輸入進行預測的影像名稱。元件會在 中指定的資料夾中尋找映像`ImageDirectory`。根據預設，元件會使用預設映像目錄中的範例映像。 AWS IoT Greengrass 支援下列映像格式：`jpeg`、`png`、 `jpg`和 `npy`。  
<a name="ml-config-imagename-obj-default"></a>預設：`objects.jpg`  
如果您將 的值設定為 `UseCamera` `true`，則會忽略此組態參數。

`InferenceInterval`  <a name="ml-config-inferenceinterval"></a>
（選用） 推論程式碼所做的每個預測之間的秒數。範例推論程式碼會無限期執行，並在指定的時間間隔重複其預測。例如，如果您想要使用攝影機拍攝的影像進行即時預測，您可以將此值變更為較短的間隔。  
預設：`3600`

`ModelResourceKey`  <a name="ml-config-modelresourcekey"></a>
<a name="ml-config-modelresourcekey-desc"></a>（選用） 用於相依公有模型元件的模型。只有在您使用自訂元件覆寫公有模型元件時，才修改此參數。  
預設：  

```
{
    "armv7l": "DLR-yolo3-armv7l-cpu-ObjectDetection",
    "aarch64": "DLR-yolo3-aarch64-gpu-ObjectDetection",
    "x86_64": "DLR-yolo3-x86_64-cpu-ObjectDetection",
    "windows": "DLR-resnet50-win-cpu-ObjectDetection"
}
```

`UseCamera`  <a name="ml-config-usecamera"></a>
（選用） 字串值，定義是否使用連接至 Greengrass 核心裝置的攝影機的影像。支援的值為 `true` 和 `false`。  
當您將此值設定為 時`true`，範例推論程式碼會存取裝置上的攝影機，並在擷取的影像上本機執行推論。會忽略 `ImageName`和 `ImageDirectory` 參數的值。請確定執行此元件的使用者具有攝影機存放擷取影像之位置的讀取/寫入存取權。  
預設：`false`  
當您檢視此元件的配方時，`UseCamera`組態參數不會出現在預設組態中。不過，您可以在部署元件時修改[組態合併更新](update-component-configurations.md)中此參數的值。  
將 `UseCamera`設定為 時`true`，您還必須建立符號連結，讓推論元件從執行期元件建立的虛擬環境中存取您的攝影機。如需搭配範例推論元件使用攝影機的詳細資訊，請參閱 [更新元件組態](ml-tutorial-image-classification-camera.md)。

------
#### [ 2.0.x ]

`MLRootPath`  <a name="ml-config-mlrootpath"></a>
<a name="ml-config-mlrootpath-desc"></a>（選用） Linux 核心裝置上的資料夾路徑，其中推論元件會讀取映像和寫入推論結果。您可以將此值修改為裝置上執行此元件的使用者具有讀取/寫入存取權的任何位置。  
<a name="ml-config-mlrootpath-default-dlr"></a>預設：`/greengrass/v2/work/variant.DLR/greengrass_ml`  
<a name="ml-config-mlrootpath-default-tfl"></a>預設：`/greengrass/v2/work/variant.TensorFlowLite/greengrass_ml`

`Accelerator`  
請勿修改。目前，加速器唯一支援的值是 `cpu`，因為相依模型元件中的模型只會針對 CPU 加速器編譯。

`ImageName`  
<a name="ml-config-imagename-desc-dlr-1.3.0"></a>（選用） 推論元件用來輸入進行預測的影像名稱。元件會在 中指定的資料夾中尋找映像`ImageDirectory`。預設位置為 `MLRootPath/images`。 AWS IoT Greengrass 支援下列影像格式：`jpeg`、`png`、 `jpg`和 `npy`。  
<a name="ml-config-imagename-obj-default"></a>預設：`objects.jpg`

`InferenceInterval`  <a name="ml-config-inferenceinterval"></a>
（選用） 推論程式碼所做的每個預測之間的秒數。範例推論程式碼會無限期執行，並在指定的時間間隔重複其預測。例如，如果您想要使用攝影機拍攝的影像進行即時預測，您可以將此值變更為較短的間隔。  
預設：`3600`

`ModelResourceKey`  <a name="ml-config-modelresourcekey"></a>
<a name="ml-config-modelresourcekey-desc"></a>（選用） 用於相依公有模型元件的模型。只有在您使用自訂元件覆寫公有模型元件時，才修改此參數。  
預設：  

```
{
    armv7l: "DLR-yolo3-armv7l-cpu-ObjectDetection",
    x86_64: "DLR-yolo3-x86_64-cpu-ObjectDetection"
}
```

------

## 本機日誌檔案
<a name="dlr-object-detection-component-log-file"></a>

此元件使用以下日誌檔案。

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

```
/greengrass/v2/logs/aws.greengrass.DLRObjectDetection.log
```

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

```
C:\greengrass\v2\logs\aws.greengrass.DLRObjectDetection.log
```

------

**檢視此元件的日誌**
+ 在核心裝置上執行下列命令，以即時檢視此元件的日誌檔案。將 `/greengrass/v2`或 *C：\$1greengrass\$1v2* 取代為 AWS IoT Greengrass 根資料夾的路徑。

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

  ```
  sudo tail -f /greengrass/v2/logs/aws.greengrass.DLRObjectDetection.log
  ```

------
#### [ Windows (PowerShell) ]

  ```
  Get-Content C:\greengrass\v2\logs\aws.greengrass.DLRObjectDetection.log -Tail 10 -Wait
  ```

------

## 變更記錄
<a name="dlr-object-detection-component-changelog"></a>

下表說明每個版本元件的變更。


|  **版本**  |  **變更**  | 
| --- | --- | 
|  2.1.14  | 針對 Greengrass 核 2.12.5 版更新版本。 | 
|  2.1.13  | 針對 Greengrass nucleus 2.12.0 版更新版本。 | 
|  2.1.12  | 針對 Greengrass nucleus 2.11.0 版更新版本。 | 
|  2.1.11  | 針對 Greengrass nucleus 2.10.0 版更新版本。 | 
|  2.1.10  | 針對 Greengrass nucleus 2.9.0 版更新版本。 | 
|  2.1.9  | 針對 Greengrass nucleus 2.8.0 版更新版本。 | 
|  2.1.8  |  針對 Greengrass nucleus 2.7.0 版更新版本。  | 
|  2.1.7  |  針對 Greengrass nucleus 2.6.0 版更新版本。  | 
|  2.1.6  |  針對 Greengrass nucleus 2.5.0 版更新版本。  | 
|  2.1.5  |  所有 中發行的元件 AWS 區域。  | 
|  2.1.4  |  針對 Greengrass nucleus 2.4.0 版更新版本。 此版本不適用於歐洲 （倫敦） ()`eu-west-2`。  | 
|  2.1.3  |  針對 Greengrass nucleus 2.3.0 版更新版本。  | 
|  2.1.2  |  <a name="changelog-dlr-object-detection-2.1.2"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/dlr-object-detection-component.html)  | 
|  2.1.1  |  <a name="changelog-dlr-object-detection-2.1.1"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/dlr-object-detection-component.html)  | 
|  2.0.4  |  初始版本。  | 

# DLR 影像分類模型存放區
<a name="dlr-image-classification-model-store-component"></a>

DLR 影像分類模型存放區是一種機器學習模型元件，其中包含預先訓練的 ResNet-50 模型做為 Greengrass 成品。此元件中使用的預先訓練模型是從 [GluonCV 模型動物園](https://cv.gluon.ai/model_zoo/index.html)擷取，並使用 SageMaker AI Neo [深度學習執行期](https://github.com/neo-ai/neo-ai-dlr)編譯。

[DLR 影像分類](dlr-image-classification-component.md)推論元件使用此元件做為模型來源的相依性。若要使用自訂訓練的 DLR 模型，[請建立此模型元件的自訂版本](ml-customization.md#override-public-model-store)，並將您的自訂模型包含為元件成品。您可以使用此元件的配方做為範本，來建立自訂模型元件。

**注意**  
DLR 影像分類模型存放區元件的名稱會因版本而異。2.1.x 版和更新版本的元件名稱為 。 `variant.DLR.ImageClassification.ModelStore`2.0.x 版的元件名稱為 `variant.ImageClassification.ModelStore`。

**Topics**
+ [版本](#dlr-image-classification-model-store-component-versions)
+ [類型](#dlr-image-classification-model-store-component-type)
+ [作業系統](#dlr-image-classification-model-store-component-os-support)
+ [要求](#dlr-image-classification-model-store-component-requirements)
+ [相依性](#dlr-image-classification-model-store-component-dependencies)
+ [Configuration](#dlr-image-classification-model-store-component-configuration)
+ [本機日誌檔案](#dlr-image-classification-model-store-component-log-file)
+ [變更記錄](#dlr-image-classification-model-store-component-changelog)

## 版本
<a name="dlr-image-classification-model-store-component-versions"></a>

此元件具有下列版本：
+ 2.1.x (`variant.DLR.ImageClassification.ModelStore`) 
+ 2.0.x (`variant.ImageClassification.ModelStore`) 

## 類型
<a name="dlr-image-classification-model-store-component-type"></a>

<a name="public-component-type-generic"></a>此<a name="public-component-type-generic-phrase"></a>元件是一般元件 (`aws.greengrass.generic`)。[Greengrass 核](greengrass-nucleus-component.md)會執行元件的生命週期指令碼。

<a name="public-component-type-more-information"></a>如需詳細資訊，請參閱[元件類型](develop-greengrass-components.md#component-types)。

## 作業系統
<a name="dlr-image-classification-model-store-component-os-support"></a>

此元件可以安裝在執行下列作業系統的核心裝置上：
+ Linux
+ Windows

## 要求
<a name="dlr-image-classification-model-store-component-requirements"></a>

此元件有下列需求：<a name="ml-component-requirements"></a>
+ 在執行 Amazon Linux 2 或 Ubuntu 18.04 的 Greengrass 核心裝置上，[GNU C Library](https://www.gnu.org/software/libc/) (glibc) 2.27 版或更新版本安裝在裝置上。
+ 在 Armv7l 裝置上，例如 Raspberry Pi，安裝在裝置上的 OpenCV-Python 相依性。執行下列命令來安裝相依性。

  ```
  sudo apt-get install libopenjp2-7 libilmbase23 libopenexr-dev libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libgtk-3-0 libwebp-dev
  ```
+ 執行 Raspberry Pi OS Bullseye 的 Raspberry Pi 裝置必須符合下列要求：
  + 裝置上已安裝 NumPy 1.22.4 或更新版本。Raspberry Pi OS Bullseye 包含舊版的 NumPy，因此您可以執行下列命令以在裝置上升級 NumPy。

    ```
    pip3 install --upgrade numpy
    ```
  + 在裝置上啟用的舊版攝影機堆疊。Raspberry Pi OS Bullseye 包含預設啟用且不相容的新攝影機堆疊，因此您必須啟用舊版攝影機堆疊。<a name="raspberry-pi-bullseye-enable-legacy-camera-stack"></a>

**啟用舊版攝影機堆疊**

    1. 執行下列命令以開啟 Raspberry Pi 組態工具。

       ```
       sudo raspi-config
       ```

    1. 選取**界面選項**。

    1. 選取**舊版攝影機**以啟用舊版攝影機堆疊。

    1. 重新啟動 Raspberry Pi。

## 相依性
<a name="dlr-image-classification-model-store-component-dependencies"></a>

當您部署元件時， AWS IoT Greengrass 也會部署其相依性的相容版本。這表示您必須符合元件及其所有相依性的要求，才能成功部署元件。本節列出此元件[發行版本的](#dlr-image-classification-model-store-component-changelog)相依性，以及為每個相依性定義元件版本的語意版本限制。您也可以在 [AWS IoT Greengrass 主控台](https://console.aws.amazon.com//greengrass)中檢視每個版本元件的相依性。在元件詳細資訊頁面上，尋找**相依性**清單。

------
#### [ 2.1.12 - 2.1.14 ]

下表列出此元件 2.1.12 版和 2.1.13 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.13.0 | 軟式 | 

------
#### [ 2.1.11 ]

下表列出此元件 2.1.11 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.12.0 | 軟式 | 

------
#### [ 2.1.10 ]

下表列出此元件 2.1.10 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.11.0 | 軟式 | 

------
#### [ 2.1.9 ]

下表列出此元件 2.1.9 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.10.0 | 軟式 | 

------
#### [ 2.1.8 ]

下表列出此元件 2.1.8 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.9.0 | 軟式 | 

------
#### [ 2.1.7 ]

下表列出此元件 2.1.7 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.8.0 | 軟式 | 

------
#### [ 2.1.6 ]

下表列出此元件 2.1.6 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.7.0 | 軟式 | 

------
#### [ 2.1.5 ]

下表列出此元件 2.1.5 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.6.0 | 軟式 | 

------
#### [ 2.1.4 ]

下表列出此元件 2.1.4 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.5.0 | 軟式 | 

------
#### [ 2.1.3 ]

下表列出此元件 2.1.3 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.4.0 | 軟式 | 

------
#### [ 2.1.2 ]

下表列出此元件 2.1.2 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.3.0 | 軟式 | 

------
#### [ 2.1.1 ]

下表列出此元件 2.1.1 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.2.0 | 軟式 | 

------
#### [ 2.0.x ]

下表列出此元件 2.0.x 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | \$12.0.0 | 軟式 | 

------

## Configuration
<a name="dlr-image-classification-model-store-component-configuration"></a>

此元件沒有任何組態參數。

## 本機日誌檔案
<a name="dlr-image-classification-model-store-component-log-file"></a>

此元件不會輸出日誌。

## 變更記錄
<a name="dlr-image-classification-model-store-component-changelog"></a>

下表說明每個版本元件的變更。


|  **版本**  |  **變更**  | 
| --- | --- | 
|  2.1.13  | 針對 Greengrass 核 2.12.5 版更新版本。 | 
|  2.1.12  | 針對 Greengrass nucleus 2.12.0 版更新版本。 | 
|  2.1.11  | 針對 Greengrass nucleus 2.11.0 版更新版本。 | 
|  2.1.10  | 針對 Greengrass nucleus 2.10.0 版更新版本。 | 
|  2.1.9  | 針對 Greengrass nucleus 2.9.0 版更新版本。 | 
|  2.1.8  | 針對 Greengrass nucleus 2.8.0 版更新版本。 | 
|  2.1.7  |  針對 Greengrass nucleus 2.7.0 版更新版本。  | 
|  2.1.6  |  針對 Greengrass nucleus 2.6.0 版更新版本。  | 
|  2.1.5  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/dlr-image-classification-model-store-component.html)  | 
|  2.1.4  |  針對 Greengrass nucleus 2.4.0 版更新版本。  | 
|  2.1.3  |  針對 Greengrass nucleus 2.3.0 版更新版本。  | 
|  2.1.2  |  針對 Greengrass nucleus 2.2.0 版更新版本。  | 
|  2.1.1  |  <a name="changelog-dlr-image-classification-model-store-2.1.1"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/dlr-image-classification-model-store-component.html)  | 
|  2.0.4  |  初始版本。  | 

# DLR 物件偵測模型存放區
<a name="dlr-object-detection-model-store-component"></a>

DLR 物件偵測模型存放區是一種機器學習模型元件，其中包含預先訓練的 YOLOv3 模型做為 Greengrass 成品。此元件中使用的範例模型是從 [GluonCV 模型動物園](https://cv.gluon.ai/model_zoo/index.html)擷取，並使用 SageMaker AI Neo [深度學習執行期](https://github.com/neo-ai/neo-ai-dlr)編譯。

[DLR 物件偵測](dlr-object-detection-component.md)推論元件使用此元件做為模型來源的相依性。若要使用自訂訓練的 DLR 模型，[請建立此模型元件的自訂版本](ml-customization.md#override-public-model-store)，並將您的自訂模型包含為元件成品。您可以使用此元件的配方做為範本，來建立自訂模型元件。

**注意**  
DLR 物件偵測模型存放區元件的名稱因版本而異。2.1.x 版和更新版本的元件名稱為 。 `variant.DLR.ObjectDetection.ModelStore`2.0.x 版的元件名稱為 `variant.ObjectDetection.ModelStore`。

**Topics**
+ [版本](#dlr-object-detection-model-store-component-versions)
+ [類型](#dlr-object-detection-model-store-component-type)
+ [作業系統](#dlr-object-detection-model-store-component-os-support)
+ [要求](#dlr-object-detection-model-store-component-requirements)
+ [相依性](#dlr-object-detection-model-store-component-dependencies)
+ [Configuration](#dlr-object-detection-model-store-component-configuration)
+ [本機日誌檔案](#dlr-object-detection-model-store-component-log-file)
+ [變更記錄](#dlr-object-detection-model-store-component-changelog)

## 版本
<a name="dlr-object-detection-model-store-component-versions"></a>

此元件具有下列版本：
+ 2.1.x 
+ 2.0.x

## 類型
<a name="dlr-object-detection-model-store-component-type"></a>

<a name="public-component-type-generic"></a>此<a name="public-component-type-generic-phrase"></a>元件是一般元件 (`aws.greengrass.generic`)。[Greengrass 核](greengrass-nucleus-component.md)會執行元件的生命週期指令碼。

<a name="public-component-type-more-information"></a>如需詳細資訊，請參閱[元件類型](develop-greengrass-components.md#component-types)。

## 作業系統
<a name="dlr-object-detection-model-store-component-os-support"></a>

此元件可以安裝在執行下列作業系統的核心裝置上：
+ Linux
+ Windows

## 要求
<a name="dlr-object-detection-model-store-component-requirements"></a>

此元件有下列需求：<a name="ml-component-requirements"></a>
+ 在執行 Amazon Linux 2 或 Ubuntu 18.04 的 Greengrass 核心裝置上，[GNU C Library](https://www.gnu.org/software/libc/) (glibc) 2.27 版或更新版本安裝在裝置上。
+ 在 Armv7l 裝置上，例如 Raspberry Pi，安裝在裝置上的 OpenCV-Python 相依性。執行下列命令來安裝相依性。

  ```
  sudo apt-get install libopenjp2-7 libilmbase23 libopenexr-dev libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libgtk-3-0 libwebp-dev
  ```
+ 執行 Raspberry Pi OS Bullseye 的 Raspberry Pi 裝置必須符合下列要求：
  + 裝置上已安裝 NumPy 1.22.4 或更新版本。Raspberry Pi OS Bullseye 包含舊版的 NumPy，因此您可以執行下列命令以在裝置上升級 NumPy。

    ```
    pip3 install --upgrade numpy
    ```
  + 裝置上啟用的舊版攝影機堆疊。Raspberry Pi OS Bullseye 包含預設啟用且不相容的新攝影機堆疊，因此您必須啟用舊版攝影機堆疊。<a name="raspberry-pi-bullseye-enable-legacy-camera-stack"></a>

**啟用舊版攝影機堆疊**

    1. 執行下列命令以開啟 Raspberry Pi 組態工具。

       ```
       sudo raspi-config
       ```

    1. 選取**界面選項**。

    1. 選取**舊版攝影機**以啟用舊版攝影機堆疊。

    1. 重新啟動 Raspberry Pi。

## 相依性
<a name="dlr-object-detection-model-store-component-dependencies"></a>

當您部署元件時， AWS IoT Greengrass 也會部署其相依性的相容版本。這表示您必須符合元件及其所有相依性的要求，才能成功部署元件。本節列出此元件[發行版本的](#dlr-object-detection-model-store-component-changelog)相依性，以及為每個相依性定義元件版本的語意版本限制。您也可以在 [AWS IoT Greengrass 主控台](https://console.aws.amazon.com//greengrass)中檢視每個版本元件的相依性。在元件詳細資訊頁面上，尋找**相依性**清單。

------
#### [ 2.1.13 and 2.1.14 ]

下表列出此元件 2.1.13 和 2.1.14 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.13.0 | 軟式 | 

------
#### [ 2.1.12 ]

下表列出此元件 2.1.12 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.12.0 | 軟式 | 

------
#### [ 2.1.11 ]

下表列出此元件 2.1.11 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.11.0 | 軟式 | 

------
#### [ 2.1.10 ]

下表列出此元件 2.1.10 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.10.0 | 軟式 | 

------
#### [ 2.1.9 ]

下表列出此元件 2.1.9 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.9.0 | 軟式 | 

------
#### [ 2.1.8 ]

下表列出此元件 2.1.8 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.8.0 | 軟式 | 

------
#### [ 2.1.7 ]

下表列出此元件 2.1.7 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.7.0 | 軟式 | 

------
#### [ 2.1.5 and 2.1.6 ]

下表列出此元件 2.1.5 和 2.1.6 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.6.0 | 軟式 | 

------
#### [ 2.1.4 ]

下表列出此元件 2.1.4 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.5.0 | 軟式 | 

------
#### [ 2.1.3 ]

下表列出此元件 2.1.3 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.4.0 | 軟式 | 

------
#### [ 2.1.2 ]

下表列出此元件 2.1.2 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.3.0 | 軟式 | 

------
#### [ 2.1.1 ]

下表列出此元件 2.1.1 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.2.0 | 軟式 | 

------
#### [ 2.0.x ]

下表列出此元件 2.0.x 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | \$12.0.0 | 軟式 | 

------

## Configuration
<a name="dlr-object-detection-model-store-component-configuration"></a>

此元件沒有任何組態參數。

## 本機日誌檔案
<a name="dlr-object-detection-model-store-component-log-file"></a>

此元件不會輸出日誌。

## 變更記錄
<a name="dlr-object-detection-model-store-component-changelog"></a>

下表說明每個版本元件的變更。


|  **版本**  |  **變更**  | 
| --- | --- | 
|  2.1.14  |  針對 Greengrass nucleus 2.12.5 版本更新版本。  | 
|  2.1.13  | 針對 Greengrass nucleus 2.12.0 版更新版本。 | 
|  2.1.12  | 針對 Greengrass nucleus 2.11.0 版更新版本。 | 
|  2.1.11  | 針對 Greengrass nucleus 2.10.0 版更新版本。 | 
|  2.1.10  | 針對 Greengrass nucleus 2.9.0 版更新版本。 | 
|  2.1.9  | 針對 Greengrass nucleus 2.8.0 版更新版本。 | 
|  2.1.8  |  針對 Greengrass nucleus 2.7.0 版更新版本。  | 
|  2.1.7  |  針對 Greengrass nucleus 2.6.0 版更新版本。  | 
|  2.1.6  |  新增 CPU 模型以修正 Armv8 (AArch64) 裝置的問題。  | 
|  2.1.5  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/dlr-object-detection-model-store-component.html)  | 
|  2.1.4  |  針對 Greengrass nucleus 2.4.0 版更新版本。  | 
|  2.1.3  |  針對 Greengrass nucleus 2.3.0 版更新版本。  | 
|  2.1.2  |  針對 Greengrass nucleus 2.2.0 版更新版本。  | 
|  2.1.1  |  <a name="changelog-dlr-object-detection-model-store-2.1.1"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/dlr-object-detection-model-store-component.html) | 
|  2.0.4  |  初始版本。  | 

# DLR 執行時間
<a name="dlr-component"></a>

DLR 執行期元件 (`variant.DLR`) 包含指令碼，可在裝置上的虛擬環境中安裝[深度學習執行期](https://github.com/neo-ai/neo-ai-dlr) (DLR) 及其相依性。[DLR 影像分類](dlr-image-classification-component.md) 和 [DLR 物件偵測](dlr-object-detection-component.md)元件使用此元件做為安裝 DLR 的相依性。元件版本 1.6.x 安裝 DLR v1.6.0，元件版本 1.3.x 安裝 DLR v1.3.0。

若要使用不同的執行時間，您可以使用此元件的配方做為範本來[建立自訂機器學習元件](ml-customization.md)。

**Topics**
+ [版本](#dlr-component-versions)
+ [類型](#dlr-component-type)
+ [作業系統](#dlr-component-os-support)
+ [要求](#dlr-component-requirements)
+ [相依性](#dlr-component-dependencies)
+ [Configuration](#dlr-component-configuration)
+ [用途](#dlr-component-usage)
+ [本機日誌檔案](#dlr-component-log-file)
+ [變更記錄](#dlr-component-changelog)

## 版本
<a name="dlr-component-versions"></a>

此元件具有下列版本：
+ 1.6.x
+ 1.3.x

## 類型
<a name="dlr-component-type"></a>

<a name="public-component-type-generic"></a>此<a name="public-component-type-generic-phrase"></a>元件是一般元件 (`aws.greengrass.generic`)。[Greengrass 核](greengrass-nucleus-component.md)會執行元件的生命週期指令碼。

<a name="public-component-type-more-information"></a>如需詳細資訊，請參閱[元件類型](develop-greengrass-components.md#component-types)。

## 作業系統
<a name="dlr-component-os-support"></a>

此元件可以安裝在執行下列作業系統的核心裝置上：
+ Linux
+ Windows

## 要求
<a name="dlr-component-requirements"></a>

此元件有下列需求：<a name="ml-component-requirements"></a>
+ 在執行 Amazon Linux 2 或 Ubuntu 18.04 的 Greengrass 核心裝置上，[GNU C Library](https://www.gnu.org/software/libc/) (glibc) 2.27 版或更新版本安裝在裝置上。
+ 在 Armv7l 裝置上，例如 Raspberry Pi，安裝在裝置上的 OpenCV-Python 相依性。執行下列命令來安裝相依性。

  ```
  sudo apt-get install libopenjp2-7 libilmbase23 libopenexr-dev libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libgtk-3-0 libwebp-dev
  ```
+ 執行 Raspberry Pi OS Bullseye 的 Raspberry Pi 裝置必須符合下列要求：
  + 裝置上已安裝 NumPy 1.22.4 或更新版本。Raspberry Pi OS Bullseye 包含舊版的 NumPy，因此您可以執行下列命令以在裝置上升級 NumPy。

    ```
    pip3 install --upgrade numpy
    ```
  + 在裝置上啟用的舊版攝影機堆疊。Raspberry Pi OS Bullseye 包含預設啟用且不相容的新攝影機堆疊，因此您必須啟用舊版攝影機堆疊。<a name="raspberry-pi-bullseye-enable-legacy-camera-stack"></a>

**啟用舊版攝影機堆疊**

    1. 執行下列命令以開啟 Raspberry Pi 組態工具。

       ```
       sudo raspi-config
       ```

    1. 選取**界面選項**。

    1. 選取**舊版攝影機**以啟用舊版攝影機堆疊。

    1. 重新啟動 Raspberry Pi。

### 端點和連接埠
<a name="dlr-component-endpoints"></a>

根據預設，此元件會使用安裝程式指令碼，根據核心裝置使用的平台，使用 `apt`、`brew`、 `yum`和 `pip`命令來安裝套件。此元件必須能夠對各種套件索引和儲存庫執行傳出請求，才能執行安裝程式指令碼。若要允許此元件透過代理或防火牆的傳出流量，您必須識別核心裝置連線安裝之套件索引和儲存庫的端點。

當您識別此元件安裝指令碼所需的端點時，請考慮下列事項：
+ 端點取決於核心裝置的平台。例如，執行 Ubuntu 的核心裝置會使用 `apt`而非 `yum`或 `brew`。此外，使用相同套件索引的裝置可能會有不同的來源清單，因此可能會從不同的儲存庫擷取套件。
+ 使用相同套件索引的多個裝置之間的端點可能不同，因為每個裝置都有自己的來源清單，可定義擷取套件的位置。
+ 端點可能會隨著時間而變更。每個套件索引都會提供您下載套件之儲存庫URLs，而套件的擁有者可以變更套件索引提供的 URLs。

如需此元件安裝的相依性，以及如何停用安裝程式指令碼的詳細資訊，請參閱 [UseInstaller](#dlr-component-config-useinstaller-term) 組態參數。

如需基本操作所需的端點和連接埠的詳細資訊，請參閱[允許透過代理或防火牆的裝置流量](allow-device-traffic.md)。

## 相依性
<a name="dlr-component-dependencies"></a>

當您部署元件時， AWS IoT Greengrass 也會部署其相依性的相容版本。這表示您必須符合元件及其所有相依性的要求，才能成功部署元件。本節列出此元件[發行版本的](#dlr-component-changelog)相依性，以及為每個相依性定義元件版本的語意版本限制。您也可以在 [AWS IoT Greengrass 主控台](https://console.aws.amazon.com//greengrass)中檢視每個版本元件的相依性。在元件詳細資訊頁面上，尋找**相依性**清單。

------
#### [ 1.6.11 - 1.6.16 ]

下表列出此元件 1.6.11 至 1.6.16 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <3.0.0 | 軟式 | 

------
#### [ 1.6.10 ]

下表列出此元件 1.6.10 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.9.0 | 軟式 | 

------
#### [ 1.6.9 ]

下表列出此元件 1.6.9 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.8.0 | 軟式 | 

------
#### [ 1.6.8 ]

下表列出此元件 1.6.8 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.7.0 | 軟式 | 

------
#### [ 1.6.6 and 1.6.7 ]

下表列出此元件 1.6.6 和 1.6.7 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.6.0 | 軟式 | 

------
#### [ 1.6.4 and 1.6.5 ]

下表列出此元件 1.6.4 和 1.6.5 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.5.0 | 軟式 | 

------
#### [ 1.6.3 ]

下表列出此元件 1.6.3 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.4.0 | 軟式 | 

------
#### [ 1.6.2 ]

下表列出此元件 1.6.2 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.3.0 | 軟式 | 

------
#### [ 1.6.1 ]

下表列出此元件 1.6.1 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.2.0 | 軟式 | 

------
#### [ 1.3.x ]

下表列出此元件 1.3.x 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | \$12.0.0 | 軟式 | 

------

如需元件相依性的詳細資訊，請參閱[元件配方參考](component-recipe-reference.md#recipe-reference-component-dependencies)。

## Configuration
<a name="dlr-component-configuration"></a>

此元件提供下列組態參數，您可以在部署元件時自訂這些參數。

`MLRootPath`  
<a name="ml-config-mlrootpath-desc"></a>（選用） Linux 核心裝置上的資料夾路徑，其中推論元件會讀取映像和寫入推論結果。您可以將此值修改為裝置上執行此元件的使用者具有讀取/寫入存取權的任何位置。  
<a name="ml-config-mlrootpath-default-dlr"></a>預設：`/greengrass/v2/work/variant.DLR/greengrass_ml`

`WindowsMLRootPath`  
此功能適用於此元件的 v1.6.6 和更新版本。  
<a name="ml-config-windowsmlrootpath-desc"></a>（選用） Windows 核心裝置上的資料夾路徑，其中推論元件會讀取映像和寫入推論結果。您可以將此值修改為裝置上執行此元件的使用者具有讀取/寫入存取權的任何位置。  
<a name="ml-config-windowsmlrootpath-default-dlr"></a>預設：`C:\greengrass\v2\\work\\variant.DLR\\greengrass_ml`

  `UseInstaller`   
<a name="ml-config-useinstaller-desc-dlr"></a>（選用） 字串值，定義是否使用此元件中的安裝程式指令碼來安裝 DLR 及其相依性。支援的值為 `true` 和 `false`。  <a name="ml-config-useinstaller-libraries-dlr"></a>

`false` 如果您想要使用自訂指令碼進行 DLR 安裝，或想要在預先建置的 Linux 映像中包含執行時間相依性，請將此值設定為 。若要將此元件與 AWS提供的 DLR 推論元件搭配使用，請安裝下列程式庫，包括任何相依性，並將其提供給`ggc_user`執行 ML 元件的系統使用者，例如 。
+ [Python](https://www.python.org/downloads/) 3.7 或更新版本，包括`pip`適用於您 Python 版本的 。
+ [深度學習執行期](https://github.com/neo-ai/neo-ai-dlr) v1.6.0
+ [NumPy](https://numpy.org/install/)。
+ [OpenCV-Python](https://pypi.org/project/opencv-python/)。
+ 適用於 [AWS IoT Device SDK Python 的 v2](https://github.com/aws/aws-iot-device-sdk-python-v2)。
+ [AWS 一般執行期 (CRT) Python](https://github.com/awslabs/aws-crt-python)。
+ [Picamera](https://picamera.readthedocs.io/en/release-1.13/) （僅適用於 Raspberry Pi 裝置）。
+ [`awscam` 模組](https://docs.aws.amazon.com/deeplens/latest/dg/deeplens-library-awscam-module.html) （適用於 AWS DeepLens 裝置）。
+ libGL （適用於 Linux 裝置）
<a name="ml-config-useinstaller-default"></a>預設：`true`

## 用途
<a name="dlr-component-usage"></a>

使用此元件，並將`UseInstaller`組態參數設為 `true`，以在您的裝置上安裝 DLR 及其相依性。元件會在您的裝置上設定虛擬環境，其中包含 DLR 所需的 OpenCV 和 NumPy 程式庫。

**注意**  <a name="ml-installer-component-usage-note"></a>
此元件中的安裝程式指令碼也會安裝最新版本的其他系統程式庫，這些程式庫是在您的裝置上設定虛擬環境並使用已安裝的機器學習架構所必需。這可能會升級裝置上的現有系統程式庫。檢閱下表，以取得此元件為每個支援的作業系統安裝的程式庫清單。如果您想要自訂此安裝程序，請將`UseInstaller`組態參數設定為 `false`，並開發您自己的安裝程式指令碼。


| 平台 | 裝置系統上安裝的程式庫 | 安裝在虛擬環境中的程式庫 | 
| --- | --- | --- | 
| Armv7l | build-essential, cmake, ca-certificates, git | setuptools, wheel | 
| Amazon Linux 2 | mesa-libGL | 無 | 
| Ubuntu | wget | 無 | 

當您部署推論元件時，此執行期元件會先驗證您的裝置是否已安裝 DLR 及其相依性，如果沒有，則會為您安裝它們。

## 本機日誌檔案
<a name="dlr-component-log-file"></a>

此元件使用以下日誌檔案。

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

```
/greengrass/v2/logs/variant.DLR.log
```

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

```
C:\greengrass\v2\logs\variant.DLR.log
```

------

**檢視此元件的日誌**
+ 在核心裝置上執行下列命令，以即時檢視此元件的日誌檔案。將 `/greengrass/v2`或 *C：\$1greengrass\$1v2* 取代為 AWS IoT Greengrass 根資料夾的路徑。

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

  ```
  sudo tail -f /greengrass/v2/logs/variant.DLR.log
  ```

------
#### [ Windows (PowerShell) ]

  ```
  Get-Content C:\greengrass\v2\logs\variant.DLR.log -Tail 10 -Wait
  ```

------

## 變更記錄
<a name="dlr-component-changelog"></a>

下表說明每個版本元件的變更。


|  **版本**  |  **變更**  | 
| --- | --- | 
|  1.6.16  |  針對 Greengrass 核更新版本 2.12.5。  | 
|  1.6.12  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/dlr-component.html)  | 
|  1.6.11  | 針對 Greengrass nucleus 2.9.0 版更新版本。 | 
|  1.6.10  | 針對 Greengrass nucleus 2.8.0 版更新版本。 | 
|  1.6.9  |  針對 Greengrass nucleus 2.7.0 版更新版本。  | 
|  1.6.8  |  針對 Greengrass nucleus 2.6.0 版更新版本。  | 
|  1.6.7  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/dlr-component.html)  | 
|  1.6.6  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/dlr-component.html)  | 
|  1.6.5  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/dlr-component.html)  | 
|  1.6.4  |  針對 Greengrass nucleus 2.4.0 版更新版本。  | 
|  1.6.3  |  針對 Greengrass nucleus 2.3.0 版更新版本。  | 
|  1.6.2  |  針對 Greengrass nucleus 2.2.0 版更新版本。  | 
|  1.6.1  |  <a name="changelog-dlr-1.6.1"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/dlr-component.html)  | 
|  1.3.2  |  初始版本。安裝 DLR v1.3.0。  | 

# TensorFlow Lite 影像分類
<a name="tensorflow-lite-image-classification-component"></a>

TensorFlow Lite 影像分類元件 (`aws.greengrass.TensorFlowLiteImageClassification`) 包含使用 [TensorFlow Lite](https://www.tensorflow.org/lite/guide/python) 執行時間執行影像分類推論的範例推論程式碼，以及預先訓練的範例 MobileNet 1.0 量化模型。此元件使用 變體[TensorFlow Lite 影像分類模型存放區](tensorflow-lite-image-classification-model-store-component.md)和 [TensorFlow Lite 執行時間](tensorflow-lite-component.md)元件做為相依性，以下載 TensorFlow Lite 執行時間和範例模型。

若要搭配自訂訓練的 TensorFlow Lite 模型使用此推論元件，[請建立相依模型存放區元件的自訂版本](ml-customization.md#override-public-model-store)。若要使用您自己的自訂推論程式碼，您可以使用此元件的配方做為範本來[建立自訂推論元件](ml-customization.md#create-inference-component)。

**Topics**
+ [版本](#tensorflow-lite-image-classification-component-versions)
+ [類型](#tensorflow-lite-image-classification-component-type)
+ [作業系統](#tensorflow-lite-image-classification-component-os-support)
+ [要求](#tensorflow-lite-image-classification-component-requirements)
+ [相依性](#tensorflow-lite-image-classification-component-dependencies)
+ [Configuration](#tensorflow-lite-image-classification-component-configuration)
+ [本機日誌檔案](#tensorflow-lite-image-classification-component-log-file)
+ [變更記錄](#tensorflow-lite-image-classification-component-changelog)

## 版本
<a name="tensorflow-lite-image-classification-component-versions"></a>

此元件具有下列版本：
+ 2.1.x

## 類型
<a name="tensorflow-lite-image-classification-component-type"></a>

<a name="public-component-type-generic"></a>此<a name="public-component-type-generic-phrase"></a>元件是一般元件 (`aws.greengrass.generic`)。[Greengrass 核](greengrass-nucleus-component.md)會執行元件的生命週期指令碼。

<a name="public-component-type-more-information"></a>如需詳細資訊，請參閱[元件類型](develop-greengrass-components.md#component-types)。

## 作業系統
<a name="tensorflow-lite-image-classification-component-os-support"></a>

此元件可以安裝在執行下列作業系統的核心裝置上：
+ Linux
+ Windows

## 要求
<a name="tensorflow-lite-image-classification-component-requirements"></a>

此元件有下列需求：<a name="ml-component-requirements"></a>
+ 在執行 Amazon Linux 2 或 Ubuntu 18.04 的 Greengrass 核心裝置上，[GNU C Library](https://www.gnu.org/software/libc/) (glibc) 2.27 版或更新版本安裝在裝置上。
+ 在 Armv7l 裝置上，例如 Raspberry Pi，安裝在裝置上的 OpenCV-Python 相依性。執行下列命令來安裝相依性。

  ```
  sudo apt-get install libopenjp2-7 libilmbase23 libopenexr-dev libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libgtk-3-0 libwebp-dev
  ```
+ 執行 Raspberry Pi OS Bullseye 的 Raspberry Pi 裝置必須符合下列要求：
  + 裝置上已安裝 NumPy 1.22.4 或更新版本。Raspberry Pi OS Bullseye 包含舊版的 NumPy，因此您可以執行下列命令以在裝置上升級 NumPy。

    ```
    pip3 install --upgrade numpy
    ```
  + 裝置上啟用的舊版攝影機堆疊。Raspberry Pi OS Bullseye 包含預設啟用且不相容的新攝影機堆疊，因此您必須啟用舊版攝影機堆疊。<a name="raspberry-pi-bullseye-enable-legacy-camera-stack"></a>

**啟用舊版攝影機堆疊**

    1. 執行下列命令以開啟 Raspberry Pi 組態工具。

       ```
       sudo raspi-config
       ```

    1. 選取**界面選項**。

    1. 選取**舊版攝影機**以啟用舊版攝影機堆疊。

    1. 重新啟動 Raspberry Pi。

## 相依性
<a name="tensorflow-lite-image-classification-component-dependencies"></a>

當您部署元件時， AWS IoT Greengrass 也會部署其相依性的相容版本。這表示您必須符合元件及其所有相依性的要求，才能成功部署元件。本節列出此元件[發行版本的](#tensorflow-lite-image-classification-component-changelog)相依性，以及為每個相依性定義元件版本的語意版本限制。您也可以在 [AWS IoT Greengrass 主控台](https://console.aws.amazon.com//greengrass)中檢視每個版本元件的相依性。在元件詳細資訊頁面上，尋找**相依性**清單。

------
#### [ 2.1.11 and 2.1.12 ]

下表列出此元件 2.1.11 版和 2.1.12 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.13.0 | 軟式 | 
| [TensorFlow Lite 影像分類模型存放區](tensorflow-lite-image-classification-model-store-component.md) | >=2.1.0 <2.2.0 | 硬式 | 
| [TensorFlow Lite](tensorflow-lite-component.md) | >=2.5.0 <2.6.0 | 硬式 | 

------
#### [ 2.1.10 ]

下表列出此元件 2.1.10 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.12.0 | 軟式 | 
| [TensorFlow Lite 影像分類模型存放區](tensorflow-lite-image-classification-model-store-component.md) | >=2.1.0 <2.2.0 | 硬式 | 
| [TensorFlow Lite](tensorflow-lite-component.md) | >=2.5.0 <2.6.0 | 硬式 | 

------
#### [ 2.1.9 ]

下表列出此元件 2.1.9 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.11.0 | 軟式 | 
| [TensorFlow Lite 影像分類模型存放區](tensorflow-lite-image-classification-model-store-component.md) | >=2.1.0 <2.2.0 | 硬式 | 
| [TensorFlow Lite](tensorflow-lite-component.md) | >=2.5.0 <2.6.0 | 硬式 | 

------
#### [ 2.1.8 ]

下表列出此元件 2.1.8 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.10.0 | 軟式 | 
| [TensorFlow Lite 影像分類模型存放區](tensorflow-lite-image-classification-model-store-component.md) | >=2.1.0 <2.2.0 | 硬式 | 
| [TensorFlow Lite](tensorflow-lite-component.md) | >=2.5.0 <2.6.0 | 硬式 | 

------
#### [ 2.1.7 ]

下表列出此元件 2.1.7 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.9.0 | 軟式 | 
| [TensorFlow Lite 影像分類模型存放區](tensorflow-lite-image-classification-model-store-component.md) | >=2.1.0 <2.2.0 | 硬式 | 
| [TensorFlow Lite](tensorflow-lite-component.md) | >=2.5.0 <2.6.0 | 硬式 | 

------
#### [ 2.1.6 ]

下表列出此元件 2.1.6 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.8.0 | 軟式 | 
| [TensorFlow Lite 影像分類模型存放區](tensorflow-lite-image-classification-model-store-component.md) | >=2.1.0 <2.2.0 | 硬式 | 
| [TensorFlow Lite](tensorflow-lite-component.md) | >=2.5.0 <2.6.0 | 硬式 | 

------
#### [ 2.1.5 ]

下表列出此元件 2.1.5 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.7.0 | 軟式 | 
| [TensorFlow Lite 影像分類模型存放區](tensorflow-lite-image-classification-model-store-component.md) | >=2.1.0 <2.2.0 | 硬式 | 
| [TensorFlow Lite](tensorflow-lite-component.md) | >=2.5.0 <2.6.0 | 硬式 | 

------
#### [ 2.1.4 ]

下表列出此元件 2.1.4 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.6.0 | 軟式 | 
| [TensorFlow Lite 影像分類模型存放區](tensorflow-lite-image-classification-model-store-component.md) | >=2.1.0 <2.2.0 | 硬式 | 
| [TensorFlow Lite](tensorflow-lite-component.md) | >=2.5.0 <2.6.0 | 硬式 | 

------
#### [ 2.1.3 ]

下表列出此元件 2.1.3 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.5.0 | 軟式 | 
| [TensorFlow Lite 影像分類模型存放區](tensorflow-lite-image-classification-model-store-component.md) | >=2.1.0 <2.2.0 | 硬式 | 
| [TensorFlow Lite](tensorflow-lite-component.md) | >=2.5.0 <2.6.0 | 硬式 | 

------
#### [ 2.1.2 ]

下表列出此元件 2.1.2 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.4.0 | 軟式 | 
| [TensorFlow Lite 影像分類模型存放區](tensorflow-lite-image-classification-model-store-component.md) | >=2.1.0 <2.2.0 | 硬式 | 
| [TensorFlow Lite](tensorflow-lite-component.md) | >=2.5.0 <2.6.0 | 硬式 | 

------
#### [ 2.1.1 ]

下表列出此元件 2.1.1 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.3.0 | 軟式 | 
| [TensorFlow Lite 影像分類模型存放區](tensorflow-lite-image-classification-model-store-component.md) | >=2.1.0 <2.2.0 | 硬式 | 
| [TensorFlow Lite](tensorflow-lite-component.md) | >=2.5.0 <2.6.0 | 硬式 | 

------
#### [ 2.1.0 ]

下表列出此元件 2.1.0 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.2.0 | 軟式 | 
| [TensorFlow Lite 影像分類模型存放區](tensorflow-lite-image-classification-model-store-component.md) | >=2.1.0 <2.2.0 | 硬式 | 
| [TensorFlow Lite](tensorflow-lite-component.md) | >=2.5.0 <2.6.0 | 硬式 | 

------

## Configuration
<a name="tensorflow-lite-image-classification-component-configuration"></a>

此元件提供下列組態參數，您可以在部署元件時自訂這些參數。

`accessControl`  
<a name="ml-config-accesscontrol-desc"></a>（選用） 包含[授權政策](interprocess-communication.md#ipc-authorization-policies)的物件，允許元件將訊息發佈至預設通知主題。  
預設：  

```
{
   "aws.greengrass.ipc.mqttproxy": {
      "aws.greengrass.TensorFlowLiteImageClassification:mqttproxy:1": {
         "policyDescription": "Allows access to publish via topic ml/tflite/image-classification.",
         "operations": [
            "aws.greengrass#PublishToIoTCore"
         ],
         "resources": [
            "ml/tflite/image-classification"
         ]
      }
   }
}
```

`PublishResultsOnTopic`  
<a name="ml-config-publishresultsontopic-desc"></a>（選用） 您要發佈推論結果的主題。如果您修改此值，則也必須修改 `accessControl` 參數`resources`中的 值，以符合您的自訂主題名稱。  
預設：`ml/tflite/image-classification`

`Accelerator`  <a name="ml-config-accelerator"></a>
您要使用的加速器。支援的值為 `cpu` 和 `gpu`。  
相依模型元件中的範例模型僅支援 CPU 加速。若要搭配不同的自訂模型使用 GPU 加速，[請建立自訂模型元件](ml-customization.md#override-public-model-store)以覆寫公有模型元件。  
預設：`cpu`

`ImageDirectory`  
<a name="ml-config-imagedirectory-desc"></a>（選用） 推論元件讀取映像之裝置上的資料夾路徑。您可以將此值修改為您裝置上具有讀取/寫入存取權的任何位置。  
<a name="ml-config-imagedirectory-img-default"></a>預設：`/greengrass/v2/packages/artifacts-unarchived/component-name/image_classification/sample_images/`  
如果您將 的值設定為 `UseCamera` `true`，則會忽略此組態參數。

`ImageName`  
<a name="ml-config-imagename-desc"></a>（選用） 推論元件用來輸入進行預測的影像名稱。元件會在 中指定的資料夾中尋找映像`ImageDirectory`。根據預設，元件會使用預設映像目錄中的範例映像。 AWS IoT Greengrass 支援下列映像格式：`jpeg`、`png`、 `jpg`和 `npy`。  
<a name="ml-config-imagename-img-default"></a>預設：`cat.jpeg`  
如果您將 的值設定為 `UseCamera` `true`，則會忽略此組態參數。

`InferenceInterval`  <a name="ml-config-inferenceinterval"></a>
（選用） 推論程式碼所做的每個預測之間的秒數。範例推論程式碼會無限期執行，並在指定的時間間隔重複其預測。例如，如果您想要使用攝影機拍攝的影像進行即時預測，您可以將此值變更為較短的間隔。  
預設：`3600`

`ModelResourceKey`  <a name="ml-config-modelresourcekey"></a>
<a name="ml-config-modelresourcekey-desc"></a>（選用） 用於相依公有模型元件的模型。只有在您使用自訂元件覆寫公有模型元件時，才修改此參數。  
預設：  

```
{
    "model": "TensorFlowLite-Mobilenet"
}
```

`UseCamera`  <a name="ml-config-usecamera"></a>
（選用） 字串值，定義是否使用連接至 Greengrass 核心裝置的攝影機的影像。支援的值為 `true` 和 `false`。  
當您將此值設定為 時`true`，範例推論程式碼會存取裝置上的攝影機，並在擷取的影像上本機執行推論。會忽略 `ImageName`和 `ImageDirectory` 參數的值。請確定執行此元件的使用者具有攝影機存放擷取影像之位置的讀取/寫入存取權。  
預設：`false`  
當您檢視此元件的配方時，`UseCamera`組態參數不會出現在預設組態中。不過，您可以在部署元件時修改[組態合併更新](update-component-configurations.md)中此參數的值。  
將 `UseCamera`設定為 時`true`，您還必須建立符號連結，讓推論元件從執行期元件建立的虛擬環境中存取您的攝影機。如需搭配範例推論元件使用攝影機的詳細資訊，請參閱 [更新元件組態](ml-tutorial-image-classification-camera.md)。

## 本機日誌檔案
<a name="tensorflow-lite-image-classification-component-log-file"></a>

此元件使用以下日誌檔案。

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

```
/greengrass/v2/logs/aws.greengrass.TensorFlowLiteImageClassification.log
```

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

```
C:\greengrass\v2\logs\aws.greengrass.TensorFlowLiteImageClassification.log
```

------

**檢視此元件的日誌**
+ 在核心裝置上執行下列命令，以即時檢視此元件的日誌檔案。將 `/greengrass/v2`或 *C：\$1greengrass\$1v2* 取代為 AWS IoT Greengrass 根資料夾的路徑。

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

  ```
  sudo tail -f /greengrass/v2/logs/aws.greengrass.TensorFlowLiteImageClassification.log
  ```

------
#### [ Windows (PowerShell) ]

  ```
  Get-Content C:\greengrass\v2\logs\aws.greengrass.TensorFlowLiteImageClassification.log -Tail 10 -Wait
  ```

------

## 變更記錄
<a name="tensorflow-lite-image-classification-component-changelog"></a>

下表說明每個版本元件的變更。


|  版本  |  變更  | 
| --- | --- | 
|  2.1.12  |  針對 Greengrass 核 2.12.5 版更新版本。  | 
|  2.1.11  | 針對 Greengrass nucleus 2.12.0 版更新版本。 | 
|  2.1.10  | 針對 Greengrass nucleus 2.11.0 版更新版本。 | 
|  2.1.9  | 針對 Greengrass nucleus 2.10.0 版更新版本。 | 
|  2.1.8  | 針對 Greengrass nucleus 2.9.0 版更新版本。 | 
|  2.1.7  | 針對 Greengrass nucleus 2.8.0 版更新版本。 | 
|  2.1.6  |  針對 Greengrass nucleus 2.7.0 版更新版本。  | 
|  2.1.5  |  針對 Greengrass nucleus 2.6.0 版更新版本。  | 
|  2.1.4  |  針對 Greengrass nucleus 2.5.0 版更新版本。  | 
|  2.1.3  |  針對 Greengrass nucleus 2.4.0 版更新版本。  | 
|  2.1.2  |  針對 Greengrass nucleus 2.3.0 版更新版本。  | 
|  2.1.1  |  針對 Greengrass nucleus 2.2.0 版更新版本。  | 
|  2.1.0  |  初始版本。  | 

# TensorFlow Lite 物件偵測
<a name="tensorflow-lite-object-detection-component"></a>

TensorFlow Lite 物件偵測元件 (`aws.greengrass.TensorFlowLiteObjectDetection`) 包含使用 [TensorFlow Lite](https://www.tensorflow.org/lite/guide/python) 執行物件偵測推論的範例推論程式碼，以及預先訓練的範例單一鏡頭偵測 (SSD) MobileNet 1.0 模型。此元件使用 變體[TensorFlow Lite 物件偵測模型存放區](tensorflow-lite-object-detection-model-store-component.md)和 [TensorFlow Lite 執行時間](tensorflow-lite-component.md)元件做為相依項，以下載 TensorFlow Lite 和範例模型。

若要搭配自訂訓練的 TensorFlow Lite 模型使用此推論元件，您可以[建立相依模型存放區元件的自訂版本](ml-customization.md#override-public-model-store)。若要使用您自己的自訂推論程式碼，請使用此元件的配方做為範本來[建立自訂推論元件](ml-customization.md#create-inference-component)。

**Topics**
+ [版本](#tensorflow-lite-object-detection-component-versions)
+ [類型](#tensorflow-lite-object-detection-component-type)
+ [作業系統](#tensorflow-lite-object-detection-component-os-support)
+ [要求](#tensorflow-lite-object-detection-component-requirements)
+ [相依性](#tensorflow-lite-object-detection-component-dependencies)
+ [Configuration](#tensorflow-lite-object-detection-component-configuration)
+ [本機日誌檔案](#tensorflow-lite-object-detection-component-log-file)
+ [變更記錄](#tensorflow-lite-object-detection-component-changelog)

## 版本
<a name="tensorflow-lite-object-detection-component-versions"></a>

此元件具有下列版本：
+ 2.1.x

## 類型
<a name="tensorflow-lite-object-detection-component-type"></a>

<a name="public-component-type-generic"></a>此<a name="public-component-type-generic-phrase"></a>元件是一般元件 (`aws.greengrass.generic`)。[Greengrass 核](greengrass-nucleus-component.md)會執行元件的生命週期指令碼。

<a name="public-component-type-more-information"></a>如需詳細資訊，請參閱[元件類型](develop-greengrass-components.md#component-types)。

## 作業系統
<a name="tensorflow-lite-object-detection-component-os-support"></a>

此元件可以安裝在執行下列作業系統的核心裝置上：
+ Linux
+ Windows

## 要求
<a name="tensorflow-lite-object-detection-component-requirements"></a>

此元件有下列需求：<a name="ml-component-requirements"></a>
+ 在執行 Amazon Linux 2 或 Ubuntu 18.04 的 Greengrass 核心裝置上，[GNU C Library](https://www.gnu.org/software/libc/) (glibc) 2.27 版或更新版本安裝在裝置上。
+ 在 Armv7l 裝置上，例如 Raspberry Pi，安裝在裝置上的 OpenCV-Python 相依性。執行下列命令來安裝相依性。

  ```
  sudo apt-get install libopenjp2-7 libilmbase23 libopenexr-dev libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libgtk-3-0 libwebp-dev
  ```
+ 執行 Raspberry Pi OS Bullseye 的 Raspberry Pi 裝置必須符合下列要求：
  + 裝置上已安裝 NumPy 1.22.4 或更新版本。Raspberry Pi OS Bullseye 包含舊版的 NumPy，因此您可以執行下列命令以在裝置上升級 NumPy。

    ```
    pip3 install --upgrade numpy
    ```
  + 裝置上啟用的舊版攝影機堆疊。Raspberry Pi OS Bullseye 包含預設啟用且不相容的新攝影機堆疊，因此您必須啟用舊版攝影機堆疊。<a name="raspberry-pi-bullseye-enable-legacy-camera-stack"></a>

**啟用舊版攝影機堆疊**

    1. 執行下列命令以開啟 Raspberry Pi 組態工具。

       ```
       sudo raspi-config
       ```

    1. 選取**界面選項**。

    1. 選取**舊版攝影機**以啟用舊版攝影機堆疊。

    1. 重新啟動 Raspberry Pi。

## 相依性
<a name="tensorflow-lite-object-detection-component-dependencies"></a>

當您部署元件時， AWS IoT Greengrass 也會部署其相依性的相容版本。這表示您必須符合元件及其所有相依性的要求，才能成功部署元件。本節列出此元件[發行版本的](#tensorflow-lite-object-detection-component-changelog)相依性，以及為每個相依性定義元件版本的語意版本限制。您也可以在 [AWS IoT Greengrass 主控台](https://console.aws.amazon.com//greengrass)中檢視每個版本元件的相依性。在元件詳細資訊頁面上，尋找**相依性**清單。

------
#### [ 2.1.11 and 2.1.12 ]

下表列出此元件 2.1.11 版和 2.1.12 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.13.0 | 軟式 | 
| [TensorFlow Lite 影像分類模型存放區](tensorflow-lite-image-classification-model-store-component.md) | >=2.1.0 <2.2.0 | 硬式 | 
| [TensorFlow Lite](tensorflow-lite-component.md) | >=2.5.0 <2.6.0 | 硬式 | 

------
#### [ 2.1.10 ]

下表列出此元件 2.1.10 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.12.0 | 軟式 | 
| [TensorFlow Lite 影像分類模型存放區](tensorflow-lite-image-classification-model-store-component.md) | >=2.1.0 <2.2.0 | 硬式 | 
| [TensorFlow Lite](tensorflow-lite-component.md) | >=2.5.0 <2.6.0 | 硬式 | 

------
#### [ 2.1.9 ]

下表列出此元件 2.1.9 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.11.0 | 軟式 | 
| [TensorFlow Lite 影像分類模型存放區](tensorflow-lite-image-classification-model-store-component.md) | >=2.1.0 <2.2.0 | 硬式 | 
| [TensorFlow Lite](tensorflow-lite-component.md) | >=2.5.0 <2.6.0 | 硬式 | 

------
#### [ 2.1.8 ]

下表列出此元件 2.1.8 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.10.0 | 軟式 | 
| [TensorFlow Lite 影像分類模型存放區](tensorflow-lite-image-classification-model-store-component.md) | >=2.1.0 <2.2.0 | 硬式 | 
| [TensorFlow Lite](tensorflow-lite-component.md) | >=2.5.0 <2.6.0 | 硬式 | 

------
#### [ 2.1.7 ]

下表列出此元件 2.1.7 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.9.0 | 軟式 | 
| [TensorFlow Lite 影像分類模型存放區](tensorflow-lite-image-classification-model-store-component.md) | >=2.1.0 <2.2.0 | 硬式 | 
| [TensorFlow Lite](tensorflow-lite-component.md) | >=2.5.0 <2.6.0 | 硬式 | 

------
#### [ 2.1.6 ]

下表列出此元件 2.1.6 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.8.0 | 軟式 | 
| [TensorFlow Lite 影像分類模型存放區](tensorflow-lite-image-classification-model-store-component.md) | >=2.1.0 <2.2.0 | 硬式 | 
| [TensorFlow Lite](tensorflow-lite-component.md) | >=2.5.0 <2.6.0 | 硬式 | 

------
#### [ 2.1.5 ]

下表列出此元件 2.1.5 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.7.0 | 軟式 | 
| [TensorFlow Lite 影像分類模型存放區](tensorflow-lite-image-classification-model-store-component.md) | >=2.1.0 <2.2.0 | 硬式 | 
| [TensorFlow Lite](tensorflow-lite-component.md) | >=2.5.0 <2.6.0 | 硬式 | 

------
#### [ 2.1.4 ]

下表列出此元件 2.1.4 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.6.0 | 軟式 | 
| [TensorFlow Lite 影像分類模型存放區](tensorflow-lite-image-classification-model-store-component.md) | >=2.1.0 <2.2.0 | 硬式 | 
| [TensorFlow Lite](tensorflow-lite-component.md) | >=2.5.0 <2.6.0 | 硬式 | 

------
#### [ 2.1.3 ]

下表列出此元件 2.1.3 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.5.0 | 軟式 | 
| [TensorFlow Lite 影像分類模型存放區](tensorflow-lite-image-classification-model-store-component.md) | >=2.1.0 <2.2.0 | 硬式 | 
| [TensorFlow Lite](tensorflow-lite-component.md) | >=2.5.0 <2.6.0 | 硬式 | 

------
#### [ 2.1.2 ]

下表列出此元件 2.1.2 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.4.0 | 軟式 | 
| [TensorFlow Lite 影像分類模型存放區](tensorflow-lite-image-classification-model-store-component.md) | >=2.1.0 <2.2.0 | 硬式 | 
| [TensorFlow Lite](tensorflow-lite-component.md) | >=2.5.0 <2.6.0 | 硬式 | 

------
#### [ 2.1.1 ]

下表列出此元件 2.1.1 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.3.0 | 軟式 | 
| [TensorFlow Lite 影像分類模型存放區](tensorflow-lite-image-classification-model-store-component.md) | >=2.1.0 <2.2.0 | 硬式 | 
| [TensorFlow Lite](tensorflow-lite-component.md) | >=2.5.0 <2.6.0 | 硬式 | 

------
#### [ 2.1.0 ]

下表列出此元件 2.1.0 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.2.0 | 軟式 | 
| [TensorFlow Lite 影像分類模型存放區](tensorflow-lite-image-classification-model-store-component.md) | >=2.1.0 <2.2.0 | 硬式 | 
| [TensorFlow Lite](tensorflow-lite-component.md) | >=2.5.0 <2.6.0 | 硬式 | 

------

## Configuration
<a name="tensorflow-lite-object-detection-component-configuration"></a>

此元件提供下列組態參數，您可以在部署元件時自訂這些參數。

`accessControl`  
<a name="ml-config-accesscontrol-desc"></a>（選用） 包含[授權政策](interprocess-communication.md#ipc-authorization-policies)的物件，允許元件將訊息發佈至預設通知主題。  
預設：  

```
{
   "aws.greengrass.ipc.mqttproxy": {
      "aws.greengrass.TensorFlowLiteObjectDetection:mqttproxy:1": {
         "policyDescription": "Allows access to publish via topic ml/tflite/object-detection.",
         "operations": [
            "aws.greengrass#PublishToIoTCore"
         ],
         "resources": [
            "ml/tflite/object-detection"
         ]
      }
   }
}
```

`PublishResultsOnTopic`  
<a name="ml-config-publishresultsontopic-desc"></a>（選用） 您要發佈推論結果的主題。如果您修改此值，則也必須修改 `accessControl` 參數`resources`中的 值，以符合您的自訂主題名稱。  
預設：`ml/tflite/object-detection`

`Accelerator`  <a name="ml-config-accelerator"></a>
您要使用的加速器。支援的值為 `cpu` 和 `gpu`。  
相依模型元件中的範例模型僅支援 CPU 加速。若要搭配不同的自訂模型使用 GPU 加速，[請建立自訂模型元件](ml-customization.md#override-public-model-store)以覆寫公有模型元件。  
預設：`cpu`

`ImageDirectory`  
<a name="ml-config-imagedirectory-desc"></a>（選用） 推論元件讀取映像之裝置上的資料夾路徑。您可以將此值修改為您裝置上具有讀取/寫入存取權的任何位置。  
<a name="ml-config-imagedirectory-obj-default"></a>預設：`/greengrass/v2/packages/artifacts-unarchived/component-name/object_detection/sample_images/`  
如果您將 的值設定為 `UseCamera` `true`，則會忽略此組態參數。

`ImageName`  
<a name="ml-config-imagename-desc"></a>（選用） 推論元件用來輸入進行預測的影像名稱。元件會在 中指定的資料夾中尋找映像`ImageDirectory`。根據預設，元件會使用預設映像目錄中的範例映像。 AWS IoT Greengrass 支援下列映像格式：`jpeg`、`png`、 `jpg`和 `npy`。  
<a name="ml-config-imagename-obj-default"></a>預設：`objects.jpg`  
如果您將 的值設定為 `UseCamera` `true`，則會忽略此組態參數。

`InferenceInterval`  <a name="ml-config-inferenceinterval"></a>
（選用） 推論程式碼所做的每個預測之間的秒數。範例推論程式碼會無限期執行，並在指定的時間間隔重複其預測。例如，如果您想要使用攝影機拍攝的影像進行即時預測，您可以將此值變更為較短的間隔。  
預設：`3600`

`ModelResourceKey`  <a name="ml-config-modelresourcekey"></a>
<a name="ml-config-modelresourcekey-desc"></a>（選用） 用於相依公有模型元件的模型。只有在您使用自訂元件覆寫公有模型元件時，才修改此參數。  
預設：  

```
{
    "model": "TensorFlowLite-SSD"
}
```

`UseCamera`  <a name="ml-config-usecamera"></a>
（選用） 字串值，定義是否使用連接至 Greengrass 核心裝置的攝影機的影像。支援的值為 `true` 和 `false`。  
當您將此值設定為 時`true`，範例推論程式碼會存取裝置上的攝影機，並在擷取的影像上本機執行推論。會忽略 `ImageName`和 `ImageDirectory` 參數的值。確定執行此元件的使用者具有攝影機存放擷取影像之位置的讀取/寫入存取權。  
預設：`false`  
當您檢視此元件的配方時，`UseCamera`組態參數不會出現在預設組態中。不過，您可以在部署元件時修改[組態合併更新](update-component-configurations.md)中此參數的值。  
將 `UseCamera`設定為 時`true`，您還必須建立符號連結，讓推論元件從執行期元件建立的虛擬環境中存取您的攝影機。如需搭配範例推論元件使用攝影機的詳細資訊，請參閱 [更新元件組態](ml-tutorial-image-classification-camera.md)。

**注意**  <a name="ml-config-not-visible-note"></a>
當您檢視此元件的配方時，`UseCamera`組態參數不會出現在預設組態中。不過，您可以在部署元件時修改[組態合併更新](update-component-configurations.md)中此參數的值。  
將 `UseCamera`設定為 時`true`，您還必須建立符號連結，讓推論元件從執行期元件建立的虛擬環境中存取您的攝影機。如需搭配範例推論元件使用攝影機的詳細資訊，請參閱 [更新元件組態](ml-tutorial-image-classification-camera.md)。

## 本機日誌檔案
<a name="tensorflow-lite-object-detection-component-log-file"></a>

此元件使用以下日誌檔案。

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

```
/greengrass/v2/logs/aws.greengrass.TensorFlowLiteObjectDetection.log
```

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

```
C:\greengrass\v2\logs\aws.greengrass.TensorFlowLiteObjectDetection.log
```

------

**檢視此元件的日誌**
+ 在核心裝置上執行下列命令，以即時檢視此元件的日誌檔案。將 `/greengrass/v2`或 *C：\$1greengrass\$1v2* 取代為 AWS IoT Greengrass 根資料夾的路徑。

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

  ```
  sudo tail -f /greengrass/v2/logs/aws.greengrass.TensorFlowLiteObjectDetection.log
  ```

------
#### [ Windows (PowerShell) ]

  ```
  Get-Content C:\greengrass\v2\logs\aws.greengrass.TensorFlowLiteObjectDetection.log -Tail 10 -Wait
  ```

------

## 變更記錄
<a name="tensorflow-lite-object-detection-component-changelog"></a>

下表說明每個版本元件的變更。


|  版本  |  變更  | 
| --- | --- | 
|  2.1.12  |  針對 Greengrass nucleus 2.12.5 版本更新版本。  | 
|  2.1.11  | 針對 Greengrass nucleus 2.12.0 版更新版本。 | 
|  2.1.10  | 針對 Greengrass nucleus 2.11.0 版更新版本。 | 
|  2.1.9  | 針對 Greengrass nucleus 2.10.0 版更新版本。 | 
|  2.1.8  | 針對 Greengrass nucleus 2.9.0 版更新版本。 | 
|  2.1.7  | 針對 Greengrass nucleus 2.8.0 版更新版本。 | 
|  2.1.6  |  針對 Greengrass nucleus 2.7.0 版更新版本。  | 
|  2.1.5  |  針對 Greengrass nucleus 2.6.0 版更新版本。  | 
|  2.1.4  |  針對 Greengrass nucleus 2.5.0 版更新版本。  | 
|  2.1.3  |  針對 Greengrass nucleus 2.4.0 版更新版本。  | 
|  2.1.2  |  針對 Greengrass nucleus 2.3.0 版更新版本。  | 
|  2.1.1  |  <a name="changelog-tensorflow-lite-object-detection-2.1.1"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/tensorflow-lite-object-detection-component.html)  | 
|  2.1.0  |  初始版本。  | 

# TensorFlow Lite 影像分類模型存放區
<a name="tensorflow-lite-image-classification-model-store-component"></a>

TensorFlow Lite 影像分類模型存放區 (`variant.TensorFlowLite.ImageClassification.ModelStore`) 是一種機器學習模型元件，其中包含預先訓練的 MobileNet v1 模型做為 Greengrass 成品。此元件中使用的範例模型是從 [TensorFlow Hub](https://tfhub.dev/) 擷取，並使用 [TensorFlow Lite](https://www.tensorflow.org/lite/guide/python) 實作。

[TensorFlow Lite 影像分類](tensorflow-lite-image-classification-component.md) 推論元件使用此元件做為模型來源的相依性。若要使用自訂訓練的 TensorFlow Lite 模型，[請建立此模型元件的自訂版本](ml-customization.md#override-public-model-store)，並將自訂模型包含為元件成品。您可以使用此元件的配方做為範本，來建立自訂模型元件。

**Topics**
+ [版本](#tensorflow-lite-image-classification-model-store-component-versions)
+ [類型](#tensorflow-lite-image-classification-model-store-component-type)
+ [作業系統](#tensorflow-lite-image-classification-model-store-component-os-support)
+ [要求](#tensorflow-lite-image-classification-model-store-component-requirements)
+ [相依性](#tensorflow-lite-image-classification-model-store-component-dependencies)
+ [Configuration](#tensorflow-lite-image-classification-model-store-component-configuration)
+ [本機日誌檔案](#tensorflow-lite-image-classification-model-store-component-log-file)
+ [變更記錄](#tensorflow-lite-image-classification-model-store-component-changelog)

## 版本
<a name="tensorflow-lite-image-classification-model-store-component-versions"></a>

此元件具有下列版本：
+ 2.1.x

## 類型
<a name="tensorflow-lite-image-classification-model-store-component-type"></a>

<a name="public-component-type-generic"></a>此<a name="public-component-type-generic-phrase"></a>元件是一般元件 (`aws.greengrass.generic`)。[Greengrass 核](greengrass-nucleus-component.md)會執行元件的生命週期指令碼。

<a name="public-component-type-more-information"></a>如需詳細資訊，請參閱[元件類型](develop-greengrass-components.md#component-types)。

## 作業系統
<a name="tensorflow-lite-image-classification-model-store-component-os-support"></a>

此元件可以安裝在執行下列作業系統的核心裝置上：
+ Linux
+ Windows

## 要求
<a name="tensorflow-lite-image-classification-model-store-component-requirements"></a>

此元件有下列需求：<a name="ml-component-requirements"></a>
+ 在執行 Amazon Linux 2 或 Ubuntu 18.04 的 Greengrass 核心裝置上，[GNU C Library](https://www.gnu.org/software/libc/) (glibc) 2.27 版或更新版本安裝在裝置上。
+ 在 Armv7l 裝置上，例如 Raspberry Pi，安裝在裝置上的 OpenCV-Python 相依性。執行下列命令來安裝相依性。

  ```
  sudo apt-get install libopenjp2-7 libilmbase23 libopenexr-dev libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libgtk-3-0 libwebp-dev
  ```
+ 執行 Raspberry Pi OS Bullseye 的 Raspberry Pi 裝置必須符合下列要求：
  + 裝置上已安裝 NumPy 1.22.4 或更新版本。Raspberry Pi OS Bullseye 包含舊版的 NumPy，因此您可以執行下列命令以在裝置上升級 NumPy。

    ```
    pip3 install --upgrade numpy
    ```
  + 裝置上啟用的舊版攝影機堆疊。Raspberry Pi OS Bullseye 包含預設啟用且不相容的新攝影機堆疊，因此您必須啟用舊版攝影機堆疊。<a name="raspberry-pi-bullseye-enable-legacy-camera-stack"></a>

**啟用舊版攝影機堆疊**

    1. 執行下列命令以開啟 Raspberry Pi 組態工具。

       ```
       sudo raspi-config
       ```

    1. 選取**界面選項**。

    1. 選取**舊版攝影機**以啟用舊版攝影機堆疊。

    1. 重新啟動 Raspberry Pi。

## 相依性
<a name="tensorflow-lite-image-classification-model-store-component-dependencies"></a>

當您部署元件時， AWS IoT Greengrass 也會部署其相依性的相容版本。這表示您必須符合元件及其所有相依性的要求，才能成功部署元件。本節列出此元件[發行版本的](#tensorflow-lite-image-classification-model-store-component-changelog)相依性，以及為每個相依性定義元件版本的語意版本限制。您也可以在 [AWS IoT Greengrass 主控台](https://console.aws.amazon.com//greengrass)中檢視每個版本元件的相依性。在元件詳細資訊頁面上，尋找**相依性**清單。

------
#### [ 2.1.11 and 2.1.12  ]

下表列出此元件 2.1.11 版和 2.1.12 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.13.0 | 軟式 | 

------
#### [ 2.1.10 ]

下表列出此元件 2.1.10 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.12.0 | 軟式 | 

------
#### [ 2.1.9 ]

下表列出此元件 2.1.9 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.11.0 | 軟式 | 

------
#### [ 2.1.8 ]

下表列出此元件 2.1.8 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.10.0 | 軟式 | 

------
#### [ 2.1.7 ]

下表列出此元件 2.1.7 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.9.0 | 軟式 | 

------
#### [ 2.1.6 ]

下表列出此元件 2.1.6 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.8.0 | 軟式 | 

------
#### [ 2.1.5 ]

下表列出此元件 2.1.5 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.7.0 | 軟式 | 

------
#### [ 2.1.4 ]

下表列出此元件 2.1.4 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.6.0 | 軟式 | 

------
#### [ 2.1.3 ]

下表列出此元件 2.1.3 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.5.0 | 軟式 | 

------
#### [ 2.1.2 ]

下表列出此元件 2.1.2 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.4.0 | 軟式 | 

------
#### [ 2.1.1 ]

下表列出此元件 2.1.1 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.3.0 | 軟式 | 

------
#### [ 2.1.0 ]

下表列出此元件 2.1.0 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.2.0 | 軟式 | 

------

## Configuration
<a name="tensorflow-lite-image-classification-model-store-component-configuration"></a>

此元件沒有任何組態參數。

## 本機日誌檔案
<a name="tensorflow-lite-image-classification-model-store-component-log-file"></a>

此元件不會輸出日誌。

## 變更記錄
<a name="tensorflow-lite-image-classification-model-store-component-changelog"></a>

下表說明每個版本元件的變更。


|  版本  |  變更  | 
| --- | --- | 
|  2.1.12  |  針對 Greengrass nucleus 2.12.5 版本更新版本。  | 
|  2.1.11  | 針對 Greengrass nucleus 2.12.0 版更新版本。 | 
|  2.1.10  | 針對 Greengrass nucleus 2.11.0 版更新版本。 | 
|  2.1.9  | 針對 Greengrass nucleus 2.10.0 版更新版本。 | 
|  2.1.8  | 針對 Greengrass nucleus 2.9.0 版更新版本。 | 
|  2.1.7  | 針對 Greengrass nucleus 2.8.0 版更新版本。 | 
|  2.1.6  |  針對 Greengrass nucleus 2.7.0 版更新版本。  | 
|  2.1.5  |  針對 Greengrass nucleus 2.6.0 版更新版本。  | 
|  2.1.4  |  針對 Greengrass nucleus 2.5.0 版更新版本。  | 
|  2.1.3  |  針對 Greengrass nucleus 2.4.0 版更新版本。  | 
|  2.1.2  |  針對 Greengrass nucleus 2.3.0 版更新版本。  | 
|  2.1.1  |  針對 Greengrass nucleus 2.2.0 版更新版本。  | 
|  2.1.0  |  初始版本。  | 

# TensorFlow Lite 物件偵測模型存放區
<a name="tensorflow-lite-object-detection-model-store-component"></a>

TensorFlow Lite 物件偵測模型存放區 (`variant.TensorFlowLite.ObjectDetection.ModelStore`) 是一種機器學習模型元件，其中包含預先訓練的單一鏡頭偵測 (SSD) MobileNet 模型作為 Greengrass 成品。此元件中使用的範例模型是從 [TensorFlow Hub](https://tfhub.dev/) 擷取，並使用 [TensorFlow Lite](https://www.tensorflow.org/lite/guide/python) 實作。

[TensorFlow Lite 物件偵測](tensorflow-lite-object-detection-component.md)推論元件使用此元件做為模型來源的相依性。若要使用自訂訓練的 TensorFlow Lite 模型，[請建立此模型元件的自訂版本](ml-customization.md#override-public-model-store)，並將自訂模型包含為元件成品。您可以使用此元件的配方做為範本，來建立自訂模型元件。

**Topics**
+ [版本](#tensorflow-lite-object-detection-model-store-component-versions)
+ [類型](#tensorflow-lite-object-detection-model-store-component-type)
+ [作業系統](#tensorflow-lite-object-detection-model-store-component-os-support)
+ [要求](#tensorflow-lite-object-detection-model-store-component-requirements)
+ [相依性](#tensorflow-lite-object-detection-model-store-component-dependencies)
+ [Configuration](#tensorflow-lite-object-detection-model-store-component-configuration)
+ [本機日誌檔案](#tensorflow-lite-object-detection-model-store-component-log-file)
+ [變更記錄](#tensorflow-lite-object-detection-model-store-component-changelog)

## 版本
<a name="tensorflow-lite-object-detection-model-store-component-versions"></a>

此元件具有下列版本：
+ 2.1.x

## 類型
<a name="tensorflow-lite-object-detection-model-store-component-type"></a>

<a name="public-component-type-generic"></a>此<a name="public-component-type-generic-phrase"></a>元件是一般元件 (`aws.greengrass.generic`)。[Greengrass 核](greengrass-nucleus-component.md)會執行元件的生命週期指令碼。

<a name="public-component-type-more-information"></a>如需詳細資訊，請參閱[元件類型](develop-greengrass-components.md#component-types)。

## 作業系統
<a name="tensorflow-lite-object-detection-model-store-component-os-support"></a>

此元件可以安裝在執行下列作業系統的核心裝置上：
+ Linux
+ Windows

## 要求
<a name="tensorflow-lite-object-detection-model-store-component-requirements"></a>

此元件有下列需求：<a name="ml-component-requirements"></a>
+ 在執行 Amazon Linux 2 或 Ubuntu 18.04 的 Greengrass 核心裝置上，[GNU C Library](https://www.gnu.org/software/libc/) (glibc) 2.27 版或更新版本安裝在裝置上。
+ 在 Armv7l 裝置上，例如 Raspberry Pi，安裝在裝置上的 OpenCV-Python 相依性。執行下列命令來安裝相依性。

  ```
  sudo apt-get install libopenjp2-7 libilmbase23 libopenexr-dev libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libgtk-3-0 libwebp-dev
  ```
+ 執行 Raspberry Pi OS Bullseye 的 Raspberry Pi 裝置必須符合下列要求：
  + 裝置上已安裝 NumPy 1.22.4 或更新版本。Raspberry Pi OS Bullseye 包含舊版的 NumPy，因此您可以執行下列命令以在裝置上升級 NumPy。

    ```
    pip3 install --upgrade numpy
    ```
  + 在裝置上啟用的舊版攝影機堆疊。Raspberry Pi OS Bullseye 包含預設啟用且不相容的新攝影機堆疊，因此您必須啟用舊版攝影機堆疊。<a name="raspberry-pi-bullseye-enable-legacy-camera-stack"></a>

**啟用舊版攝影機堆疊**

    1. 執行下列命令以開啟 Raspberry Pi 組態工具。

       ```
       sudo raspi-config
       ```

    1. 選取**界面選項**。

    1. 選取**舊版攝影機**以啟用舊版攝影機堆疊。

    1. 重新啟動 Raspberry Pi。

## 相依性
<a name="tensorflow-lite-object-detection-model-store-component-dependencies"></a>

當您部署元件時， AWS IoT Greengrass 也會部署其相依性的相容版本。這表示您必須符合元件及其所有相依性的要求，才能成功部署元件。本節列出此元件[發行版本的](#tensorflow-lite-object-detection-model-store-component-changelog)相依性，以及為每個相依性定義元件版本的語意版本限制。您也可以在 [AWS IoT Greengrass 主控台](https://console.aws.amazon.com//greengrass)中檢視每個版本元件的相依性。在元件詳細資訊頁面上，尋找**相依性**清單。

------
#### [ 2.1.11 and 2.1.12 ]

下表列出此元件 2.1.11 和 2.1.12 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.13.0 | 軟式 | 

------
#### [ 2.1.10 ]

下表列出此元件 2.1.10 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.12.0 | 軟式 | 

------
#### [ 2.1.9 ]

下表列出此元件 2.1.9 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.11.0 | 軟式 | 

------
#### [ 2.1.8 ]

下表列出此元件 2.1.8 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.10.0 | 軟式 | 

------
#### [ 2.1.7 ]

下表列出此元件 2.1.7 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.9.0 | 軟式 | 

------
#### [ 2.1.6 ]

下表列出此元件 2.1.6 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.8.0 | 軟式 | 

------
#### [ 2.1.5 ]

下表列出此元件 2.1.5 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.7.0 | 軟式 | 

------
#### [ 2.1.4 ]

下表列出此元件 2.1.4 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.6.0 | 軟式 | 

------
#### [ 2.1.3 ]

下表列出此元件 2.1.3 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.5.0 | 軟式 | 

------
#### [ 2.1.2 ]

下表列出此元件 2.1.2 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.4.0 | 軟式 | 

------
#### [ 2.1.1 ]

下表列出此元件 2.1.1 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.3.0 | 軟式 | 

------
#### [ 2.1.0 ]

下表列出此元件 2.1.0 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.2.0 | 軟式 | 

------

## Configuration
<a name="tensorflow-lite-object-detection-model-store-component-configuration"></a>

此元件沒有任何組態參數。

## 本機日誌檔案
<a name="tensorflow-lite-object-detection-model-store-component-log-file"></a>

此元件不會輸出日誌。

## 變更記錄
<a name="tensorflow-lite-object-detection-model-store-component-changelog"></a>

下表說明每個版本元件的變更。


|  版本  |  變更  | 
| --- | --- | 
|  2.1.12  |  針對 Greengrass nucleus 2.12.5 版本更新版本。  | 
|  2.1.11  | 針對 Greengrass nucleus 2.12.0 版更新版本。 | 
|  2.1.10  | 針對 Greengrass nucleus 2.11.0 版更新版本。 | 
|  2.1.9  | 針對 Greengrass nucleus 2.10.0 版更新版本。 | 
|  2.1.8  | 針對 Greengrass nucleus 2.9.0 版更新版本。 | 
|  2.1.7  | 針對 Greengrass nucleus 2.8.0 版更新版本。 | 
|  2.1.6  |  針對 Greengrass nucleus 2.7.0 版更新版本。  | 
|  2.1.5  |  針對 Greengrass nucleus 2.6.0 版更新版本。  | 
|  2.1.4  |  針對 Greengrass nucleus 2.5.0 版更新版本。  | 
|  2.1.3  |  針對 Greengrass nucleus 2.4.0 版更新版本。  | 
|  2.1.2  |  針對 Greengrass nucleus 2.3.0 版更新版本。  | 
|  2.1.1  |  針對 Greengrass nucleus 2.2.0 版更新版本。  | 
|  2.1.0  |  初始版本。  | 

# TensorFlow Lite 執行時間
<a name="tensorflow-lite-component"></a>

TensorFlow Lite 執行期元件 (`variant.TensorFlowLite`) 包含指令碼，可在您裝置上的虛擬環境中安裝 [TensorFlow Lite](https://www.tensorflow.org/lite/guide/python) 2.5.0 版及其相依性。[TensorFlow Lite 影像分類](tensorflow-lite-image-classification-component.md)和 [TensorFlow Lite 物件偵測](tensorflow-lite-object-detection-component.md)元件使用此執行期元件做為安裝 TensorFlow Lite 的相依性。

**注意**  
TensorFlow Lite 執行期元件 v2.5.6 和更新版本會重新安裝 TensorFlow Lite 執行期及其相依性的現有安裝。此重新安裝有助於確保核心裝置執行相容版本的 TensorFlow Lite 及其相依性。

若要使用不同的執行時間，您可以使用此元件的配方做為範本來[建立自訂機器學習元件](ml-customization.md)。

**Topics**
+ [版本](#tensorflow-lite-component-versions)
+ [類型](#tensorflow-lite-component-type)
+ [作業系統](#tensorflow-lite-component-os-support)
+ [要求](#tensorflow-lite-component-requirements)
+ [相依性](#tensorflow-lite-component-dependencies)
+ [Configuration](#tensorflow-lite-component-configuration)
+ [用途](#tensorflow-lite-component-usage)
+ [本機日誌檔案](#tensorflow-lite-component-log-file)
+ [變更記錄](#tensorflow-lite-component-changelog)

## 版本
<a name="tensorflow-lite-component-versions"></a>

此元件具有下列版本：
+ 2.5.x

## 類型
<a name="tensorflow-lite-component-type"></a>

<a name="public-component-type-generic"></a>此<a name="public-component-type-generic-phrase"></a>元件是一般元件 (`aws.greengrass.generic`)。[Greengrass 核](greengrass-nucleus-component.md)會執行元件的生命週期指令碼。

<a name="public-component-type-more-information"></a>如需詳細資訊，請參閱[元件類型](develop-greengrass-components.md#component-types)。

## 作業系統
<a name="tensorflow-lite-component-os-support"></a>

此元件可以安裝在執行下列作業系統的核心裝置上：
+ Linux
+ Windows

## 要求
<a name="tensorflow-lite-component-requirements"></a>

此元件有下列需求：<a name="ml-component-requirements"></a>
+ 在執行 Amazon Linux 2 或 Ubuntu 18.04 的 Greengrass 核心裝置上，[GNU C Library](https://www.gnu.org/software/libc/) (glibc) 2.27 版或更新版本安裝在裝置上。
+ 在 Armv7l 裝置上，例如 Raspberry Pi，安裝在裝置上的 OpenCV-Python 相依性。執行下列命令來安裝相依性。

  ```
  sudo apt-get install libopenjp2-7 libilmbase23 libopenexr-dev libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libgtk-3-0 libwebp-dev
  ```
+ 執行 Raspberry Pi OS Bullseye 的 Raspberry Pi 裝置必須符合下列要求：
  + 裝置上已安裝 NumPy 1.22.4 或更新版本。Raspberry Pi OS Bullseye 包含舊版的 NumPy，因此您可以執行下列命令以在裝置上升級 NumPy。

    ```
    pip3 install --upgrade numpy
    ```
  + 在裝置上啟用的舊版攝影機堆疊。Raspberry Pi OS Bullseye 包含預設啟用且不相容的新攝影機堆疊，因此您必須啟用舊版攝影機堆疊。<a name="raspberry-pi-bullseye-enable-legacy-camera-stack"></a>

**啟用舊版攝影機堆疊**

    1. 執行下列命令以開啟 Raspberry Pi 組態工具。

       ```
       sudo raspi-config
       ```

    1. 選取**界面選項**。

    1. 選取**舊版攝影機**以啟用舊版攝影機堆疊。

    1. 重新啟動 Raspberry Pi。

### 端點和連接埠
<a name="tensorflow-lite-component-endpoints"></a>

根據預設，此元件會使用安裝程式指令碼，根據核心裝置使用的平台，使用 `apt`、`brew`、 `yum`和 `pip`命令來安裝套件。此元件必須能夠對各種套件索引和儲存庫執行傳出請求，才能執行安裝程式指令碼。若要允許此元件透過代理或防火牆的傳出流量，您必須識別核心裝置連線安裝之套件索引和儲存庫的端點。

當您識別此元件安裝指令碼所需的端點時，請考慮下列事項：
+ 端點取決於核心裝置的平台。例如，執行 Ubuntu 的核心裝置會使用 `apt`而非 `yum`或 `brew`。此外，使用相同套件索引的裝置可能會有不同的來源清單，因此可能會從不同的儲存庫擷取套件。
+ 使用相同套件索引的多個裝置之間的端點可能不同，因為每個裝置都有自己的來源清單，可定義擷取套件的位置。
+ 端點可能會隨著時間而變更。每個套件索引都會提供您下載套件之儲存庫URLs，而套件的擁有者可以變更套件索引提供的 URLs。

如需此元件安裝的相依性，以及如何停用安裝程式指令碼的詳細資訊，請參閱 [UseInstaller](#tensorflow-lite-component-config-useinstaller-term) 組態參數。

如需基本操作所需的端點和連接埠的詳細資訊，請參閱[允許透過代理或防火牆的裝置流量](allow-device-traffic.md)。

## 相依性
<a name="tensorflow-lite-component-dependencies"></a>

當您部署元件時， AWS IoT Greengrass 也會部署其相依性的相容版本。這表示您必須符合元件及其所有相依性的要求，才能成功部署元件。本節列出此元件[發行版本的](#tensorflow-lite-component-changelog)相依性，以及為每個相依性定義元件版本的語意版本限制。您也可以在 [AWS IoT Greengrass 主控台](https://console.aws.amazon.com//greengrass)中檢視每個版本元件的相依性。在元件詳細資訊頁面上，尋找**相依性**清單。

------
#### [ 2.5.14 and 2.5.15 ]

下表列出此元件 2.5.14 版和 2.5.15 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.13.0 | 軟式 | 

------
#### [ 2.5.13 ]

下表列出此元件 2.5.13 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.12.0 | 軟式 | 

------
#### [ 2.5.12 ]

下表列出此元件 2.5.12 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.11.0 | 軟式 | 

------
#### [ 2.5.11 ]

下表列出此元件 2.5.11 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.10.0 | 軟式 | 

------
#### [ 2.5.10 ]

下表列出此元件 2.5.10 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.9.0 | 軟式 | 

------
#### [ 2.5.9 ]

下表列出此元件 2.5.9 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.8.0 | 軟式 | 

------
#### [ 2.5.8 ]

下表列出此元件 2.5.8 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.7.0 | 軟式 | 

------
#### [ 2.5.5 - 2.5.7 ]

下表列出此元件 2.5.5 到 2.5.7 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.6.0 | 軟式 | 

------
#### [ 2.5.3 and 2.5.4 ]

下表列出此元件 2.5.3 和 2.5.4 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.5.0 | 軟式 | 

------
#### [ 2.5.2 ]

下表列出此元件 2.5.2 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.4.0 | 軟式 | 

------
#### [ 2.5.1 ]

下表列出此元件 2.5.1 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.3.0 | 軟式 | 

------
#### [ 2.5.0 ]

下表列出此元件 2.5.0 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.2.0 | 軟式 | 

------

如需元件相依性的詳細資訊，請參閱[元件配方參考](component-recipe-reference.md#recipe-reference-component-dependencies)。

## Configuration
<a name="tensorflow-lite-component-configuration"></a>

此元件提供下列組態參數，您可以在部署元件時自訂這些參數。

`MLRootPath`  
<a name="ml-config-mlrootpath-desc"></a>（選用） Linux 核心裝置上的資料夾路徑，其中推論元件會讀取映像和寫入推論結果。您可以將此值修改為裝置上執行此元件的使用者具有讀取/寫入存取權的任何位置。  
<a name="ml-config-mlrootpath-default-tfl"></a>預設：`/greengrass/v2/work/variant.TensorFlowLite/greengrass_ml`

`WindowsMLRootPath`  
此功能適用於此元件的 v1.6.6 和更新版本。  
<a name="ml-config-windowsmlrootpath-desc"></a>（選用） Windows 核心裝置上的資料夾路徑，其中推論元件會讀取映像和寫入推論結果。您可以將此值修改為裝置上執行此元件的使用者具有讀取/寫入存取權的任何位置。  
<a name="ml-config-windowsmlrootpath-default-dlr"></a>預設：`C:\greengrass\v2\\work\\variant.DLR\\greengrass_ml`

  `UseInstaller`   
<a name="ml-config-useinstaller-desc-tfl"></a>（選用） 字串值，定義是否使用此元件中的安裝程式指令碼來安裝 TensorFlow Lite 及其相依性。支援的值為 `true` 和 `false`。  <a name="ml-config-useinstaller-libraries-tfl"></a>

`false` 如果您想要針對 TensorFlow Lite 安裝使用自訂指令碼，或想要在預先建置的 Linux 映像中包含執行時間相依性，請將此值設定為 。若要將此元件與 AWS提供的 TensorFlow Lite 推論元件搭配使用，請安裝下列程式庫，包括任何相依性，並將其提供給`ggc_user`執行 ML 元件的系統使用者，例如 。
+ [Python](https://www.python.org/downloads/) 3.8 或更新版本，包括`pip`適用於您 Python 版本的
+ [TensorFlow Lite](https://www.tensorflow.org/lite/guide/python) 2.5.0 版
+ [NumPy](https://numpy.org/install/)
+ [OpenCV-Python](https://pypi.org/project/opencv-python/)
+ [AWS IoT Device SDK 適用於 Python 的 v2](https://github.com/aws/aws-iot-device-sdk-python-v2)
+ [AWS 常見執行時間 (CRT) Python](https://github.com/awslabs/aws-crt-python)
+ [Picamera](https://picamera.readthedocs.io/en/release-1.13/) （適用於 Raspberry Pi 裝置）
+ [`awscam` 模組](https://docs.aws.amazon.com/deeplens/latest/dg/deeplens-library-awscam-module.html) （適用於 AWS DeepLens 裝置）
+ libGL （適用於 Linux 裝置）
<a name="ml-config-useinstaller-default"></a>預設：`true`

## 用途
<a name="tensorflow-lite-component-usage"></a>

將此元件與設定為 的`UseInstaller`組態參數搭配使用`true`，以在您的裝置上安裝 TensorFlow Lite 及其相依性。元件會在您的裝置上設定虛擬環境，其中包含 TensorFlow Lite 所需的 OpenCV 和 NumPy 程式庫。

**注意**  <a name="ml-installer-component-usage-note"></a>
此元件中的安裝程式指令碼也會安裝最新版本的其他系統程式庫，這些程式庫是在您的裝置上設定虛擬環境並使用已安裝的機器學習架構所必需。這可能會升級裝置上的現有系統程式庫。檢閱下表，以取得此元件針對每個支援的作業系統安裝的程式庫清單。如果您想要自訂此安裝程序，請將`UseInstaller`組態參數設定為 `false`，並開發您自己的安裝程式指令碼。


| 平台 | 裝置系統上安裝的程式庫 | 安裝在虛擬環境中的程式庫 | 
| --- | --- | --- | 
| Armv7l | build-essential, cmake, ca-certificates, git | setuptools, wheel | 
| Amazon Linux 2 | mesa-libGL | 無 | 
| Ubuntu | wget | 無 | 

當您部署推論元件時，此執行時間元件會先驗證您的裝置是否已安裝 TensorFlow Lite 及其相依性。如果沒有，則執行期元件會為您安裝它們。

## 本機日誌檔案
<a name="tensorflow-lite-component-log-file"></a>

此元件使用以下日誌檔案。

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

```
/greengrass/v2/logs/variant.TensorFlowLite.log
```

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

```
C:\greengrass\v2\logs\variant.TensorFlowLite.log
```

------

**檢視此元件的日誌**
+ 在核心裝置上執行下列命令，以即時檢視此元件的日誌檔案。將 `/greengrass/v2`或 *C：\$1greengrass\$1v2* 取代為 AWS IoT Greengrass 根資料夾的路徑。

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

  ```
  sudo tail -f /greengrass/v2/logs/variant.TensorFlowLite.log
  ```

------
#### [ Windows (PowerShell) ]

  ```
  Get-Content C:\greengrass\v2\logs\variant.TensorFlowLite.log -Tail 10 -Wait
  ```

------

## 變更記錄
<a name="tensorflow-lite-component-changelog"></a>

下表說明每個版本元件的變更。


|  版本  |  變更  | 
| --- | --- | 
|  2.5.15  |  針對 Greengrass 核 2.12.5 版更新版本。  | 
|  2.5.14  | 針對 Greengrass nucleus 2.12.0 版更新版本。 | 
|  2.5.13  | 針對 Greengrass nucleus 2.11.0 版更新版本。 | 
|  2.5.12  | 針對 Greengrass nucleus 2.10.0 版更新版本。 | 
|  2.5.11  | 針對 Greengrass nucleus 2.9.0 版更新版本。 | 
|  2.5.10  | 針對 Greengrass nucleus 2.8.0 版更新版本。 | 
|  2.5.9  |  針對 Greengrass nucleus 2.7.0 版更新版本。  | 
|  2.5.8  |  針對 Greengrass nucleus 2.6.0 版更新版本。  | 
|  2.5.7  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/tensorflow-lite-component.html)  | 
|  2.5.6  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/tensorflow-lite-component.html)  | 
|  2.5.5  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/tensorflow-lite-component.html)  | 
|  2.5.4  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/tensorflow-lite-component.html)  | 
|  2.5.3  |  針對 Greengrass nucleus 2.4.0 版更新版本。  | 
|  2.5.2  |  針對 Greengrass nucleus 2.3.0 版更新版本。  | 
|  2.5.1  |  針對 Greengrass nucleus 2.2.0 版更新版本。  | 
|  2.5.0  |  初始版本。  | 

# Modbus-RTU 通訊協定轉接器
<a name="modbus-rtu-protocol-adapter-component"></a>

Modbus-RTU 通訊協定轉接器元件 (`aws.greengrass.Modbus`) 會從本機 Modbus RTU 裝置輪詢資訊。

若要向具有此元件的本機 Modbus RTU 裝置請求資訊，請將訊息發佈至此元件訂閱的主題。在訊息中，指定要傳送至裝置的 Modbus RTU 請求。然後，此元件會發佈包含 Modbus RTU 請求結果的回應。

**注意**  
此元件提供與 Modbus RTU 通訊協定轉接器連接器 in AWS IoT Greengrass V1 類似的功能。如需詳細資訊，請參閱《*AWS IoT Greengrass V1 開發人員指南*》中的 [Modbus RTU 通訊協定轉接器連接器](https://docs.aws.amazon.com/greengrass/latest/developerguide/modbus-protocol-adapter-connector.html)。

**Topics**
+ [版本](#modbus-rtu-protocol-adapter-component-versions)
+ [類型](#modbus-rtu-protocol-adapter-component-type)
+ [作業系統](#modbus-rtu-protocol-adapter-component-os-support)
+ [要求](#modbus-rtu-protocol-adapter-component-requirements)
+ [相依性](#modbus-rtu-protocol-adapter-component-dependencies)
+ [Configuration](#modbus-rtu-protocol-adapter-component-configuration)
+ [輸入資料](#modbus-rtu-protocol-adapter-component-input-data)
+ [輸出資料](#modbus-rtu-protocol-adapter-component-output-data)
+ [Modbus RTU 請求和回應](#modbus-rtu-protocol-adapter-component-requests-responses)
+ [本機日誌檔案](#modbus-rtu-protocol-adapter-component-log-file)
+ [授權](#modbus-rtu-protocol-adapter-component-licenses)
+ [變更記錄](#modbus-rtu-protocol-adapter-component-changelog)

## 版本
<a name="modbus-rtu-protocol-adapter-component-versions"></a>

此元件具有下列版本：
+ 2.1.x
+ 2.0.x

## 類型
<a name="modbus-rtu-protocol-adapter-component-type"></a>

<a name="public-component-type-lambda"></a>此<a name="public-component-type-lambda-phrase"></a>元件是 Lambda 元件 (`aws.greengrass.lambda`)。[Greengrass 核](greengrass-nucleus-component.md)會使用 Lambda [啟動器元件執行此元件的 Lambda](lambda-launcher-component.md) 函數。

<a name="public-component-type-more-information"></a>如需詳細資訊，請參閱[元件類型](develop-greengrass-components.md#component-types)。

## 作業系統
<a name="modbus-rtu-protocol-adapter-component-os-support"></a>

此元件只能在 Linux 核心裝置上安裝。

## 要求
<a name="modbus-rtu-protocol-adapter-component-requirements"></a>

此元件有下列需求：
+ <a name="core-device-lambda-function-requirements"></a>您的核心裝置必須符合執行 Lambda 函數的要求。如果您希望核心裝置執行容器化 Lambda 函數，則裝置必須符合執行此作業的要求。如需詳細資訊，請參閱[Lambda 函數需求](setting-up.md#greengrass-v2-lambda-requirements)。
+ <a name="public-component-python3-requirement"></a>安裝在核心裝置上並新增至 PATH 環境變數的 [Python](https://www.python.org/) 3.7 版。
+  AWS IoT Greengrass 核心裝置與 Modbus 裝置之間的實體連線。核心裝置必須透過序列連接埠實際連接到 Modbus RTU 網路，例如 USB 連接埠。
+ <a name="connector-component-legacy-subscription-router-dependency"></a>若要從此元件接收輸出資料，您必須在部署此元件時合併[舊版訂閱路由器元件](legacy-subscription-router-component.md) (`aws.greengrass.LegacySubscriptionRouter`) 的下列組態更新。此組態會指定此元件發佈回應的主題。

------
#### [ Legacy subscription router v2.1.x ]

  ```
  {
    "subscriptions": {
      "aws-greengrass-modbus": {
        "id": "aws-greengrass-modbus",
        "source": "component:aws.greengrass.Modbus",
        "subject": "modbus/adapter/response",
        "target": "cloud"
      }
    }
  }
  ```

------
#### [ Legacy subscription router v2.0.x ]

  ```
  {
    "subscriptions": {
      "aws-greengrass-modbus": {
        "id": "aws-greengrass-modbus",
        "source": "arn:aws:lambda:region:aws:function:aws-greengrass-modbus:version",
        "subject": "modbus/adapter/response",
        "target": "cloud"
      }
    }
  }
  ```<a name="connector-component-legacy-subscription-router-dependency-replace"></a>
  + 以您使用 AWS 區域 的 取代*區域*。
  + ** 以此元件執行的 Lambda 函數版本取代 版本。若要尋找 Lambda 函數版本，您必須檢視要部署之此元件版本的配方。在 [AWS IoT Greengrass 主控台](https://console.aws.amazon.com//greengrass)中開啟此元件的詳細資訊頁面，並尋找 **Lambda 函數**鍵/值對。此鍵/值對包含 Lambda 函數的名稱和版本。

**重要**  <a name="connector-component-legacy-subscription-router-dependency-note"></a>
每次部署此元件時，都必須更新舊版訂閱路由器上的 Lambda 函數版本。這可確保針對您部署的元件版本使用正確的 Lambda 函數版本。

------

  <a name="connector-component-create-deployments"></a>如需詳細資訊，請參閱[建立部署](create-deployments.md)。
+ 支援 Modbus-RTU 通訊協定轉接器在 VPC 中執行。

## 相依性
<a name="modbus-rtu-protocol-adapter-component-dependencies"></a>

當您部署元件時， AWS IoT Greengrass 也會部署其相依性的相容版本。這表示您必須符合元件及其所有相依性的要求，才能成功部署元件。本節列出此元件[發行版本的](#modbus-rtu-protocol-adapter-component-changelog)相依性，以及為每個相依性定義元件版本的語意版本限制。您也可以在 [AWS IoT Greengrass 主控台](https://console.aws.amazon.com//greengrass)中檢視每個版本元件的相依性。在元件詳細資訊頁面上，尋找**相依性**清單。

------
#### [ 2.1.11 ]

下表列出此元件 2.1.11 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.16.0  | 硬式 | 
| [Lambda 啟動器](lambda-launcher-component.md) | ^2.0.0  | 硬式 | 
| [Lambda 執行階段](lambda-runtimes-component.md) | ^2.0.0  | 軟式 | 
| [權杖交換服務](token-exchange-service-component.md) | ^2.0.0  | 硬式 | 

------
#### [ 2.1.10 ]

下表列出此元件 2.1.10 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.15.0  | 硬式 | 
| [Lambda 啟動器](lambda-launcher-component.md) | ^2.0.0  | 硬式 | 
| [Lambda 執行階段](lambda-runtimes-component.md) | ^2.0.0  | 軟式 | 
| [字符交換服務](token-exchange-service-component.md) | ^2.0.0  | 硬式 | 

------
#### [ 2.1.9 ]

下表列出此元件 2.1.9 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.14.0  | 硬式 | 
| [Lambda 啟動器](lambda-launcher-component.md) | ^2.0.0  | 硬式 | 
| [Lambda 執行階段](lambda-runtimes-component.md) | ^2.0.0  | 軟式 | 
| [權杖交換服務](token-exchange-service-component.md) | ^2.0.0  | 硬式 | 

------
#### [ 2.1.8 ]

下表列出此元件 2.1.8 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.13.0  | 硬式 | 
| [Lambda 啟動器](lambda-launcher-component.md) | ^2.0.0  | 硬式 | 
| [Lambda 執行階段](lambda-runtimes-component.md) | ^2.0.0  | 軟式 | 
| [權杖交換服務](token-exchange-service-component.md) | ^2.0.0  | 硬式 | 

------
#### [ 2.1.7 ]

下表列出此元件 2.1.7 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.12.0  | 硬式 | 
| [Lambda 啟動器](lambda-launcher-component.md) | ^2.0.0  | 硬式 | 
| [Lambda 執行階段](lambda-runtimes-component.md) | ^2.0.0  | 軟式 | 
| [權杖交換服務](token-exchange-service-component.md) | ^2.0.0  | 硬式 | 

------
#### [ 2.1.6 ]

下表列出此元件 2.1.6 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.11.0  | 硬式 | 
| [Lambda 啟動器](lambda-launcher-component.md) | ^2.0.0  | 硬式 | 
| [Lambda 執行階段](lambda-runtimes-component.md) | ^2.0.0  | 軟式 | 
| [權杖交換服務](token-exchange-service-component.md) | ^2.0.0  | 硬式 | 

------
#### [ 2.1.4 and 2.1.5 ]

下表列出此元件 2.1.4 和 2.1.5 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.10.0  | 硬式 | 
| [Lambda 啟動器](lambda-launcher-component.md) | ^2.0.0  | 硬式 | 
| [Lambda 執行階段](lambda-runtimes-component.md) | ^2.0.0  | 軟式 | 
| [權杖交換服務](token-exchange-service-component.md) | ^2.0.0  | 硬式 | 

------
#### [ 2.1.3 ]

下表列出此元件 2.1.3 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.9.0  | 硬式 | 
| [Lambda 啟動器](lambda-launcher-component.md) | ^2.0.0  | 硬式 | 
| [Lambda 執行階段](lambda-runtimes-component.md) | ^2.0.0  | 軟式 | 
| [字符交換服務](token-exchange-service-component.md) | ^2.0.0  | 硬式 | 

------
#### [ 2.1.2 ]

下表列出此元件 2.1.2 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.8.0  | 硬式 | 
| [Lambda 啟動器](lambda-launcher-component.md) | ^2.0.0  | 硬式 | 
| [Lambda 執行階段](lambda-runtimes-component.md) | ^2.0.0  | 軟式 | 
| [權杖交換服務](token-exchange-service-component.md) | ^2.0.0  | 硬式 | 

------
#### [ 2.1.1 ]

下表列出此元件 2.1.1 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.7.0  | 硬式 | 
| [Lambda 啟動器](lambda-launcher-component.md) | ^2.0.0  | 硬式 | 
| [Lambda 執行階段](lambda-runtimes-component.md) | ^2.0.0  | 軟式 | 
| [權杖交換服務](token-exchange-service-component.md) | ^2.0.0  | 硬式 | 

------
#### [ 2.0.8 and 2.1.0 ]

下表列出此元件 2.0.8 和 2.1.0 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.6.0  | 硬式 | 
| [Lambda 啟動器](lambda-launcher-component.md) | ^2.0.0  | 硬式 | 
| [Lambda 執行階段](lambda-runtimes-component.md) | ^2.0.0  | 軟式 | 
| [字符交換服務](token-exchange-service-component.md) | ^2.0.0  | 硬式 | 

------
#### [ 2.0.7 ]

下表列出此元件 2.0.7 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.5.0  | 硬式 | 
| [Lambda 啟動器](lambda-launcher-component.md) | ^2.0.0  | 硬式 | 
| [Lambda 執行階段](lambda-runtimes-component.md) | ^2.0.0  | 軟式 | 
| [字符交換服務](token-exchange-service-component.md) | ^2.0.0  | 硬式 | 

------
#### [ 2.0.6 ]

下表列出此元件 2.0.6 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.4.0  | 硬式 | 
| [Lambda 啟動器](lambda-launcher-component.md) | ^2.0.0  | 硬式 | 
| [Lambda 執行階段](lambda-runtimes-component.md) | ^2.0.0  | 軟式 | 
| [字符交換服務](token-exchange-service-component.md) | ^2.0.0  | 硬式 | 

------
#### [ 2.0.5 ]

下表列出此元件 2.0.5 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.3.0  | 硬式 | 
| [Lambda 啟動器](lambda-launcher-component.md) | ^2.0.0  | 硬式 | 
| [Lambda 執行階段](lambda-runtimes-component.md) | ^2.0.0  | 軟式 | 
| [字符交換服務](token-exchange-service-component.md) | ^2.0.0  | 硬式 | 

------
#### [ 2.0.4 ]

下表列出此元件 2.0.4 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.2.0  | 硬式 | 
| [Lambda 啟動器](lambda-launcher-component.md) | ^2.0.0  | 硬式 | 
| [Lambda 執行階段](lambda-runtimes-component.md) | ^2.0.0  | 軟式 | 
| [字符交換服務](token-exchange-service-component.md) | ^2.0.0  | 硬式 | 

------
#### [ 2.0.3 ]

下表列出此元件 2.0.3 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.3 <2.1.0  | 硬式 | 
| [Lambda 啟動器](lambda-launcher-component.md) | >=1.0.0  | 硬式 | 
| [Lambda 執行階段](lambda-runtimes-component.md) | >=1.0.0  | 軟式 | 
| [字符交換服務](token-exchange-service-component.md) | >=1.0.0  | 硬式 | 

------

如需元件相依性的詳細資訊，請參閱[元件配方參考](component-recipe-reference.md#recipe-reference-component-dependencies)。

## Configuration
<a name="modbus-rtu-protocol-adapter-component-configuration"></a>

此元件提供下列組態參數，您可以在部署元件時自訂這些參數。

**注意**  <a name="connector-component-lambda-parameters"></a>
此元件的預設組態包含 Lambda 函數參數。建議您只編輯下列參數，以在裝置上設定此元件。

------
#### [ v2.1.x ]

`lambdaParams`  
包含此元件 Lambda 函數參數的物件。此物件包含下列資訊：    
`EnvironmentVariables`  
包含 Lambda 函數參數的物件。此物件包含下列資訊：    
`ModbusLocalPort`  <a name="modbus-rtu-protocol-adapter-configuration-modbuslocalport"></a>
核心裝置上實體 Modbus 序列連接埠的絕對路徑，例如 `/dev/ttyS2`。  
若要在容器中執行此元件，您必須將此路徑定義為元件可存取的系統裝置 （在 中`containerParams.devices`)。根據預設，此元件會在容器中執行。  
此元件必須具有裝置的讀取/寫入存取權。  
`ModbusBaudRate`  
（選用） 字串值，指定與本機 Modbus TCP 裝置進行序列通訊的傳輸速率。  
預設：`9600`  
`ModbusByteSize`  
（選用） 字串值，指定與本機 Modbus TCP 裝置進行序列通訊的位元組大小。選擇 `5`、`7`、 `6`或 `8` 位元。  
預設：`8`  
`ModbusParity`  
（選用） 用於驗證與本機 Modbus TCP 裝置進行序列通訊之資料完整性的同位模式。  
+ `E` – 以同位驗證資料完整性。
+ `O` – 使用奇數同位驗證資料完整性。
+ `N` – 請勿驗證資料完整性。
預設：`N`  
`ModbusStopBits`  
（選用） 字串值，指定表示與本機 Modbus TCP 裝置序列通訊中位元組結束的位元數。  
預設：`1`

`containerMode`  <a name="modbus-rtu-protocol-adapter-configuration-containermode"></a>
（選用） 此元件的容器化模式。您可以從以下選項中選擇：  
+ `GreengrassContainer` – 元件會在 AWS IoT Greengrass 容器內的隔離執行時間環境中執行。

  如果您指定此選項，則必須指定系統裝置 （在 中`containerParams.devices`)，讓容器存取 Modbus 裝置。
+ `NoContainer` – 元件不會在隔離的執行時間環境中執行。
預設：`GreengrassContainer`

`containerParams`  <a name="modbus-rtu-protocol-adapter-configuration-containerparams"></a>
<a name="connector-component-container-params-description"></a>（選用） 包含此元件容器參數的物件。如果您`GreengrassContainer`為 指定 ，元件會使用這些參數`containerMode`。  
此物件包含下列資訊：    
`memorySize`  
<a name="connector-component-container-params-memory-size-description"></a>（選用） 要配置給元件的記憶體量 （以 KB 為單位）。  
預設為 512 MB (525，312 KB)。  
`devices`  
（選用） 物件，指定元件可在容器中存取的系統裝置。  
若要在容器中執行此元件，您必須指定您在`ModbusLocalPort`環境變數中設定的系統裝置。
此物件包含下列資訊：    
`0` – 這是做為字串的陣列索引。  
包含下列資訊的物件：    
`path`  
核心裝置上系統裝置的路徑。這必須與您為 設定的值具有相同的值`ModbusLocalPort`。  
`permission`  
（選用） 從容器存取系統裝置的許可。此值必須是 `rw`，指定元件具有系統裝置的讀取/寫入存取權。  
預設：`rw`  
`addGroupOwner`  
（選用） 是否新增執行元件的系統群組做為系統裝置的擁有者。  
預設：`true`

`pubsubTopics`  <a name="connector-component-pubsub-topics-parameter"></a>
（選用） 物件，其中包含元件訂閱接收訊息的主題。您可以指定每個主題，以及元件是從 訂閱 MQTT 主題 AWS IoT Core 或本機發佈/訂閱主題。  
此物件包含下列資訊：    
`0` – 這是做為字串的陣列索引。  
包含下列資訊的物件：    
`type`  
（選用） 此元件用來訂閱訊息的發佈/訂閱訊息類型。您可以從以下選項中選擇：  
+ `PUB_SUB` - 訂閱本機發佈/訂閱訊息。如果您選擇此選項，主題不能包含 MQTT 萬用字元。如需在指定此選項時如何從自訂元件傳送訊息的詳細資訊，請參閱 [發佈/訂閱本機訊息](ipc-publish-subscribe.md)。
+ `IOT_CORE` – 訂閱 AWS IoT Core MQTT 訊息。如果您選擇此選項，主題可以包含 MQTT 萬用字元。如需在指定此選項時如何從自訂元件傳送訊息的詳細資訊，請參閱 [發佈/訂閱 AWS IoT Core MQTT 訊息](ipc-iot-core-mqtt.md)。
預設：`PUB_SUB`  
`topic`  
（選用） 元件訂閱接收訊息的主題。如果您`IotCore`為 指定 `type`，則可以在本主題中使用 MQTT 萬用字元 (`+` 和 `#`)。

**Example 範例：組態合併更新 （容器模式）**  <a name="modbus-rtu-protocol-adapter-configuration-example-container-mode"></a>

```
{
  "lambdaExecutionParameters": {
    "EnvironmentVariables": {
      "ModbusLocalPort": "/dev/ttyS2"
    }
  },
  "containerMode": "GreengrassContainer",
  "containerParams": {
    "devices": {
      "0": {
        "path": "/dev/ttyS2",
        "permission": "rw",
        "addGroupOwner": true
      }
    }
  }
}
```

**Example 範例：組態合併更新 （無容器模式）**  <a name="modbus-rtu-protocol-adapter-configuration-example-no-container-mode"></a>

```
{
  "lambdaExecutionParameters": {
    "EnvironmentVariables": {
      "ModbusLocalPort": "/dev/ttyS2"
    }
  },
  "containerMode": "NoContainer"
}
```

------
#### [ v2.0.x ]

`lambdaParams`  
包含此元件 Lambda 函數參數的物件。此物件包含下列資訊：    
`EnvironmentVariables`  
包含 Lambda 函數參數的物件。此物件包含下列資訊：    
`ModbusLocalPort`  <a name="modbus-rtu-protocol-adapter-configuration-modbuslocalport"></a>
核心裝置上實體 Modbus 序列連接埠的絕對路徑，例如 `/dev/ttyS2`。  
若要在容器中執行此元件，您必須將此路徑定義為元件可存取的系統裝置 （在 中`containerParams.devices`)。根據預設，此元件會在容器中執行。  
此元件必須具有裝置的讀取/寫入存取權。

`containerMode`  <a name="modbus-rtu-protocol-adapter-configuration-containermode"></a>
（選用） 此元件的容器化模式。您可以從以下選項中選擇：  
+ `GreengrassContainer` – 元件會在 AWS IoT Greengrass 容器內的隔離執行時間環境中執行。

  如果您指定此選項，則必須指定系統裝置 （在 中`containerParams.devices`)，讓容器存取 Modbus 裝置。
+ `NoContainer` – 元件不會在隔離的執行時間環境中執行。
預設：`GreengrassContainer`

`containerParams`  <a name="modbus-rtu-protocol-adapter-configuration-containerparams"></a>
<a name="connector-component-container-params-description"></a>（選用） 包含此元件容器參數的物件。如果您`GreengrassContainer`為 指定 ，元件會使用這些參數`containerMode`。  
此物件包含下列資訊：    
`memorySize`  
<a name="connector-component-container-params-memory-size-description"></a>（選用） 要配置給元件的記憶體量 （以 KB 為單位）。  
預設為 512 MB (525，312 KB)。  
`devices`  
（選用） 物件，指定元件可在容器中存取的系統裝置。  
若要在容器中執行此元件，您必須指定您在`ModbusLocalPort`環境變數中設定的系統裝置。
此物件包含下列資訊：    
`0` – 這是做為字串的陣列索引。  
包含下列資訊的物件：    
`path`  
核心裝置上系統裝置的路徑。這必須與您為 設定的值具有相同的值`ModbusLocalPort`。  
`permission`  
（選用） 從容器存取系統裝置的許可。此值必須是 `rw`，指定元件具有系統裝置的讀取/寫入存取權。  
預設：`rw`  
`addGroupOwner`  
（選用） 是否新增執行元件的系統群組做為系統裝置的擁有者。  
預設：`true`

`pubsubTopics`  <a name="connector-component-pubsub-topics-parameter"></a>
（選用） 物件，其中包含元件訂閱接收訊息的主題。您可以指定每個主題，以及元件是從 訂閱 MQTT 主題 AWS IoT Core 或本機發佈/訂閱主題。  
此物件包含下列資訊：    
`0` – 這是做為字串的陣列索引。  
包含下列資訊的物件：    
`type`  
（選用） 此元件用來訂閱訊息的發佈/訂閱訊息類型。您可以從以下選項中選擇：  
+ `PUB_SUB` - 訂閱本機發佈/訂閱訊息。如果您選擇此選項，主題不能包含 MQTT 萬用字元。如需在指定此選項時如何從自訂元件傳送訊息的詳細資訊，請參閱 [發佈/訂閱本機訊息](ipc-publish-subscribe.md)。
+ `IOT_CORE` – 訂閱 AWS IoT Core MQTT 訊息。如果您選擇此選項，主題可以包含 MQTT 萬用字元。如需在指定此選項時如何從自訂元件傳送訊息的詳細資訊，請參閱 [發佈/訂閱 AWS IoT Core MQTT 訊息](ipc-iot-core-mqtt.md)。
預設：`PUB_SUB`  
`topic`  
（選用） 元件訂閱接收訊息的主題。如果您`IotCore`為 指定 `type`，則可以在本主題中使用 MQTT 萬用字元 (`+` 和 `#`)。

**Example 範例：組態合併更新 （容器模式）**  <a name="modbus-rtu-protocol-adapter-configuration-example-container-mode"></a>

```
{
  "lambdaExecutionParameters": {
    "EnvironmentVariables": {
      "ModbusLocalPort": "/dev/ttyS2"
    }
  },
  "containerMode": "GreengrassContainer",
  "containerParams": {
    "devices": {
      "0": {
        "path": "/dev/ttyS2",
        "permission": "rw",
        "addGroupOwner": true
      }
    }
  }
}
```

**Example 範例：組態合併更新 （無容器模式）**  <a name="modbus-rtu-protocol-adapter-configuration-example-no-container-mode"></a>

```
{
  "lambdaExecutionParameters": {
    "EnvironmentVariables": {
      "ModbusLocalPort": "/dev/ttyS2"
    }
  },
  "containerMode": "NoContainer"
}
```

------

## 輸入資料
<a name="modbus-rtu-protocol-adapter-component-input-data"></a>

此元件接受下列主題的 Modbus RTU 請求參數，並將 Modbus RTU 請求傳送至裝置。<a name="connector-component-local-publish"></a>根據預設，此元件會訂閱本機發佈/訂閱訊息。如需如何從自訂元件發佈訊息至此元件的詳細資訊，請參閱 [發佈/訂閱本機訊息](ipc-publish-subscribe.md)。

**預設主題 （本機發佈/訂閱）：** `modbus/adapter/request`

<a name="connector-component-input-properties"></a>訊息接受下列屬性。輸入訊息必須是 JSON 格式。

`request`  
要傳送之 Modbus RTU 請求的參數。  
請求訊息的形狀取決於其代表的 Modbus RTU 請求類型。所有請求都需要下列屬性。  
類型：`object`包含下列資訊：    
`operation`  
要執行的操作名稱。例如，指定 `ReadCoilsRequest` 讀取 Modbus RTU 裝置上的線圈。如需支援操作的詳細資訊，請參閱 [Modbus RTU 請求和回應](#modbus-rtu-protocol-adapter-component-requests-responses)。  
類型：`string`  
`device`  
請求的目標裝置。  
此值必須是介於 `0`和 之間的整數`247`。  
類型：`integer`
要包含在請求中的其他參數取決於操作。此元件會處理[循環備援檢查 (CRC)](https://en.wikipedia.org/wiki/Cyclic_redundancy_check)，以驗證資料請求。  
如果您請求包含 `address` 屬性，則必須將其值指定為整數。例如 `"address": 1`。

`id`  <a name="connector-component-input-property-id"></a>
請求的任意 ID。使用此屬性將輸入請求映射至輸出回應。當您指定此屬性時，元件會將回應物件中的 `id` 屬性設定為此值。  
類型：`string`

**Example 範例輸入：讀取線圈請求**  

```
{
  "request": {
    "operation": "ReadCoilsRequest",
    "device": 1,
    "address": 1,
    "count": 1
  },
  "id": "MyRequest"
}
```

## 輸出資料
<a name="modbus-rtu-protocol-adapter-component-output-data"></a>

 <a name="connector-component-output-data"></a>此元件預設會將回應發佈為下列 MQTT 主題的輸出資料。您必須將此主題指定為[舊版訂閱路由器元件](legacy-subscription-router-component.md)組態`subject`中的 。如需如何在自訂元件中訂閱此主題訊息的詳細資訊，請參閱 [發佈/訂閱 AWS IoT Core MQTT 訊息](ipc-iot-core-mqtt.md)。

**預設主題 (AWS IoT Core MQTT)：** `modbus/adapter/response`

回應訊息的形狀取決於請求操作和回應狀態。如需範例，請參閱 [範例請求和回應](#modbus-rtu-protocol-adapter-component-examples)。

每個回應含有以下屬性：

`response`  
Modbus RTU 裝置的回應。  
類型：`object`包含下列資訊：    
`status`  
請求的狀態。狀態可以是下列其中一個值：  
+ `Success` – 請求有效，元件將請求傳送到 Modbus RTU 網路，而 Modbus RTU 網路傳回回應。
+ `Exception` – 請求有效，元件將請求傳送至 Modbus RTU 網路，而 Modbus RTU 網路傳回例外狀況。如需詳細資訊，請參閱[回應狀態：例外](#modbus-rtu-protocol-adapter-component-response-exception)。
+ `No Response` – 請求無效，元件在將請求傳送到 Modbus RTU 網路之前攔截到錯誤。如需詳細資訊，請參閱[回應狀態：沒有回應](#modbus-rtu-protocol-adapter-component-response-noresponse)。  
`operation`  
元件請求的操作。  
`device`  
元件傳送請求的裝置。  
`payload`  
Modbus RTU 裝置的回應。如果 `status`是 `No Response`，則此物件僅包含描述錯誤的 `error` 屬性 （例如 `[Input/Output] No Response received from the remote unit`)。

`id`  
請求的 ID，您可以用來識別哪些回應對應到哪個請求。

**注意**  
寫入操作的回應只是請求的回響。雖然寫入回應不包含有意義的資訊，但最好檢查回應的狀態，以查看請求是否成功。

**Example 範例輸出：成功**  

```
{
  "response" : {
    "status" : "success",
    "device": 1,
    "operation": "ReadCoilsRequest",
    "payload": {
      "function_code": 1,
      "bits": [1]
    }
  },
  "id" : "MyRequest"
}
```

**Example 範例輸出：失敗**  

```
{
  "response" : {
    "status" : "fail",
    "error_message": "Internal Error",
    "error": "Exception",
    "device": 1,
    "operation": "ReadCoilsRequest",
    "payload": {
      "function_code": 129,
      "exception_code": 2
    }
  },
  "id" : "MyRequest"
}
```

如需更多範例，請參閱[範例請求和回應](#modbus-rtu-protocol-adapter-component-examples)。

## Modbus RTU 請求和回應
<a name="modbus-rtu-protocol-adapter-component-requests-responses"></a>

此連接器接受 Modbus RTU 請求參數做為[輸入資料](#modbus-rtu-protocol-adapter-component-input-data)，並發佈回應做為[輸出資料](#modbus-rtu-protocol-adapter-component-output-data)。

以下是支援的常見操作。


| 請求中的作業名稱 | 回應中的函數代碼 | 
| --- | --- | 
| ReadCoilsRequest | 01 | 
| ReadDiscreteInputsRequest | 02 | 
| ReadHoldingRegistersRequest | 03 | 
| ReadInputRegistersRequest | 04 | 
| WriteSingleCoilRequest | 05 | 
| WriteSingleRegisterRequest | 06 | 
| WriteMultipleCoilsRequest | 15 | 
| WriteMultipleRegistersRequest | 16 | 
| MaskWriteRegisterRequest | 22 | 
| ReadWriteMultipleRegistersRequest | 23 | 

### 範例請求和回應
<a name="modbus-rtu-protocol-adapter-component-examples"></a>

以下是受支援操作的範例請求和回應。

讀取線圈  
**請求範例：**  

```
{
  "request": {
    "operation": "ReadCoilsRequest",
    "device": 1,
    "address": 1,
    "count": 1
  },
  "id": "TestRequest"
}
```
**回應範例：**  

```
{
  "response": {
    "status": "success",
    "device": 1,
    "operation": "ReadCoilsRequest",
    "payload": {
      "function_code": 1,
      "bits": [1]
    }
  },
  "id" : "TestRequest"
}
```

讀取離散輸入  
**請求範例：**  

```
{
  "request": {
    "operation": "ReadDiscreteInputsRequest",
    "device": 1,
    "address": 1,
    "count": 1
  },
  "id": "TestRequest"
}
```
**回應範例：**  

```
{
  "response": {
    "status": "success",
    "device": 1,
    "operation": "ReadDiscreteInputsRequest",
    "payload": {
      "function_code": 2,
      "bits": [1]
    }
  },
  "id" : "TestRequest"
}
```

讀取保留註冊  
**請求範例：**  

```
{
  "request": {
    "operation": "ReadHoldingRegistersRequest",
    "device": 1,
    "address": 1,
    "count": 1
  },
  "id": "TestRequest"
}
```
**回應範例：**  

```
{
  "response": {
    "status": "success",
    "device": 1,
    "operation": "ReadHoldingRegistersRequest",
    "payload": {
      "function_code": 3,
      "registers": [20,30]
    }
  },
  "id" : "TestRequest"
}
```

讀取輸入註冊  
**請求範例：**  

```
{
  "request": {
    "operation": "ReadInputRegistersRequest",
    "device": 1,
    "address": 1,
    "count": 1
  },
  "id": "TestRequest"
}
```

寫入單一線圈  
**請求範例：**  

```
{
  "request": {
    "operation": "WriteSingleCoilRequest",
    "device": 1,
    "address": 1,
    "value": 1
  },
  "id": "TestRequest"
}
```
**回應範例：**  

```
{
  "response": {
    "status": "success",
    "device": 1,
    "operation": "WriteSingleCoilRequest",
    "payload": {
      "function_code": 5,
      "address": 1,
      "value": true
    }
  },
  "id" : "TestRequest"
}
```

寫入單一登錄  
**請求範例：**  

```
{
  "request": {
    "operation": "WriteSingleRegisterRequest",
    "device": 1,
    "address": 1,
    "value": 1
  },
  "id": "TestRequest"
}
```

寫入多個線圈  
**請求範例：**  

```
{
  "request": {
    "operation": "WriteMultipleCoilsRequest",
    "device": 1,
    "address": 1,
    "values": [1,0,0,1]
  },
  "id": "TestRequest"
}
```
**回應範例：**  

```
{
  "response": {
    "status": "success",
    "device": 1,
    "operation": "WriteMultipleCoilsRequest",
    "payload": {
      "function_code": 15,
      "address": 1,
      "count": 4
    }
  },
  "id" : "TestRequest"
}
```

寫入多個登錄  
**請求範例：**  

```
{
  "request": {
    "operation": "WriteMultipleRegistersRequest",
    "device": 1,
    "address": 1,
    "values": [20,30,10]
  },
  "id": "TestRequest"
}
```
**回應範例：**  

```
{
  "response": {
    "status": "success",
    "device": 1,
    "operation": "WriteMultipleRegistersRequest",
    "payload": {
      "function_code": 23,
      "address": 1,
      "count": 3
    }
  },
  "id" : "TestRequest"
}
```

遮罩寫入註冊  
**請求範例：**  

```
{
  "request": {
    "operation": "MaskWriteRegisterRequest",
    "device": 1,
    "address": 1,
    "and_mask": 175,
    "or_mask": 1
  },
  "id": "TestRequest"
}
```
**回應範例：**  

```
{
  "response": {
    "status": "success",
    "device": 1,
    "operation": "MaskWriteRegisterRequest",
    "payload": {
      "function_code": 22,
      "and_mask": 0,
      "or_mask": 8
    }
  },
  "id" : "TestRequest"
}
```

讀取寫入多個登錄  
**請求範例：**  

```
{
  "request": {
    "operation": "ReadWriteMultipleRegistersRequest",
    "device": 1,
    "read_address": 1,
    "read_count": 2,
    "write_address": 3,
    "write_registers": [20,30,40]
  },
  "id": "TestRequest"
}
```
**回應範例：**  

```
{
  "response": {
    "status": "success",
    "device": 1,
    "operation": "ReadWriteMultipleRegistersRequest",
    "payload": {
      "function_code": 23,
      "registers": [10,20,10,20]
    }
  },
  "id" : "TestRequest"
}
```
回應包含元件讀取的註冊。

### 回應狀態：例外
<a name="modbus-rtu-protocol-adapter-component-response-exception"></a>

當請求格式有效但請求未順利完成時會發生例外。在此情況下，回應包含下列資訊：
+ `status` 設定為 `Exception`。
+ `function_code` 等於請求的函數碼 \$1 128。
+ `exception_code` 包含例外碼。如需詳細資訊，請參閱 Modbus 例外碼。

**範例**：

```
{
  "response": {
    "status": "fail",
    "error_message": "Internal Error",
    "error": "Exception",
    "device": 1,
    "operation": "ReadCoilsRequest",
    "payload": {
      "function_code": 129,
      "exception_code": 2
    }
  },
  "id": "TestRequest"
}
```

### 回應狀態：沒有回應
<a name="modbus-rtu-protocol-adapter-component-response-noresponse"></a>

此連接器會在 Modbus 請求上執行驗證檢查。例如，它檢查是否格式無效和遺漏欄位。如果驗證失敗，連接器不會傳送請求。而是傳回包含以下資訊的回應：
+ `status` 設定為 `No Response`。
+ `error` 包含錯誤原因。
+ `error_message` 包含錯誤訊息。

**範例**：

```
{
  "response": {
    "status": "fail",
    "error_message": "Invalid address field. Expected <type 'int'>, got <type 'str'>",
    "error": "No Response",
    "device": 1,
    "operation": "ReadCoilsRequest",
    "payload": {
      "error": "Invalid address field. Expected Expected <type 'int'>, got <type 'str'>"
    }
  },
  "id": "TestRequest"
}
```

如果請求的目標是不存在的裝置，或 Modbus RTU 網路沒有作用，您可能會收到 `ModbusIOException` (使用「沒有回應」格式)。

```
{
  "response": {
    "status": "fail",
    "error_message": "[Input/Output] No Response received from the remote unit",
    "error": "No Response",
    "device": 1,
    "operation": "ReadCoilsRequest",
    "payload": {
      "error": "[Input/Output] No Response received from the remote unit"
    }
  },
  "id": "TestRequest"
}
```

## 本機日誌檔案
<a name="modbus-rtu-protocol-adapter-component-log-file"></a>

此元件使用以下日誌檔案。

```
/greengrass/v2/logs/aws.greengrass.Modbus.log
```

**檢視此元件的日誌**
+ 在核心裝置上執行下列命令，以即時檢視此元件的日誌檔案。`/greengrass/v2` 將 取代為 AWS IoT Greengrass 根資料夾的路徑。

  ```
  sudo tail -f /greengrass/v2/logs/aws.greengrass.Modbus.log
  ```

## 授權
<a name="modbus-rtu-protocol-adapter-component-licenses"></a>

此元件包含下列第三方軟體/授權：
+ [pymodbus](https://github.com/riptideio/pymodbus/blob/master/README.rst)/BSD 授權
+ [pyserial](https://github.com/pyserial/pyserial)/BSD 授權

<a name="component-core-software-license"></a>此元件根據 [Greengrass 核心軟體授權合約](https://greengrass-release-license.s3.us-west-2.amazonaws.com/greengrass-license-v1.pdf)發行。

## 變更記錄
<a name="modbus-rtu-protocol-adapter-component-changelog"></a>

下表說明每個版本元件的變更。


|  **版本**  |  **變更**  | 
| --- | --- | 
|  2.1.11  | 針對 Greengrass nucleus 2.15.0 版更新版本。 | 
|  2.1.10  | 針對 Greengrass nucleus 2.14.0 版更新版本。 | 
|  2.1.9  | 針對 Greengrass nucleus 2.13.0 版更新版本。 | 
|  2.1.8  | 針對 Greengrass nucleus 2.12.0 版更新版本。 | 
|  2.1.7  | 針對 Greengrass nucleus 2.11.0 版更新版本。 | 
|  2.1.6  | 針對 Greengrass nucleus 2.10.0 版更新版本。 | 
|  2.1.5  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/modbus-rtu-protocol-adapter-component.html) | 
|  2.1.4  | 針對 Greengrass nucleus 2.9.0 版更新版本。 | 
|  2.1.3  | 針對 Greengrass nucleus 2.8.0 版更新版本。 | 
|  2.1.2  |  針對 Greengrass nucleus 2.7.0 版更新版本。  | 
|  2.1.1  |  針對 Greengrass nucleus 2.6.0 版更新版本。  | 
|  2.1.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/modbus-rtu-protocol-adapter-component.html)  | 
|  2.0.8  |  針對 Greengrass nucleus 2.5.0 版更新版本。  | 
|  2.0.7  |  針對 Greengrass nucleus 2.4.0 版更新版本。  | 
|  2.0.6  |  針對 Greengrass nucleus 2.3.0 版更新版本。  | 
|  2.0.5  |  針對 Greengrass nucleus 2.2.0 版更新版本。  | 
|  2.0.4  |  針對 Greengrass nucleus 2.1.0 版更新版本。  | 
|  2.0.3  |  初始版本。  | 

# MQTT 橋接器
<a name="mqtt-bridge-component"></a>

MQTT 橋接元件 (`aws.greengrass.clientdevices.mqtt.Bridge`) 會在用戶端裝置、本機 Greengrass 發佈/訂閱和 之間轉送 MQTT 訊息 AWS IoT Core。您可以使用此元件對自訂元件中用戶端裝置的 MQTT 訊息採取行動，並使用 同步用戶端裝置 AWS 雲端。

**注意**  <a name="client-device-component-context"></a>
用戶端裝置是連線至 Greengrass 核心裝置的本機 IoT 裝置，用於傳送 MQTT 訊息和要處理的資料。如需詳細資訊，請參閱[與本機 IoT 裝置互動](interact-with-local-iot-devices.md)。

您可以使用此元件在下列訊息代理程式之間轉送訊息：
+ Local MQTT – 本機 MQTT 代理程式會處理用戶端裝置和核心裝置之間的訊息。
+ 本機發佈/訂閱 – 本機 Greengrass 訊息代理程式會處理核心裝置上的元件之間的訊息。如需如何在 Greengrass 元件中與這些訊息互動的詳細資訊，請參閱 [發佈/訂閱本機訊息](ipc-publish-subscribe.md)。
+ AWS IoT Core – AWS IoT Core MQTT 中介裝置會處理 IoT 裝置和 AWS 雲端 目的地之間的訊息。如需如何在 Greengrass 元件中與這些訊息互動的詳細資訊，請參閱 [發佈/訂閱 AWS IoT Core MQTT 訊息](ipc-iot-core-mqtt.md)。
**注意**  <a name="mqtt-bridge-component-iotcore-qos-1-note"></a>
MQTT 橋接器使用 QoS 1 來發佈和訂閱 AWS IoT Core，即使用戶端裝置使用 QoS 0 來發佈和訂閱本機 MQTT 代理程式也一樣。因此，當您從本機 MQTT 代理程式上的用戶端裝置轉送 MQTT 訊息時，您可能會發現額外的延遲 AWS IoT Core。如需核心裝置上 MQTT 組態的詳細資訊，請參閱 [設定 MQTT 逾時和快取設定](configure-greengrass-core-v2.md#configure-mqtt)。

**Topics**
+ [版本](#mqtt-bridge-component-versions)
+ [類型](#mqtt-bridge-component-type)
+ [作業系統](#mqtt-bridge-component-os-support)
+ [要求](#mqtt-bridge-component-requirements)
+ [相依性](#mqtt-bridge-component-dependencies)
+ [Configuration](#mqtt-bridge-component-configuration)
+ [本機日誌檔案](#mqtt-bridge-component-log-file)
+ [變更記錄](#mqtt-bridge-component-changelog)

## 版本
<a name="mqtt-bridge-component-versions"></a>

此元件具有下列版本：
+ 2.3.x 版本
+ 2.2.x 版本
+ 2.1.x
+ 2.0.x

## 類型
<a name="mqtt-bridge-component-type"></a>

<a name="public-component-type-plugin-para1"></a>此元件是外掛程式元件 (`aws.greengrass.plugin`)。[Greengrass 核會在](greengrass-nucleus-component.md)與核相同的 Java 虛擬機器 (JVM) 中執行此元件。當您在核心裝置上變更此元件的版本時，核會重新啟動。

<a name="public-component-type-plugin-para2"></a>此元件使用與 Greengrass 核相同的日誌檔案。如需詳細資訊，請參閱[監控 AWS IoT Greengrass 日誌](monitor-logs.md)。

<a name="public-component-type-more-information"></a>如需詳細資訊，請參閱[元件類型](develop-greengrass-components.md#component-types)。

## 作業系統
<a name="mqtt-bridge-component-os-support"></a>

此元件可以安裝在執行下列作業系統的核心裝置上：
+ Linux
+ Windows

## 要求
<a name="mqtt-bridge-component-requirements"></a>

此元件有下列需求：
+ 如果您將核心裝置的 MQTT 代理程式元件設定為使用預設連接埠 8883 以外的連接埠，則必須使用 MQTT 橋接器 v2.1.0 或更新版本。將其設定為在代理程式操作所在的連接埠上連線。
+ MQTT 橋接器元件支援在 VPC 中執行。

## 相依性
<a name="mqtt-bridge-component-dependencies"></a>

當您部署元件時， AWS IoT Greengrass 也會部署其相依性的相容版本。這表示您必須符合元件及其所有相依性的要求，才能成功部署元件。本節列出此元件[發行版本的](#mqtt-bridge-component-changelog)相依性，以及為每個相依性定義元件版本的語意版本限制。您也可以在 [AWS IoT Greengrass 主控台](https://console.aws.amazon.com//greengrass)中檢視每個版本元件的相依性。在元件詳細資訊頁面上，尋找**相依性**清單。

------
#### [ 2.3.2 ]

下表列出此元件 2.3.2 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [用戶端裝置身分驗證](client-device-auth-component.md) | >=2.2.0 <2.6.0 | 硬式 | 

------
#### [ 2.3.0 and 2.3.1 ]

下表列出此元件 2.3.0 和 2.3.1 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [用戶端裝置身分驗證](client-device-auth-component.md) | >=2.2.0 <2.5.0 | 硬式 | 

------
#### [ 2.2.5 and 2.2.6 ]

下表列出此元件 2.2.5 和 2.2.6 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [用戶端裝置身分驗證](client-device-auth-component.md) | >=2.2.0 <2.5.0 | 硬式 | 

------
#### [ 2.2.3 and 2.2.4 ]

下表列出此元件 2.2.3 和 2.2.4 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [用戶端裝置身分驗證](client-device-auth-component.md) | >=2.2.0 <2.4.0 | 硬式 | 

------
#### [ 2.2.0 – 2.2.2 ]

下表列出此元件 2.2.0 至 2.2.2 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [用戶端裝置身分驗證](client-device-auth-component.md) | >=2.2.0 <2.3.0 | 硬式 | 

------
#### [ 2.1.1 ]

下表列出此元件 2.1.1 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [用戶端裝置身分驗證](client-device-auth-component.md) | >=2.0.0 <2.2.0 | 硬式 | 

------
#### [ 2.0.0 to 2.1.0 ]

下表列出此元件 2.0.0 到 2.1.0 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [用戶端裝置身分驗證](client-device-auth-component.md) | >=2.0.0 <2.1.0 | 硬式 | 

------

如需元件相依性的詳細資訊，請參閱[元件配方參考](component-recipe-reference.md#recipe-reference-component-dependencies)。

## Configuration
<a name="mqtt-bridge-component-configuration"></a>

此元件提供下列組態參數，您可以在部署元件時自訂這些參數。

------
#### [ 2.3.0 – 2.3.2 ]

`mqttTopicMapping`  
<a name="mqtt-bridge-component-configuration-mqtt-topic-mapping-description"></a>您要橋接的主題映射。此元件會訂閱來源主題的訊息，並將收到的訊息發佈至目的地主題。每個主題映射都會定義主題、來源類型和目的地類型。  
此物件包含下列資訊：    
`topicMappingNameKey`  
<a name="mqtt-bridge-component-configuration-mqtt-topic-mapping-name-key-description"></a>此主題映射的名稱。將 *topicMappingNameKey* 取代為可協助您識別此主題映射的名稱。  
此物件包含下列資訊：    
`topic`  
要橋接來源和目標代理程式的主題或主題篩選條件。  
您可以使用 `+`和 `#` MQTT 主題萬用字元，在所有符合主題篩選條件的主題上轉送訊息。如需詳細資訊，請參閱《 *AWS IoT Core 開發人員指南*》中的 [MQTT 主題](https://docs.aws.amazon.com/iot/latest/developerguide/topics.html)。  
若要搭配`Pubsub`來源代理程式使用 MQTT 主題萬用字元，您必須使用 [Greengrass 核元件](greengrass-nucleus-component.md)的 v2.6.0 或更新版本。  
`targetTopicPrefix`  
當此元件轉送訊息時，要新增至目標主題的字首。  
`source`  <a name="mqtt-bridge-component-configuration-mqtt-topic-mapping-source"></a>
來源訊息代理程式。您可以從以下選項中選擇：  <a name="mqtt-bridge-component-configuration-topic-types"></a>
+ `LocalMqtt` – 用戶端裝置通訊的本機 MQTT 代理程式。
+ `Pubsub` – 本機 Greengrass 發佈/訂閱訊息代理程式。
+ `IotCore` – AWS IoT Core MQTT 訊息代理程式。
**注意**  <a name="mqtt-bridge-component-iotcore-qos-1-note"></a>
MQTT 橋接器使用 QoS 1 來發佈和訂閱 AWS IoT Core，即使用戶端裝置使用 QoS 0 來發佈和訂閱本機 MQTT 代理程式也一樣。因此，當您從本機 MQTT 代理程式上的用戶端裝置轉送 MQTT 訊息時，您可能會發現額外的延遲 AWS IoT Core。如需核心裝置上 MQTT 組態的詳細資訊，請參閱 [設定 MQTT 逾時和快取設定](configure-greengrass-core-v2.md#configure-mqtt)。
`source` 和 `target` 必須不同。  
`target`  <a name="mqtt-bridge-component-configuration-mqtt-topic-mapping-target"></a>
目標訊息中介裝置。您可以從以下選項中選擇：  <a name="mqtt-bridge-component-configuration-topic-types"></a>
+ `LocalMqtt` – 用戶端裝置通訊的本機 MQTT 代理程式。
+ `Pubsub` – 本機 Greengrass 發佈/訂閱訊息代理程式。
+ `IotCore` – AWS IoT Core MQTT 訊息代理程式。
**注意**  <a name="mqtt-bridge-component-iotcore-qos-1-note"></a>
MQTT 橋接器使用 QoS 1 來發佈和訂閱 AWS IoT Core，即使用戶端裝置使用 QoS 0 來發佈和訂閱本機 MQTT 代理程式也一樣。因此，當您從本機 MQTT 代理程式上的用戶端裝置轉送 MQTT 訊息時，您可能會發現額外的延遲 AWS IoT Core。如需核心裝置上 MQTT 組態的詳細資訊，請參閱 [設定 MQTT 逾時和快取設定](configure-greengrass-core-v2.md#configure-mqtt)。
`source` 和 `target` 必須不同。

mqtt5RouteOptions  
（選用） 提供設定主題映射的選項，以將訊息從來源主題橋接至目的地主題。  
此物件包含下列資訊：    
*mqtt5RouteOptionsNameKey*  
主題映射的路由選項名稱。將 *mqtt5RouteOptionsNameKey* 取代為 `mqttTopicMapping` 欄位中定義的相符 *topicMappingNameKey*。  
此物件包含下列資訊：    
noLocal  
（選用） 啟用時，橋接器不會轉送橋接器本身發佈之主題的訊息。使用此選項來防止迴圈，如下所示：  

```
{
    "mqtt5RouteOptions": {
        "toIoTCore": {
            "noLocal": true
        }
    },
    "mqttTopicMapping": {
        "toIoTCore": {
            "topic": "device",
            "source": "LocalMqtt",
            "target": "IotCore"
        },
        "toLocal": {
            "topic": "device",
            "source": "IotCore",
            "target": "LocalMqtt"
        }
    }
}
```
`noLocal` 僅支援 `source`為 的路由`LocalMqtt`。  
預設：false  
retainAsPublished  
（選用） 啟用時，橋接器轉送的訊息具有與該路由發佈至代理程式的訊息相同的`retain`旗標。  
`retainAsPublished` 僅支援 `source`為 的路由`LocalMqtt`。  
預設：false

mqtt  
（選用） 用於與本機代理程式通訊的 MQTT 通訊協定設定。    
version  
（選用） 橋接器用來與本機代理程式通訊的 MQTT 通訊協定版本。必須與核心組態中選取的 MQTT 版本相同。  
請選擇下列項目：  
+ `mqtt3`
+ `mqtt5`
當`mqttTopicMapping`物件的 `source`或 `target` 欄位設定為 時，您必須部署 MQTT 代理程式`LocalMqtt`。如果您選擇 `mqtt5`選項，則必須使用 [MQTT 5 代理程式 (EMQX)](mqtt-broker-emqx-component.md)。  
預設：`mqtt3`  
ackTimeoutSeconds  
（選用） 在操作失敗之前等待 PUBACK、SUBACK 或 UNSUBACK 封包的時間間隔。  
預設：60  
connAckTimeoutMs  
（選用） 關閉連線之前等待 CONNACK 封包的時間間隔。  
預設：20000 (20 秒）  
pingTimeoutMs  
（選用） 橋接器等待從本機代理程式接收 PINGACK 訊息的時間，以毫秒為單位。如果等待超過逾時，橋接會關閉，然後重新開啟 MQTT 連線。此值必須小於 `keepAliveTimeoutSeconds`。  
預設：30000 (30 秒）  
keepAliveTimeoutSeconds  
（選用） 橋接器為保持 MQTT 連線持續傳送的每個 PING 訊息之間的秒數。此值必須大於 `pingTimeoutMs`。  
預設：60  
maxReconnectDelayMs  
（選用） MQTT 重新連線的秒數上限。  
預設：30000 (30 秒）  
minReconnectDelayMs  
（選用） MQTT 重新連線的最短秒數。  
receiveMaximum  
（選用） 橋接器可以傳送的未確認 QoS1 封包數目上限。  
預設：100  
maximumPacketSize  
用戶端接受 MQTT 封包的最大位元組數。  
預設： null （無限制）  
sessionExpiryInterval  
（選用） 您可以請求工作階段在橋接器與本機代理程式之間持續的時間，以秒為單位。  
預設：4294967295 （工作階段永不過期）

`brokerUri`  <a name="mqtt-bridge-component-configuration-broker-uri"></a>
（選用） 本機 MQTT 代理程式的 URI。如果您將 MQTT 代理程式設定為使用與預設連接埠 8883 不同的連接埠，則必須指定此參數。使用下列格式，並將*連接埠*取代為 MQTT 中介裝置操作的連接埠：`ssl://localhost:port`。  
預設：`ssl://localhost:8883`

startupTimeoutSeconds  
（選用） 元件啟動的秒數上限。`BROKEN` 如果元件超過此逾時，元件的狀態會變更為 。  
預設：`120`

**Example 範例：組態合併更新**  <a name="mqtt-bridge-component-configuration-example-with-prefix"></a>
下列範例組態更新會指定下列項目：  
+ 在符合主題篩選條件`clients/+/hello/world`的主題 AWS IoT Core 上，將訊息從用戶端裝置轉送至 。
+ 將訊息從用戶端裝置轉送至本機發佈/訂閱符合`clients/+/detections`主題篩選條件的主題，並將`events/input/`字首新增至目標主題。產生的目標主題符合`events/input/clients/+/detections`主題篩選條件。
+ 在符合主題篩選條件`clients/+/status`的主題 AWS IoT Core 上，將訊息從用戶端裝置轉送至 ，並將`$aws/rules/StatusUpdateRule/`字首新增至目標主題。此範例會將這些訊息直接轉送至名為 的[AWS IoT 規則](https://docs.aws.amazon.com/iot/latest/developerguide/iot-rules.html)`StatusUpdateRule`，以使用[基本擷取](https://docs.aws.amazon.com/iot/latest/developerguide/iot-basic-ingest.html)降低成本。

```
{
  "mqttTopicMapping": {
    "ClientDeviceHelloWorld": {
      "topic": "clients/+/hello/world",
      "source": "LocalMqtt",
      "target": "IotCore"
    },
    "ClientDeviceEvents": {
      "topic": "clients/+/detections",
      "targetTopicPrefix": "events/input/",
      "source": "LocalMqtt",
      "target": "Pubsub"
    },
    "ClientDeviceCloudStatusUpdate": {
      "topic": "clients/+/status",
      "targetTopicPrefix": "$aws/rules/StatusUpdateRule/",
      "source": "LocalMqtt",
      "target": "IotCore"
    }
  }
}
```

**Example 範例：設定 MQTT 5**  
下列範例組態會更新下列項目：  
+ 讓橋接器搭配本機代理程式使用 MQTT 5 通訊協定。
+ 將 MQTT 保留設定為`ClientDeviceHelloWorld`主題映射的已發佈設定。

```
{
  "mqttTopicMapping": {
    "ClientDeviceHelloWorld": {
      "topic": "clients/+/hello/world",
      "source": "LocalMqtt",
      "target": "IotCore"
    }
  },
  "mqtt5RouteOptions": {
    "ClientDeviceHelloWorld": {
      "retainAsPublished": true
    }
  },
  "mqtt": {
    "version": "mqtt5"
  }
}
```

------
#### [ 2.2.6 ]

`mqttTopicMapping`  
<a name="mqtt-bridge-component-configuration-mqtt-topic-mapping-description"></a>您要橋接的主題映射。此元件會訂閱來源主題的訊息，並將收到的訊息發佈至目的地主題。每個主題映射都會定義主題、來源類型和目的地類型。  
此物件包含下列資訊：    
`topicMappingNameKey`  
<a name="mqtt-bridge-component-configuration-mqtt-topic-mapping-name-key-description"></a>此主題映射的名稱。將 *topicMappingNameKey* 取代為可協助您識別此主題映射的名稱。  
此物件包含下列資訊：    
`topic`  
要橋接來源和目標代理程式的主題或主題篩選條件。  
您可以使用 `+`和 `#` MQTT 主題萬用字元，在所有符合主題篩選條件的主題上轉送訊息。如需詳細資訊，請參閱《 *AWS IoT Core 開發人員指南*》中的 [MQTT 主題](https://docs.aws.amazon.com/iot/latest/developerguide/topics.html)。  
若要搭配`Pubsub`來源代理程式使用 MQTT 主題萬用字元，您必須使用 [Greengrass 核元件](greengrass-nucleus-component.md)的 v2.6.0 或更新版本。  
`targetTopicPrefix`  
當此元件轉送訊息時，要新增至目標主題的字首。  
`source`  <a name="mqtt-bridge-component-configuration-mqtt-topic-mapping-source"></a>
來源訊息代理程式。您可以從以下選項中選擇：  <a name="mqtt-bridge-component-configuration-topic-types"></a>
+ `LocalMqtt` – 用戶端裝置通訊的本機 MQTT 代理程式。
+ `Pubsub` – 本機 Greengrass 發佈/訂閱訊息代理程式。
+ `IotCore` – AWS IoT Core MQTT 訊息代理程式。
**注意**  <a name="mqtt-bridge-component-iotcore-qos-1-note"></a>
MQTT 橋接器使用 QoS 1 來發佈和訂閱 AWS IoT Core，即使用戶端裝置使用 QoS 0 來發佈和訂閱本機 MQTT 代理程式也一樣。因此，當您從本機 MQTT 代理程式上的用戶端裝置轉送 MQTT 訊息時，您可能會發現額外的延遲 AWS IoT Core。如需核心裝置上 MQTT 組態的詳細資訊，請參閱 [設定 MQTT 逾時和快取設定](configure-greengrass-core-v2.md#configure-mqtt)。
`source` 和 `target` 必須不同。  
`target`  <a name="mqtt-bridge-component-configuration-mqtt-topic-mapping-target"></a>
目標訊息中介裝置。您可以從以下選項中選擇：  <a name="mqtt-bridge-component-configuration-topic-types"></a>
+ `LocalMqtt` – 用戶端裝置通訊的本機 MQTT 代理程式。
+ `Pubsub` – 本機 Greengrass 發佈/訂閱訊息代理程式。
+ `IotCore` – AWS IoT Core MQTT 訊息代理程式。
**注意**  <a name="mqtt-bridge-component-iotcore-qos-1-note"></a>
MQTT 橋接器使用 QoS 1 來發佈和訂閱 AWS IoT Core，即使用戶端裝置使用 QoS 0 來發佈和訂閱本機 MQTT 代理程式也一樣。因此，當您從本機 MQTT 代理程式上的用戶端裝置轉送 MQTT 訊息時，您可能會發現額外的延遲 AWS IoT Core。如需核心裝置上 MQTT 組態的詳細資訊，請參閱 [設定 MQTT 逾時和快取設定](configure-greengrass-core-v2.md#configure-mqtt)。
`source` 和 `target` 必須不同。

`brokerUri`  <a name="mqtt-bridge-component-configuration-broker-uri"></a>
（選用） 本機 MQTT 代理程式的 URI。如果您將 MQTT 代理程式設定為使用與預設連接埠 8883 不同的連接埠，則必須指定此參數。使用下列格式，並將*連接埠*取代為 MQTT 中介裝置操作所在的連接埠：`ssl://localhost:port`。  
預設：`ssl://localhost:8883`

startupTimeoutSeconds  
（選用） 元件啟動的秒數上限。`BROKEN` 如果元件超過此逾時，元件的狀態會變更為 。  
預設：`120`

**Example 範例：組態合併更新**  <a name="mqtt-bridge-component-configuration-example-with-prefix"></a>
下列範例組態更新會指定下列項目：  
+ 在符合主題篩選條件`clients/+/hello/world`的主題 AWS IoT Core 上，將訊息從用戶端裝置轉送至 。
+ 在符合主題篩選條件`clients/+/detections`的主題上，將訊息從用戶端裝置轉送至本機發佈/訂閱，並將`events/input/`字首新增至目標主題。產生的目標主題符合`events/input/clients/+/detections`主題篩選條件。
+ 在符合主題篩選條件`clients/+/status`的主題 AWS IoT Core 上，將訊息從用戶端裝置轉送到 ，並將`$aws/rules/StatusUpdateRule/`字首新增至目標主題。此範例會將這些訊息直接轉送至名為 的[AWS IoT 規則](https://docs.aws.amazon.com/iot/latest/developerguide/iot-rules.html)`StatusUpdateRule`，以使用[基本擷取](https://docs.aws.amazon.com/iot/latest/developerguide/iot-basic-ingest.html)降低成本。

```
{
  "mqttTopicMapping": {
    "ClientDeviceHelloWorld": {
      "topic": "clients/+/hello/world",
      "source": "LocalMqtt",
      "target": "IotCore"
    },
    "ClientDeviceEvents": {
      "topic": "clients/+/detections",
      "targetTopicPrefix": "events/input/",
      "source": "LocalMqtt",
      "target": "Pubsub"
    },
    "ClientDeviceCloudStatusUpdate": {
      "topic": "clients/+/status",
      "targetTopicPrefix": "$aws/rules/StatusUpdateRule/",
      "source": "LocalMqtt",
      "target": "IotCore"
    }
  }
}
```

------
#### [ 2.2.0 - 2.2.5 ]

`mqttTopicMapping`  
<a name="mqtt-bridge-component-configuration-mqtt-topic-mapping-description"></a>您要橋接的主題映射。此元件會訂閱來源主題的訊息，並將收到的訊息發佈至目的地主題。每個主題映射都會定義主題、來源類型和目的地類型。  
此物件包含下列資訊：    
`topicMappingNameKey`  
<a name="mqtt-bridge-component-configuration-mqtt-topic-mapping-name-key-description"></a>此主題映射的名稱。將 *topicMappingNameKey* 取代為可協助您識別此主題映射的名稱。  
此物件包含下列資訊：    
`topic`  
要橋接來源和目標代理程式的主題或主題篩選條件。  
您可以使用 `+`和 `#` MQTT 主題萬用字元，在符合主題篩選條件的所有主題上轉送訊息。如需詳細資訊，請參閱《 *AWS IoT Core 開發人員指南*》中的 [MQTT 主題](https://docs.aws.amazon.com/iot/latest/developerguide/topics.html)。  
若要搭配`Pubsub`來源代理程式使用 MQTT 主題萬用字元，您必須使用 [Greengrass 核元件](greengrass-nucleus-component.md)的 v2.6.0 或更新版本。  
`targetTopicPrefix`  
當此元件轉送訊息時，要新增至目標主題的字首。  
`source`  <a name="mqtt-bridge-component-configuration-mqtt-topic-mapping-source"></a>
來源訊息代理程式。您可以從以下選項中選擇：  <a name="mqtt-bridge-component-configuration-topic-types"></a>
+ `LocalMqtt` – 用戶端裝置通訊的本機 MQTT 代理程式。
+ `Pubsub` – 本機 Greengrass 發佈/訂閱訊息代理程式。
+ `IotCore` – AWS IoT Core MQTT 訊息代理程式。
**注意**  <a name="mqtt-bridge-component-iotcore-qos-1-note"></a>
MQTT 橋接器使用 QoS 1 來發佈和訂閱 AWS IoT Core，即使用戶端裝置使用 QoS 0 來發佈和訂閱本機 MQTT 代理程式也一樣。因此，當您從本機 MQTT 代理程式上的用戶端裝置轉送 MQTT 訊息時，您可能會發現額外的延遲 AWS IoT Core。如需核心裝置上 MQTT 組態的詳細資訊，請參閱 [設定 MQTT 逾時和快取設定](configure-greengrass-core-v2.md#configure-mqtt)。
`source` 和 `target` 必須不同。  
`target`  <a name="mqtt-bridge-component-configuration-mqtt-topic-mapping-target"></a>
目標訊息中介裝置。您可以從以下選項中選擇：  <a name="mqtt-bridge-component-configuration-topic-types"></a>
+ `LocalMqtt` – 用戶端裝置通訊的本機 MQTT 代理程式。
+ `Pubsub` – 本機 Greengrass 發佈/訂閱訊息代理程式。
+ `IotCore` – AWS IoT Core MQTT 訊息代理程式。
**注意**  <a name="mqtt-bridge-component-iotcore-qos-1-note"></a>
MQTT 橋接器使用 QoS 1 來發佈和訂閱 AWS IoT Core，即使用戶端裝置使用 QoS 0 來發佈和訂閱本機 MQTT 代理程式也一樣。因此，當您從本機 MQTT 代理程式上的用戶端裝置轉送 MQTT 訊息時，您可能會發現額外的延遲 AWS IoT Core。如需核心裝置上 MQTT 組態的詳細資訊，請參閱 [設定 MQTT 逾時和快取設定](configure-greengrass-core-v2.md#configure-mqtt)。
`source` 和 `target` 必須不同。

`brokerUri`  <a name="mqtt-bridge-component-configuration-broker-uri"></a>
（選用） 本機 MQTT 中介裝置的 URI。如果您將 MQTT 代理程式設定為使用與預設連接埠 8883 不同的連接埠，則必須指定此參數。使用下列格式，並將*連接埠*取代為 MQTT 中介裝置操作所在的連接埠：`ssl://localhost:port`。  
預設：`ssl://localhost:8883`

**Example 範例：組態合併更新**  <a name="mqtt-bridge-component-configuration-example-with-prefix"></a>
下列範例組態更新會指定下列項目：  
+ 在符合主題篩選條件`clients/+/hello/world`的主題 AWS IoT Core 上，將訊息從用戶端裝置轉送至 。
+ 在符合主題篩選條件`clients/+/detections`的主題上，將訊息從用戶端裝置轉送至本機發佈/訂閱，並將`events/input/`字首新增至目標主題。產生的目標主題符合`events/input/clients/+/detections`主題篩選條件。
+ 在符合主題篩選條件`clients/+/status`的主題 AWS IoT Core 上，將訊息從用戶端裝置轉送到 ，並將`$aws/rules/StatusUpdateRule/`字首新增至目標主題。此範例會將這些訊息直接轉送至名為 的[AWS IoT 規則](https://docs.aws.amazon.com/iot/latest/developerguide/iot-rules.html)`StatusUpdateRule`，以使用[基本擷取](https://docs.aws.amazon.com/iot/latest/developerguide/iot-basic-ingest.html)降低成本。

```
{
  "mqttTopicMapping": {
    "ClientDeviceHelloWorld": {
      "topic": "clients/+/hello/world",
      "source": "LocalMqtt",
      "target": "IotCore"
    },
    "ClientDeviceEvents": {
      "topic": "clients/+/detections",
      "targetTopicPrefix": "events/input/",
      "source": "LocalMqtt",
      "target": "Pubsub"
    },
    "ClientDeviceCloudStatusUpdate": {
      "topic": "clients/+/status",
      "targetTopicPrefix": "$aws/rules/StatusUpdateRule/",
      "source": "LocalMqtt",
      "target": "IotCore"
    }
  }
}
```

------
#### [ 2.1.x ]

`mqttTopicMapping`  <a name="mqtt-bridge-component-configuration-mqtt-topic-mapping"></a>
<a name="mqtt-bridge-component-configuration-mqtt-topic-mapping-description"></a>您要橋接的主題映射。此元件會訂閱來源主題的訊息，並將收到的訊息發佈至目的地主題。每個主題映射都會定義主題、來源類型和目的地類型。  
此物件包含下列資訊：    
`topicMappingNameKey`  
<a name="mqtt-bridge-component-configuration-mqtt-topic-mapping-name-key-description"></a>此主題映射的名稱。將 *topicMappingNameKey* 取代為可協助您識別此主題映射的名稱。  
此物件包含下列資訊：    
`topic`  
要橋接來源和目標代理程式的主題或主題篩選條件。  
如果您指定 `LocalMqtt`或 `IotCore` 來源代理程式，您可以使用 `+`和 `#` MQTT 主題萬用字元，在所有符合主題篩選條件的主題上轉送訊息。如需詳細資訊，請參閱《 *AWS IoT Core 開發人員指南*》中的 [MQTT 主題](https://docs.aws.amazon.com/iot/latest/developerguide/topics.html)。  
`source`  <a name="mqtt-bridge-component-configuration-mqtt-topic-mapping-source"></a>
來源訊息代理程式。您可以從以下選項中選擇：  <a name="mqtt-bridge-component-configuration-topic-types"></a>
+ `LocalMqtt` – 用戶端裝置通訊的本機 MQTT 代理程式。
+ `Pubsub` – 本機 Greengrass 發佈/訂閱訊息代理程式。
+ `IotCore` – AWS IoT Core MQTT 訊息代理程式。
**注意**  <a name="mqtt-bridge-component-iotcore-qos-1-note"></a>
MQTT 橋接器使用 QoS 1 來發佈和訂閱 AWS IoT Core，即使用戶端裝置使用 QoS 0 來發佈和訂閱本機 MQTT 代理程式也一樣。因此，當您從本機 MQTT 代理程式上的用戶端裝置轉送 MQTT 訊息時，您可能會發現額外的延遲 AWS IoT Core。如需核心裝置上 MQTT 組態的詳細資訊，請參閱 [設定 MQTT 逾時和快取設定](configure-greengrass-core-v2.md#configure-mqtt)。
`source` 和 `target` 必須不同。  
`target`  <a name="mqtt-bridge-component-configuration-mqtt-topic-mapping-target"></a>
目標訊息中介裝置。您可以從以下選項中選擇：  <a name="mqtt-bridge-component-configuration-topic-types"></a>
+ `LocalMqtt` – 用戶端裝置通訊的本機 MQTT 代理程式。
+ `Pubsub` – 本機 Greengrass 發佈/訂閱訊息代理程式。
+ `IotCore` – AWS IoT Core MQTT 訊息代理程式。
**注意**  <a name="mqtt-bridge-component-iotcore-qos-1-note"></a>
MQTT 橋接器使用 QoS 1 來發佈和訂閱 AWS IoT Core，即使用戶端裝置使用 QoS 0 來發佈和訂閱本機 MQTT 代理程式也一樣。因此，當您從本機 MQTT 代理程式上的用戶端裝置轉送 MQTT 訊息時，您可能會發現額外的延遲 AWS IoT Core。如需核心裝置上 MQTT 組態的詳細資訊，請參閱 [設定 MQTT 逾時和快取設定](configure-greengrass-core-v2.md#configure-mqtt)。
`source` 和 `target` 必須不同。

`brokerUri`  <a name="mqtt-bridge-component-configuration-broker-uri"></a>
（選用） 本機 MQTT 中介裝置的 URI。如果您將 MQTT 代理程式設定為使用與預設連接埠 8883 不同的連接埠，則必須指定此參數。使用下列格式，並將*連接埠*取代為 MQTT 中介裝置操作所在的連接埠：`ssl://localhost:port`。  
預設：`ssl://localhost:8883`

**Example 範例：組態合併更新**  <a name="mqtt-bridge-component-configuration-example-no-prefix"></a>
下列範例組態更新會指定 在 `clients/MyClientDevice1/hello/world`和 `clients/MyClientDevice2/hello/world`主題 AWS IoT Core 上，將訊息從用戶端裝置轉送至 。  

```
{
  "mqttTopicMapping": {
    "ClientDevice1HelloWorld": {
      "topic": "clients/MyClientDevice1/hello/world",
      "source": "LocalMqtt",
      "target": "IotCore"
    },
    "ClientDevice2HelloWorld": {
      "topic": "clients/MyClientDevice2/hello/world",
      "source": "LocalMqtt",
      "target": "IotCore"
    }
  }
}
```

------
#### [ 2.0.x ]

`mqttTopicMapping`  <a name="mqtt-bridge-component-configuration-mqtt-topic-mapping"></a>
<a name="mqtt-bridge-component-configuration-mqtt-topic-mapping-description"></a>您要橋接的主題映射。此元件會訂閱來源主題的訊息，並將收到的訊息發佈至目的地主題。每個主題映射都會定義主題、來源類型和目的地類型。  
此物件包含下列資訊：    
`topicMappingNameKey`  
<a name="mqtt-bridge-component-configuration-mqtt-topic-mapping-name-key-description"></a>此主題映射的名稱。將 *topicMappingNameKey* 取代為可協助您識別此主題映射的名稱。  
此物件包含下列資訊：    
`topic`  
要橋接來源和目標代理程式的主題或主題篩選條件。  
如果您指定 `LocalMqtt`或 `IotCore` 來源代理程式，您可以使用 `+`和 `#` MQTT 主題萬用字元，在所有符合主題篩選條件的主題上轉送訊息。如需詳細資訊，請參閱《 *AWS IoT Core 開發人員指南*》中的 [MQTT 主題](https://docs.aws.amazon.com/iot/latest/developerguide/topics.html)。  
`source`  <a name="mqtt-bridge-component-configuration-mqtt-topic-mapping-source"></a>
來源訊息代理程式。您可以從以下選項中選擇：  <a name="mqtt-bridge-component-configuration-topic-types"></a>
+ `LocalMqtt` – 用戶端裝置通訊的本機 MQTT 代理程式。
+ `Pubsub` – 本機 Greengrass 發佈/訂閱訊息代理程式。
+ `IotCore` – AWS IoT Core MQTT 訊息代理程式。
**注意**  <a name="mqtt-bridge-component-iotcore-qos-1-note"></a>
MQTT 橋接器使用 QoS 1 來發佈和訂閱 AWS IoT Core，即使用戶端裝置使用 QoS 0 來發佈和訂閱本機 MQTT 代理程式也一樣。因此，當您從本機 MQTT 代理程式上的用戶端裝置轉送 MQTT 訊息時，您可能會發現額外的延遲 AWS IoT Core。如需核心裝置上 MQTT 組態的詳細資訊，請參閱 [設定 MQTT 逾時和快取設定](configure-greengrass-core-v2.md#configure-mqtt)。
`source` 和 `target` 必須不同。  
`target`  <a name="mqtt-bridge-component-configuration-mqtt-topic-mapping-target"></a>
目標訊息中介裝置。您可以從以下選項中選擇：  <a name="mqtt-bridge-component-configuration-topic-types"></a>
+ `LocalMqtt` – 用戶端裝置通訊的本機 MQTT 代理程式。
+ `Pubsub` – 本機 Greengrass 發佈/訂閱訊息代理程式。
+ `IotCore` – AWS IoT Core MQTT 訊息代理程式。
**注意**  <a name="mqtt-bridge-component-iotcore-qos-1-note"></a>
MQTT 橋接器使用 QoS 1 來發佈和訂閱 AWS IoT Core，即使用戶端裝置使用 QoS 0 來發佈和訂閱本機 MQTT 代理程式也一樣。因此，當您從本機 MQTT 代理程式上的用戶端裝置轉送 MQTT 訊息時，您可能會發現額外的延遲 AWS IoT Core。如需核心裝置上 MQTT 組態的詳細資訊，請參閱 [設定 MQTT 逾時和快取設定](configure-greengrass-core-v2.md#configure-mqtt)。
`source` 和 `target` 必須不同。

**Example 範例：組態合併更新**  <a name="mqtt-bridge-component-configuration-example-no-prefix"></a>
下列範例組態更新會指定 在 `clients/MyClientDevice1/hello/world`和 `clients/MyClientDevice2/hello/world`主題 AWS IoT Core 上，將訊息從用戶端裝置轉送至 。  

```
{
  "mqttTopicMapping": {
    "ClientDevice1HelloWorld": {
      "topic": "clients/MyClientDevice1/hello/world",
      "source": "LocalMqtt",
      "target": "IotCore"
    },
    "ClientDevice2HelloWorld": {
      "topic": "clients/MyClientDevice2/hello/world",
      "source": "LocalMqtt",
      "target": "IotCore"
    }
  }
}
```

------

## 本機日誌檔案
<a name="mqtt-bridge-component-log-file"></a>

此元件使用與 [Greengrass 核](greengrass-nucleus-component.md)元件相同的日誌檔案。

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

```
/greengrass/v2/logs/greengrass.log
```

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

```
C:\greengrass\v2\logs\greengrass.log
```

------

**檢視此元件的日誌**
+ 在核心裝置上執行下列命令，以即時檢視此元件的日誌檔案。將 `/greengrass/v2`或 *C：\$1greengrass\$1v2* 取代為 AWS IoT Greengrass 根資料夾的路徑。

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

  ```
  sudo tail -f /greengrass/v2/logs/greengrass.log
  ```

------
#### [ Windows (PowerShell) ]

  ```
  Get-Content C:\greengrass\v2\logs\greengrass.log -Tail 10 -Wait
  ```

------

## 變更記錄
<a name="mqtt-bridge-component-changelog"></a>

下表說明每個版本元件的變更。


|  **版本**  |  **變更**  | 
| --- | --- | 
|  2.3.2  |  針對[用戶端裝置驗證](client-device-auth-component.md) 2.5.0 版更新版本。  | 
| 2.3.1 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/mqtt-bridge-component.html)  | 
| 2.3.0 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/mqtt-bridge-component.html)  | 
|  2.2.6  |  <a name="changelog-mqtt-bridge-2.2.6"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/mqtt-bridge-component.html)  | 
|  2.2.5  |  針對[用戶端裝置驗證](client-device-auth-component.md) 2.4.0 版更新版本。  | 
|  2.2.4  |  針對 Greengrass [用戶端裝置驗證](client-device-auth-component.md) 2.3.0 版更新版本。  | 
|  2.2.3  |  此版本包含錯誤修正和改善。  | 
|  2.2.2  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/mqtt-bridge-component.html)  | 
|  2.2.1  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/mqtt-bridge-component.html)  | 
|  2.2.0  |  <a name="changelog-mqtt-bridge-2.2.0"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/mqtt-bridge-component.html)  | 
|  2.1.1  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/mqtt-bridge-component.html)  | 
|  2.1.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/mqtt-bridge-component.html)  | 
|  2.0.1  |  此版本包含錯誤修正和改善。  | 
|  2.0.0  |  初始版本。  | 

# MQTT 3.1.1 代理程式 (Moquette)
<a name="mqtt-broker-moquette-component"></a>

Moquette MQTT 代理程式元件 (`aws.greengrass.clientdevices.mqtt.Moquette`) 會處理用戶端裝置和 Greengrass 核心裝置之間的 MQTT 訊息。此元件提供修改版本的 [Moquette MQTT 代理程式](https://github.com/moquette-io/moquette)。部署此 MQTT 代理程式以執行輕量型 MQTT 代理程式。如需如何選擇 MQTT 代理程式的詳細資訊，請參閱 [選擇 MQTT 代理程式](choose-local-mqtt-broker.md)。

此代理程式實作 MQTT 3.1.1 通訊協定。它包含對 QoS 0、QoS 1、QoS 2 保留訊息、最後遺囑訊息和持久性工作階段的支援。

**注意**  <a name="client-device-component-context"></a>
用戶端裝置是連線至 Greengrass 核心裝置的本機 IoT 裝置，用於傳送 MQTT 訊息和要處理的資料。如需詳細資訊，請參閱[與本機 IoT 裝置互動](interact-with-local-iot-devices.md)。

**Topics**
+ [版本](#mqtt-broker-moquette-component-versions)
+ [類型](#mqtt-broker-moquette-component-type)
+ [作業系統](#mqtt-broker-moquette-component-os-support)
+ [要求](#mqtt-broker-moquette-component-requirements)
+ [相依性](#mqtt-broker-moquette-component-dependencies)
+ [Configuration](#mqtt-broker-moquette-component-configuration)
+ [本機日誌檔案](#mqtt-broker-moquette-component-log-file)
+ [變更記錄](#mqtt-broker-moquette-component-changelog)

## 版本
<a name="mqtt-broker-moquette-component-versions"></a>

此元件具有下列版本：
+ 2.3.x 版本
+ 2.2.x 版本
+ 2.1.x
+ 2.0.x

## 類型
<a name="mqtt-broker-moquette-component-type"></a>

<a name="public-component-type-plugin-para1"></a>此元件是外掛程式元件 (`aws.greengrass.plugin`)。[Greengrass 核心](greengrass-nucleus-component.md)會在與核心相同的 Java 虛擬機器 (JVM) 中執行此元件。當您在核心裝置上變更此元件的版本時，核心會重新啟動。

<a name="public-component-type-plugin-para2"></a>此元件使用與 Greengrass 核相同的日誌檔案。如需詳細資訊，請參閱[監控 AWS IoT Greengrass 日誌](monitor-logs.md)。

<a name="public-component-type-more-information"></a>如需詳細資訊，請參閱[元件類型](develop-greengrass-components.md#component-types)。

## 作業系統
<a name="mqtt-broker-moquette-component-os-support"></a>

此元件可以安裝在執行下列作業系統的核心裝置上：
+ Linux
+ Windows

## 要求
<a name="mqtt-broker-moquette-component-requirements"></a>

此元件有下列需求：
+ 核心裝置必須能夠在 MQTT 中介裝置操作的連接埠上接受連線。此元件預設會在連接埠 8883 上執行 MQTT 代理程式。您可以在設定此元件時指定不同的連接埠。

  <a name="mqtt-broker-configuration-mqtt-bridge-requirement"></a>如果您指定不同的連接埠，並使用 [MQTT 橋接器元件](mqtt-bridge-component.md)將 MQTT 訊息轉送至其他代理程式，則必須使用 MQTT 橋接器 v2.1.0 或更新版本。將其設定為使用 MQTT 中介裝置操作所在的連接埠。

  <a name="mqtt-broker-configuration-ip-detector-requirement"></a>如果您指定不同的連接埠，並使用 [IP 偵測器元件](ip-detector-component.md)來管理 MQTT 代理程式端點，則必須使用 IP 偵測器 v2.1.0 或更新版本。將其設定為報告 MQTT 中介裝置操作所在的連接埠。
+ 支援在 VPC 中執行 Moquette MQTT 代理程式元件。

## 相依性
<a name="mqtt-broker-moquette-component-dependencies"></a>

當您部署元件時， AWS IoT Greengrass 也會部署其相依性的相容版本。這表示您必須符合元件及其所有相依性的要求，才能成功部署元件。本節列出此元件[發行版本的](#mqtt-broker-moquette-component-changelog)相依性，以及為每個相依性定義元件版本的語意版本限制。您也可以在 [AWS IoT Greengrass 主控台](https://console.aws.amazon.com//greengrass)中檢視每個版本元件的相依性。在元件詳細資訊頁面上，尋找**相依性**清單。

------
#### [ 2.3.7 ]

下表列出此元件 2.3.7 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [用戶端裝置身分驗證](client-device-auth-component.md) | >=2.2.0 <2.6.0 | 硬式 | 

------
#### [ 2.3.2 – 2.3.6 ]

下表列出此元件 2.3.2 至 2.3.6 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [用戶端裝置身分驗證](client-device-auth-component.md) | >=2.2.0 <2.5.0 | 硬式 | 

------
#### [ 2.3.0 and 2.3.1 ]

下表列出此元件 2.3.0 和 2.3.1 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [用戶端裝置身分驗證](client-device-auth-component.md) | >=2.2.0 <2.4.0 | 硬式 | 

------
#### [ 2.2.0 ]

下表列出此元件 2.2.0 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [用戶端裝置身分驗證](client-device-auth-component.md) | >=2.2.0 <2.3.0 | 硬式 | 

------
#### [ 2.1.0 ]

下表列出此元件 2.1.0 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [用戶端裝置身分驗證](client-device-auth-component.md) | >=2.0.0 <2.2.0 | 硬式 | 

------
#### [ 2.0.0 - 2.0.2 ]

下表列出此元件 2.0.0 到 2.0.2 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [用戶端裝置身分驗證](client-device-auth-component.md) | >=2.0.0 <2.1.0 | 硬式 | 

------

如需元件相依性的詳細資訊，請參閱[元件配方參考](component-recipe-reference.md#recipe-reference-component-dependencies)。

## Configuration
<a name="mqtt-broker-moquette-component-configuration"></a>

此元件提供下列組態參數，您可以在部署元件時自訂這些參數。

`moquette`  
（選用） 要使用的 [Moquette MQTT 代理程式](https://github.com/moquette-io/moquette)組態。您可以在此元件中設定 Moqeutte 組態選項的子集。如需詳細資訊，請參閱 [Moquette 組態檔案中](https://github.com/moquette-io/moquette/blob/main/distribution/src/main/resources/moquette.conf)的內嵌註解。  
此物件包含下列資訊：    
`ssl_port`  
（選用） MQTT 中介裝置操作所在的連接埠。  
<a name="mqtt-broker-configuration-mqtt-bridge-requirement"></a>如果您指定不同的連接埠，並使用 [MQTT 橋接器元件](mqtt-bridge-component.md)將 MQTT 訊息轉送至其他代理程式，則必須使用 MQTT 橋接器 v2.1.0 或更新版本。將其設定為使用 MQTT 中介裝置操作所在的連接埠。  
<a name="mqtt-broker-configuration-ip-detector-requirement"></a>如果您指定不同的連接埠，並使用 [IP 偵測器元件](ip-detector-component.md)來管理 MQTT 代理程式端點，則必須使用 IP 偵測器 v2.1.0 或更新版本。將其設定為報告 MQTT 中介裝置操作所在的連接埠。
預設：`8883`  
`host`  
（選用） MQTT 中介裝置繫結的界面。例如，您可以變更此參數，以便 MQTT 代理程式僅繫結至特定本機網路。  
預設：`0.0.0.0`（繫結至所有網路介面）

startupTimeoutSeconds  
（選用） 元件啟動的時間上限，以秒為單位。`BROKEN` 如果元件超過此逾時，元件的狀態會變更為 。  
預設：`120`

**Example 範例：組態合併更新**  
下列範例組態指定 在連接埠 443 上操作 MQTT 代理程式。  

```
{
  "moquette": {
    "ssl_port": "443"
  }
}
```

## 本機日誌檔案
<a name="mqtt-broker-moquette-component-log-file"></a>

此元件使用與 [Greengrass 核](greengrass-nucleus-component.md)元件相同的日誌檔案。

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

```
/greengrass/v2/logs/greengrass.log
```

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

```
C:\greengrass\v2\logs\greengrass.log
```

------

**檢視此元件的日誌**
+ 在核心裝置上執行下列命令，以即時檢視此元件的日誌檔案。將 `/greengrass/v2`或 *C：\$1greengrass\$1v2* 取代為 AWS IoT Greengrass 根資料夾的路徑。

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

  ```
  sudo tail -f /greengrass/v2/logs/greengrass.log
  ```

------
#### [ Windows (PowerShell) ]

  ```
  Get-Content C:\greengrass\v2\logs\greengrass.log -Tail 10 -Wait
  ```

------

## 變更記錄
<a name="mqtt-broker-moquette-component-changelog"></a>

下表說明每個版本元件的變更。


|  **版本**  |  **變更**  | 
| --- | --- | 
|  2.3.7  |  針對[用戶端裝置驗證](client-device-auth-component.md) 2.5.0 版更新版本。  | 
|  2.3.6  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/mqtt-broker-moquette-component.html)  | 
|  2.3.5  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/mqtt-broker-moquette-component.html)  | 
|  2.3.4  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/mqtt-broker-moquette-component.html)  | 
|  2.3.3  |  <a name="changelog-mqtt-broker-moquette-2.3.3"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/mqtt-broker-moquette-component.html)  | 
|  2.3.2  |  針對[用戶端裝置驗證](client-device-auth-component.md) 2.4.0 版更新版本。  | 
|  2.3.1  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/mqtt-broker-moquette-component.html)  | 
|  2.3.0  |  新增憑證鏈的支援。  | 
|  2.2.0  |  針對[用戶端裝置驗證](client-device-auth-component.md) 2.2.0 版更新版本。  | 
|  2.1.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/mqtt-broker-moquette-component.html)  | 
|  2.0.2  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/mqtt-broker-moquette-component.html)  | 
|  2.0.1  |  針對 Greengrass nucleus 2.4.0 版更新版本。  | 
|  2.0.0  |  初始版本。  | 

# MQTT 5 代理程式 (EMQX)
<a name="mqtt-broker-emqx-component"></a>

EMQX MQTT 代理程式元件 (`aws.greengrass.clientdevices.mqtt.EMQX`) 會處理用戶端裝置和 Greengrass 核心裝置之間的 MQTT 訊息。此元件提供修改版本的 [EMQX MQTT 5.0 代理程式。](https://www.emqx.com/en/mqtt/mqtt5)部署此 MQTT 代理程式以使用 MQTT 5 功能在用戶端裝置和核心裝置之間進行通訊。如需如何選擇 MQTT 代理程式的詳細資訊，請參閱 [選擇 MQTT 代理程式](choose-local-mqtt-broker.md)。

此代理程式實作 MQTT 5.0 通訊協定。它包含對工作階段和訊息過期間隔、使用者屬性、共用訂閱、主題別名等的支援。MQTT 5 與 MQTT 3.1.1 回溯相容，因此如果您執行 [Moquette MQTT 3.1.1 代理](mqtt-broker-moquette-component.md)程式，您可以將其取代為 EMQX MQTT 5 代理程式，而且用戶端裝置可以繼續照常連線和操作。

<a name="note-local-mqtt-broker-mqtt-5-features"></a>

**注意**  <a name="client-device-component-context"></a>
用戶端裝置是連線至 Greengrass 核心裝置的本機 IoT 裝置，用於傳送 MQTT 訊息和要處理的資料。如需詳細資訊，請參閱[與本機 IoT 裝置互動](interact-with-local-iot-devices.md)。

**Topics**
+ [版本](#mqtt-broker-emqx-component-versions)
+ [Type](#mqtt-broker-emqx-component-type)
+ [作業系統](#mqtt-broker-emqx-component-os-support)
+ [要求](#mqtt-broker-emqx-component-requirements)
+ [相依性](#mqtt-broker-emqx-component-dependencies)
+ [Configuration](#mqtt-broker-emqx-component-configuration)
+ [本機日誌檔案](#mqtt-broker-emqx-component-log-file)
+ [授權](#mqtt-broker-emqx-component-licenses)
+ [變更記錄](#mqtt-broker-emqx-component-changelog)

## 版本
<a name="mqtt-broker-emqx-component-versions"></a>

此元件具有下列版本：
+ 2.0.x
+ 1.2.x
+ 1.1.x
+ 1.0.x

## Type
<a name="mqtt-broker-emqx-component-type"></a>

<a name="public-component-type-generic"></a>此<a name="public-component-type-generic-phrase"></a>元件是一般元件 (`aws.greengrass.generic`)。[Greengrass 核](greengrass-nucleus-component.md)會執行元件的生命週期指令碼。

<a name="public-component-type-more-information"></a>如需詳細資訊，請參閱[元件類型](develop-greengrass-components.md#component-types)。

## 作業系統
<a name="mqtt-broker-emqx-component-os-support"></a>

此元件可以安裝在執行下列作業系統的核心裝置上：
+ Linux
+ Windows

## 要求
<a name="mqtt-broker-emqx-component-requirements"></a>

此元件有下列需求：
+ 核心裝置必須能夠在 MQTT 中介裝置操作的連接埠上接受連線。此元件預設會在連接埠 8883 上執行 MQTT 代理程式。您可以在設定此元件時指定不同的連接埠。

  <a name="mqtt-broker-configuration-mqtt-bridge-requirement"></a>如果您指定不同的連接埠，並使用 [MQTT 橋接器元件](mqtt-bridge-component.md)將 MQTT 訊息轉送至其他代理程式，則必須使用 MQTT 橋接器 v2.1.0 或更新版本。將其設定為使用 MQTT 代理程式操作所在的連接埠。

  <a name="mqtt-broker-configuration-ip-detector-requirement"></a>如果您指定不同的連接埠，並使用 [IP 偵測器元件](ip-detector-component.md)來管理 MQTT 代理程式端點，則必須使用 IP 偵測器 v2.1.0 或更新版本。將其設定為報告 MQTT 中介裝置操作所在的連接埠。
+ 在 Linux 核心裝置上，Docker 已安裝並設定在核心裝置上：
  + <a name="docker-engine-requirement"></a>[Docker 引擎](https://docs.docker.com/engine/) 1.9.1 或更新版本安裝在 Greengrass 核心裝置上。20.10 版是經過驗證可與 AWS IoT Greengrass Core 軟體搭配使用的最新版本。您必須先直接在核心裝置上安裝 Docker，才能部署執行 Docker 容器的元件。
  + <a name="docker-daemon-requirement"></a>在部署此元件之前，Docker 協助程式會在核心裝置上啟動和執行。
  + 執行此元件的系統使用者必須具有根或管理員許可。或者，您可以在 `docker`群組中以系統使用者身分執行此元件，並將此元件`requiresPrivileges`的選項設定為 `false`，以在沒有權限的情況下執行 EQMX MQTT 代理程式。
+ EMQX MQTT 代理程式元件支援在 VPC 中執行。
+ `armv7` 平台不支援 EMQX MQTT 代理程式元件。

## 相依性
<a name="mqtt-broker-emqx-component-dependencies"></a>

當您部署元件時， AWS IoT Greengrass 也會部署其相依性的相容版本。這表示您必須符合元件及其所有相依性的要求，才能成功部署元件。本節列出此元件[發行版本的](#mqtt-broker-emqx-component-changelog)相依性，以及為每個相依性定義元件版本的語意版本限制。您也可以在 [AWS IoT Greengrass 主控台](https://console.aws.amazon.com//greengrass)中檢視每個版本元件的相依性。在元件詳細資訊頁面上，尋找**相依性**清單。

------
#### [ 2.0.2 – 2.0.3 ]

下表列出此元件 2.0.2 和 2.0.3 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [用戶端裝置身分驗證](client-device-auth-component.md) | >=2.2.0 <2.6.0 | 軟式 | 

------
#### [ 2.0.1 ]

下表列出此元件 2.0.1 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [用戶端裝置身分驗證](client-device-auth-component.md) | >=2.2.0 <2.6.0 | 硬式 | 

------
#### [ 2.0.0 ]

下表列出此元件 2.0.0 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [用戶端裝置身分驗證](client-device-auth-component.md) | >=2.2.0 <2.5.0 | 硬式 | 

------
#### [ 1.2.2 – 1.2.3 ]

下表列出此元件 1.2.2 至 1.2.3 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [用戶端裝置身分驗證](client-device-auth-component.md) | >=2.2.0 <2.5.0 | 硬式 | 

------
#### [ 1.2.0 and 1.2.1 ]

下表列出此元件 1.2.0 和 1.2.1 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [用戶端裝置身分驗證](client-device-auth-component.md) | >=2.2.0 <2.4.0 | 硬式 | 

------
#### [ 1.0.0 and 1.1.0 ]

下表列出此元件 1.0.0 和 1.1.0 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [用戶端裝置身分驗證](client-device-auth-component.md) | >=2.2.0 <2.3.0 | 硬式 | 

------

如需元件相依性的詳細資訊，請參閱[元件配方參考](component-recipe-reference.md#recipe-reference-component-dependencies)。

## Configuration
<a name="mqtt-broker-emqx-component-configuration"></a>

------
#### [ 2.0.0 - 2.0.3 ]

此元件提供下列組態參數，您可以在部署元件時自訂這些參數。

**重要**  
如果您使用 MQTT 5 代理程式 (EMQX) 元件的第 2 版，則必須更新組態檔案。第 1 版組態檔案不適用於第 2 版。

emqxConfig  
 （選用） 要使用的 [EMQX MQTT 代理程式](https://www.emqx.io/docs/en/v5.1/configuration/configuration.html)組態。您可以在此元件中設定 EMQX 組態選項。  
當您使用 EMQX 代理程式時，Greengrass 會使用預設組態。除非您使用此欄位修改組態，否則使用此組態。  
修改下列組態設定會導致 EMQX 代理程式元件重新啟動。其他組態變更會套用而不重新啟動元件。  
+ `emqxConfig/cluster`
+ `emqxConfig/node`
+ `emqxConfig/rpc`
`aws.greengrass.clientdevices.mqtt.EMQX` 可讓您設定安全敏感選項。這些包括 TLS 設定、身分驗證和授權提供者。我們建議使用交互 TLS 身分驗證和 Greengrass 用戶端裝置身分驗證提供者的預設組態。

**Example 範例：預設組態**  
下列範例顯示為 MQTT 5 (EMQX) 代理程式設定的預設值。您可以使用組態設定覆寫這些`emqxConfig`設定。  

```
{
  "authorization": {
    "no_match": "deny",
    "sources": []
  },
  "node": {
    "cookie": "<placeholder>"
  }, 
  "listeners": {
     "ssl": {
       "default": {
         "ssl_options": {
           "keyfile": "{work:path}\\data\\key.pem",
           "certfile": "{work:path}\\data\\cert.pem",
           "cacertfile": null,
           "verify": "verify_peer",
           "versions": ["tlsv1.3", "tlsv1.2"],
           "fail_if_no_peer_cert": true
         }
       }
     },
     "tcp": {
       "default": {
         "enabled": false
       }
     },
     "ws": {
       "default": {
         "enabled": false
       }
     },
     "wss": {
       "default": {
         "enabled": false
       }
     }
  },
  "plugins": {
    "states": [{"name_vsn": "gg-1.0.0", "enable": true}],
    "install_dir": "plugins"
  }
}
```

authMode  
（選用） 設定代理程式的授權提供者。可以是下列其中一個值：  
+ `enabled` – （預設） 使用 Greengrass 身分驗證和授權提供者。
+ `bypass_on_failure` – 如果 Greengrass 拒絕身分驗證或授權，請使用 Greengrass 身分驗證提供者，然後使用 EMQX 提供者鏈結中任何剩餘的身分驗證提供者。
+ `bypass` – Greengrass 提供者已停用。身分驗證和授權是由 EMQX 供應商鏈處理。

`requiresPrivilege`  
（選用） 在 Linux 核心裝置上，您可以指定 在沒有根或管理員權限的情況下執行 EMQX MQTT 代理程式。如果您將此選項設定為 `false`，則執行此元件的系統使用者必須是 `docker`群組的成員。  
預設：`true`

`startupTimeoutSeconds`  
（選用） EMQX MQTT 代理程式啟動的秒數上限。`BROKEN` 如果元件超過此逾時，元件的狀態會變更為 。  
預設：`90`

`ipcTimeoutSeconds`  
（選用） 元件等待 Greengrass 核回應程序間通訊 (IPC) 請求的秒數上限。如果此元件在檢查用戶端裝置是否獲得授權時回報逾時錯誤，請增加此數字。  
預設：`5`

`crtLogLevel`  
（選用） AWS 一般執行期 (CRT) 程式庫的日誌層級。  
預設為 EMQX MQTT 代理程式日誌層級 (`log.level` 中的 `emqx`)。

`restartIdentifier`  
（選用） 設定此選項以重新啟動 EMQX MQTT 代理程式。當此組態值變更時，此元件會重新啟動 MQTT 代理程式。您可以使用此選項來強制用戶端裝置中斷連線。

`dockerOptions`  
（選用） 僅在 Linux 作業系統上設定此選項，將參數新增至 Docker 命令列。例如，若要映射其他連接埠，請使用 `-p` Docker 參數：  

```
"-p 1883:1883"
```

**Example 範例：將 v1.x 組態檔案更新為 v2.x**  
下列範例顯示將 v1.x 組態檔案更新為 2.x 版所需的變更。  
1.x 版組態檔案：  

```
{
    "emqx": {
        "listener.ssl.external": "443",
        "listener.ssl.external.max_connections": "1024000",
        "listener.ssl.external.max_conn_rate": "500",
        "listener.ssl.external.rate_limit": "50KB,5s",
        "listener.ssl.external.handshake_timeout": "15s",
        "log.level": "warning"
    },
    "mergeConfigurationFiles": {
        "etc/plugins/aws_greengrass_emqx_auth.conf": "auth_mode=enabled\n use_greengrass_managed_certificates=true\n"
    }
}
```
v2 的同等組態檔案：  

```
{
    "emqxConfig": {
        "listeners": {
            "ssl": {
                "default": {
                   "bind": "8883",
                   "max_connections": "1024000",
                   "max_conn_rate": "500",
                   "ssl_options": {
                        "handshake_timeout": "15s"
                   }
                }
            }
        },
        "log": {
            "console": {
              "enable": true,
              "level": "warning"
            }
        }
    },
    "authMode": "enabled"
}
```
組態`listener.ssl.external.rate_limit`項目沒有同等項目。`use_greengrass_managed_certificates` 組態選項已移除。

**Example 範例：設定代理程式的新連接埠**  
下列範例會將 MQTT 中介裝置從預設 8883 操作的連接埠變更為連接埠 1234。如果您使用的是 Linux，請包含 `dockerOptions` 欄位。  

```
{
  "emqxConfig": {
    "listeners": {
      "ssl": {
        "default": {
          "bind": 1234
        }
      }
    }
  },
  "dockerOptions": "-p 1234:1234"
}
```

**Example 範例：調整 MQTT 代理程式的日誌層級**  
下列範例會將 MQTT 代理程式的日誌層級變更為 `debug`。您可以從下列日誌層級中選擇：  
+ `debug`
+ `info`
+ `notice`
+ `warning`
+ `error`
+ `critical`
+ `alert`
+ `emergency`
預設日誌層級為 `warning`。  

```
{
  "emqxConfig": {
    "log": {
      "console": {
         "level": "debug"
      }
    }
  }
}
```

**Example 範例：啟用 EMQX 儀表板**  
下列範例會啟用 EMQX 儀表板，讓您可以監控和管理代理程式。如果您使用的是 Linux，請包含 `dockerOptions` 欄位。  

```
{
  "emqxConfig": {
    "dashboard": {
      "listeners": {
        "http": {
          "bind": 18083
        }
      }
    }
  },
  "dockerOptions": "-p 18083:18083"
}
```

------
#### [ 1.0.0 - 1.2.2 ]

此元件提供下列組態參數，您可以在部署元件時自訂這些參數。

`emqx`  
（選用） 要使用的 [EMQX MQTT 代理程式](https://www.emqx.io/docs/en/v4.4/configuration/configuration.html)組態。您可以在此元件中設定 EMQX 組態選項的子集。  
此物件包含下列資訊：    
`listener.ssl.external`  
（選用） MQTT 中介裝置操作所在的連接埠。  
<a name="mqtt-broker-configuration-mqtt-bridge-requirement"></a>如果您指定不同的連接埠，並使用 [MQTT 橋接器元件](mqtt-bridge-component.md)將 MQTT 訊息轉送給其他代理程式，則必須使用 MQTT 橋接器 v2.1.0 或更新版本。將其設定為使用 MQTT 代理程式操作所在的連接埠。  
<a name="mqtt-broker-configuration-ip-detector-requirement"></a>如果您指定不同的連接埠，並使用 [IP 偵測器元件](ip-detector-component.md)來管理 MQTT 代理程式端點，則必須使用 IP 偵測器 v2.1.0 或更新版本。將其設定為報告 MQTT 中介裝置操作所在的連接埠。
預設：`8883`  
`listener.ssl.external.max_connections`  
（選用） MQTT 中介裝置支援的並行連線數目上限。  
預設：`1024000`  
`listener.ssl.external.max_conn_rate`  
（選用） MQTT 代理程式每秒可接收的新連線數上限。  
預設：`500`  
`listener.ssl.external.rate_limit`  
（選用） 所有 MQTT 代理程式連線的頻寬限制。指定該頻寬的頻寬和持續時間，並以逗號 (`,`) 分隔，格式如下：`bandwidth,duration`。例如，您可以指定 `50KB,5s`將 MQTT 代理程式限制為每 5 秒 50 KB (KB) 的資料。  
`listener.ssl.external.handshake_timeout`  
（選用） MQTT 代理程式等待完成驗證新連線的時間長度。  
預設：`15s`  
`mqtt.max_packet_size`  
（選用） MQTT 訊息的大小上限。  
預設：`268435455`(256 MB 減去 1)  
`log.level`  
（選用） MQTT 代理程式的日誌層級。您可以從以下選項中選擇：  
+ `debug`
+ `info`
+ `notice`
+ `warning`
+ `error`
+ `critical`
+ `alert`
+ `emergency`
預設日誌層級為 `warning`。

`requiresPrivilege`  
（選用） 在 Linux 核心裝置上，您可以指定 在沒有根或管理員權限的情況下執行 EMQX MQTT 代理程式。如果您將此選項設定為 `false`，則執行此元件的系統使用者必須是 `docker`群組的成員。  
預設：`true`

`startupTimeoutSeconds`  
（選用） EMQX MQTT 代理程式啟動的秒數上限。`BROKEN` 如果元件超過此逾時，元件的狀態會變更為 。  
預設：`90`

`ipcTimeoutSeconds`  
（選用） 元件等待 Greengrass 核回應程序間通訊 (IPC) 請求的秒數上限。如果此元件在檢查用戶端裝置是否獲得授權時回報逾時錯誤，請增加此數字。  
預設：`5`

`crtLogLevel`  
（選用） AWS 一般執行期 (CRT) 程式庫的日誌層級。  
預設為 EMQX MQTT 代理程式日誌層級 (`log.level` 中的 `emqx`)。

`restartIdentifier`  
（選用） 設定此選項以重新啟動 EMQX MQTT 代理程式。當此組態值變更時，此元件會重新啟動 MQTT 代理程式。您可以使用此選項來強制用戶端裝置中斷連線。

`dockerOptions`  
（選用） 僅在 Linux 作業系統上設定此選項，將參數新增至 Docker 命令列。例如，若要映射其他連接埠，請使用 `-p` Docker 參數：  

```
"-p 1883:1883"
```

`mergeConfigurationFiles`  
（選用） 設定此選項以新增或覆寫指定 EMQX 組態檔案中的預設值。如需有關組態檔案及其格式的資訊，請參閱 *EMQX 4.0 文件*中的[組態](https://www.emqx.io/docs/en/v4.4/configuration/configuration.html)。您指定的值會附加到組態檔案。  
下列範例會更新 `etc/emqx.conf` 檔案。  

```
"mergeConfigurationFiles": {
    "etc/emqx.conf": "broker.sys_interval=30s\nbroker.sys_heartbeat=10s"
},
```
除了 EMQX 支援的組態檔案之外，Greengrass 還支援為名為 的 EMQX 設定 Greengrass 驗證外掛程式的檔案`etc/plugins/aws_greengrass_emqx_auth.conf`。支援兩種選項： `auth_mode`和 `use_greengrass_managed_certificates`。若要使用另一個身分驗證提供者，請將 `auth_mode`選項設定為下列其中一項：  
+ `enabled` – （預設） 使用 Greengrass 身分驗證和授權提供者。
+ `bypass_on_failure` – 如果 Greengrass 拒絕身分驗證或授權，請使用 Greengrass 身分驗證提供者，然後使用 EMQX 提供者鏈結中任何剩餘的身分驗證提供者。
+ `bypass` – Greengrass 提供者已停用。然後，EMQX 供應商鏈會處理身分驗證和授權。
如果 `use_greengrass_managed_certificates`是 `true`，此選項表示 Greengrass 管理代理程式 TLS 憑證。如果為 `false`，表示您透過另一個來源提供憑證。  
下列範例會更新`etc/plugins/aws_greengrass_emqx_auth.conf`組態檔案中的預設值。  

```
"mergeConfigurationFiles": {
    "etc/plugins/aws_greengrass_emqx_auth.conf": "auth_mode=enabled\n use_greengrass_managed_certificates=true\n"
  },
```
`aws.greengrass.clientdevices.mqtt.EMQX` 可讓您設定安全敏感選項。這些包括 TLS 設定、身分驗證和授權提供者。建議組態是使用交互 TLS 身分驗證和 Greengrass 用戶端裝置身分驗證提供者的預設組態。

`replaceConfigurationFiles`  
（選用） 設定此選項以取代指定的 EMQX 組態檔案。您指定的值會取代整個現有的組態檔案。您無法在本節中指定 `etc/emqx.conf` 檔案。您必須使用 `mergeConfigurationFile`來修改 `etc/emqx.conf`。

**Example 範例：組態合併更新**  
下列範例組態指定 在連接埠 443 上操作 MQTT 代理程式。  

```
{
  "emqx": {
    "listener.ssl.external": "443",
    "listener.ssl.external.max_connections": "1024000",
    "listener.ssl.external.max_conn_rate": "500",
    "listener.ssl.external.rate_limit": "50KB,5s",
    "listener.ssl.external.handshake_timeout": "15s",
    "log.level": "warning"
  },
  "requiresPrivilege": "true",
  "startupTimeoutSeconds": "90",
  "ipcTimeoutSeconds": "5"
}
```

------

## 本機日誌檔案
<a name="mqtt-broker-emqx-component-log-file"></a>

此元件使用以下日誌檔案。

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

```
/greengrass/v2/logs/aws.greengrass.clientdevices.mqtt.EMQX.log
```

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

```
C:\greengrass\v2\logs\aws.greengrass.clientdevices.mqtt.EMQX.log
```

------

**檢視此元件的日誌**
+ 在核心裝置上執行下列命令，以即時檢視此元件的日誌檔案。將 `/greengrass/v2`或 *C：\$1greengrass\$1v2* 取代為 AWS IoT Greengrass 根資料夾的路徑。

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

  ```
  sudo tail -f /greengrass/v2/logs/aws.greengrass.clientdevices.mqtt.EMQX.log
  ```

------
#### [ Windows (PowerShell) ]

  ```
  Get-Content C:\greengrass\v2\logs\aws.greengrass.clientdevices.mqtt.EMQX.log -Tail 10 -Wait
  ```

------

## 授權
<a name="mqtt-broker-emqx-component-licenses"></a>

在 Windows 作業系統上，本軟體包含根據 [Microsoft 軟體授權條款 - Microsoft Visual Studio Community 2022 ](https://visualstudio.microsoft.com/license-terms/vs2022-ga-community)分佈的程式碼。下載本軟體即表示您同意該程式碼的授權條款。

<a name="component-core-software-license"></a>此元件根據 [Greengrass 核心軟體授權合約](https://greengrass-release-license.s3.us-west-2.amazonaws.com/greengrass-license-v1.pdf)發行。

## 變更記錄
<a name="mqtt-broker-emqx-component-changelog"></a>

下表說明每個版本元件的變更。

------
#### [ v2.x ]


|  **版本**  |  **變更**  | 
| --- | --- | 
|  2.0.3  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/mqtt-broker-emqx-component.html)  | 
|  2.0.2  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/mqtt-broker-emqx-component.html)  | 
|  2.0.1  |  針對[用戶端裝置驗證](client-device-auth-component.md) 2.5.0 版更新版本。  | 
| 2.0.0 | 此版本的 MQTT 5 代理程式 (EMQX) 預期與 1.x 版不同的組態參數。如果您使用 1.x 版的非預設組態，則必須更新 2.x 的元件組態。如需詳細資訊，請參閱[Configuration](#mqtt-broker-emqx-component-configuration)。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/mqtt-broker-emqx-component.html) | 

------
#### [ v1.x ]


|  **版本**  |  **變更**  | 
| --- | --- | 
|  1.2.3  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/mqtt-broker-emqx-component.html)  | 
|  1.2.2  |  針對[用戶端裝置驗證](client-device-auth-component.md) 2.4.0 版更新版本。  | 
|  1.2.1  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/mqtt-broker-emqx-component.html)  | 
|  1.2.0  |  新增憑證鏈的支援。  | 
|  1.1.0  | <a name="changelog-emqx-1.1.0"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/mqtt-broker-emqx-component.html) | 
|  1.0.1  |  修正 TLS 交握期間導致某些 MQTT 用戶端無法連線的問題。  | 
|  1.0.0  |  初始版本。  | 

------

# Nucleus 遙測發射器
<a name="nucleus-emitter-component"></a>

核遙測發射器元件 (`aws.greengrass.telemetry.NucleusEmitter`) 會收集系統運作狀態遙測資料，並將其持續發佈至本機主題和 AWS IoT Core MQTT 主題。此元件可讓您在 Greengrass 核心裝置上收集即時系統遙測。如需將系統遙測資料發佈至 Amazon EventBridge 的 Greengrass 遙測代理程式相關資訊，請參閱 [從 AWS IoT Greengrass 核心裝置收集系統運作狀態遙測資料](telemetry.md)。

根據預設，核遙測發射器元件會每 60 秒將遙測資料發佈至下列本機發佈/訂閱主題。

```
$local/greengrass/telemetry
```

根據預設，核遙測發射器元件不會發佈至 AWS IoT Core MQTT 主題。您可以設定此元件在部署時發佈至 AWS IoT Core MQTT 主題。使用 MQTT 主題將資料發佈到 AWS 雲端 需受[AWS IoT Core 定價](https://aws.amazon.com/iot-core/pricing/)的限制。

<a name="greengrass-software-catalog-influxdb-telemetry-publisher"></a>AWS IoT Greengrass 提供多種[社群元件](greengrass-software-catalog.md)，可協助您使用 InfluxDB 和 Grafana 在本機核心裝置上分析和視覺化遙測資料。這些元件使用來自 核發射器元件的遙測資料。如需詳細資訊，請參閱 [InfluxDB 發佈者元件](https://github.com/awslabs/aws-greengrass-labs-telemetry-influxdbpublisher)的 README。

**Topics**
+ [版本](#nucleus-emitter-component-versions)
+ [類型](#nucleus-emitter-component-type)
+ [作業系統](#nucleus-emitter-component-os-support)
+ [相依性](#nucleus-emitter-component-dependencies)
+ [Configuration](#nucleus-emitter-component-configuration)
+ [輸出資料](#nucleus-emitter-component-output-data)
+ [用途](#nucleus-emitter-component-usage)
+ [本機日誌檔案](#nucleus-emitter-component-log-file)
+ [變更記錄](#nucleus-emitter-component-changelog)

## 版本
<a name="nucleus-emitter-component-versions"></a>

此元件具有下列版本：
+ 1.0.x

## 類型
<a name="nucleus-emitter-component-type"></a>

<a name="public-component-type-plugin-para1"></a>此元件是外掛程式元件 (`aws.greengrass.plugin`)。[Greengrass 核心](greengrass-nucleus-component.md)會在與核心相同的 Java 虛擬機器 (JVM) 中執行此元件。當您在核心裝置上變更此元件的版本時，核會重新啟動。

<a name="public-component-type-plugin-para2"></a>此元件使用與 Greengrass 核相同的日誌檔案。如需詳細資訊，請參閱[監控 AWS IoT Greengrass 日誌](monitor-logs.md)。

<a name="public-component-type-more-information"></a>如需詳細資訊，請參閱[元件類型](develop-greengrass-components.md#component-types)。

## 作業系統
<a name="nucleus-emitter-component-os-support"></a>

此元件可以安裝在執行下列作業系統的核心裝置上：
+ Linux
+ Windows

## 相依性
<a name="nucleus-emitter-component-dependencies"></a>

當您部署元件時， AWS IoT Greengrass 也會部署其相依性的相容版本。這表示您必須符合元件及其所有相依性的要求，才能成功部署元件。本節列出此元件[發行版本的](#nucleus-emitter-component-changelog)相依性，以及為每個相依性定義元件版本的語意版本限制。您也可以在 [AWS IoT Greengrass 主控台](https://console.aws.amazon.com//greengrass)中檢視每個版本元件的相依性。在元件詳細資訊頁面上，尋找**相依性**清單。

------
#### [ 1.0.12 ]

下表列出此元件 1.0.12 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.4.0 <2.17.0 | 軟式 | 

------
#### [ 1.0.11 ]

下表列出此元件 1.0.11 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) |  >=2.4.0 <2.16.0  | 硬式 | 

------
#### [ 1.0.10 ]

下表列出此元件 1.0.10 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) |  >=2.4.0 <2.15.0  | 硬式 | 

------
#### [ 1.0.9 ]

下表列出此元件 1.0.9 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) |  >=2.4.0 <2.14.0  | 硬式 | 

------
#### [ 1.0.8 ]

下表列出此元件 1.0.8 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) |  >=2.4.0 <2.13.0  | 硬式 | 

------
#### [ 1.0.7 ]

下表列出此元件 1.0.7 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) |  >=2.4.0 <2.12.0  | 硬式 | 

------
#### [ 1.0.6 ]

下表列出此元件 1.0.6 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) |  >=2.4.0 <2.11.0  | 硬式 | 

------
#### [ 1.0.5 ]

下表列出此元件 1.0.5 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) |  >=2.4.0 <2.10.0  | 硬式 | 

------
#### [ 1.0.4 ]

下表列出此元件 1.0.4 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) |  >=2.4.0 <2.9.0  | 硬式 | 

------
#### [ 1.0.3 ]

下表列出此元件 1.0.3 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) |  >=2.4.0 <2.8.0  | 硬式 | 

------
#### [ 1.0.2 ]

下表列出此元件 1.0.2 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) |  >=2.4.0 <2.7.0  | 硬式 | 

------
#### [ 1.0.1 ]

下表列出此元件 1.0.1 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) |  >=2.4.0 <2.6.0  | 硬式 | 

------
#### [ 1.0.0 ]

下表列出此元件 1.0.0 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) |  >=2.4.0 <2.5.0  | 硬式 | 

------

如需元件相依性的詳細資訊，請參閱[元件配方參考](component-recipe-reference.md#recipe-reference-component-dependencies)。

## Configuration
<a name="nucleus-emitter-component-configuration"></a>

此元件提供下列組態參數，您可以在部署元件時自訂這些參數。

`pubSubPublish`  
（選用） 定義是否要將遙測資料發佈至`$local/greengrass/telemetry`主題。支援的值為 `true` 和 `false`。  
預設：`true`

`mqttTopic`  
（選用） 此元件發佈遙測資料的 AWS IoT Core MQTT 主題。  
將此值設定為您要發佈遙測資料的 AWS IoT Core MQTT 主題。當此值為空時，核發射器不會將遙測資料發佈至 AWS 雲端。  
使用 MQTT 主題將資料發佈到 AWS 雲端 需受[AWS IoT Core 定價](https://aws.amazon.com/iot-core/pricing/)的限制。
預設：`""`

`telemetryPublishIntervalMs`  
（選用） 元件發佈遙測資料的時間量 （以毫秒為單位）。如果您將此值設定為低於支援的最小值，則元件會改用最小值。  
較低的發佈間隔會導致核心裝置上的 CPU 使用量提高。我們建議您從預設發佈間隔開始，並根據裝置的 CPU 用量進行調整。
下限：`500`  
預設：`60000`

**Example 範例：組態合併更新**  
下列範例顯示範例組態合併更新，允許每 5 秒將遙測資料發佈至 `$local/greengrass/telemetry` 主題和 `greengrass/myTelemetry` AWS IoT Core MQTT 主題。  

```
{
  "pubSubPublish": "true",
  "mqttTopic": "greengrass/myTelemetry",
  "telemetryPublishIntervalMs": 5000
}
```

## 輸出資料
<a name="nucleus-emitter-component-output-data"></a>

此元件會將遙測指標發佈為下列主題的 JSON 陣列。

**本機主題：** `$local/greengrass/telemetry`

您也可以選擇將遙測指標發佈至 AWS IoT Core MQTT 主題。如需主題的詳細資訊，請參閱《 *AWS IoT Core 開發人員指南*》中的 [MQTT 主題](https://docs.aws.amazon.com/iot/latest/developerguide/topics.html)。

**Example 範例資料**  

```
[
  {
    "A": "Average",
    "N": "CpuUsage",
    "NS": "SystemMetrics",
    "TS": 1627597331445,
    "U": "Percent",
    "V": 26.21981271562346
  },
  {
    "A": "Count",
    "N": "TotalNumberOfFDs",
    "NS": "SystemMetrics",
    "TS": 1627597331445,
    "U": "Count",
    "V": 7316
  },
  {
    "A": "Count",
    "N": "SystemMemUsage",
    "NS": "SystemMetrics",
    "TS": 1627597331445,
    "U": "Megabytes",
    "V": 10098
  },
  {
    "A": "Count",
    "N": "NumberOfComponentsStarting",
    "NS": "GreengrassComponents",
    "TS": 1627597331446,
    "U": "Count",
    "V": 0
  },
  {
    "A": "Count",
    "N": "NumberOfComponentsInstalled",
    "NS": "GreengrassComponents",
    "TS": 1627597331446,
    "U": "Count",
    "V": 0
  },
  {
    "A": "Count",
    "N": "NumberOfComponentsStateless",
    "NS": "GreengrassComponents",
    "TS": 1627597331446,
    "U": "Count",
    "V": 0
  },
  {
    "A": "Count",
    "N": "NumberOfComponentsStopping",
    "NS": "GreengrassComponents",
    "TS": 1627597331446,
    "U": "Count",
    "V": 0
  },
  {
    "A": "Count",
    "N": "NumberOfComponentsBroken",
    "NS": "GreengrassComponents",
    "TS": 1627597331446,
    "U": "Count",
    "V": 0
  },
  {
    "A": "Count",
    "N": "NumberOfComponentsRunning",
    "NS": "GreengrassComponents",
    "TS": 1627597331446,
    "U": "Count",
    "V": 7
  },
  {
    "A": "Count",
    "N": "NumberOfComponentsErrored",
    "NS": "GreengrassComponents",
    "TS": 1627597331446,
    "U": "Count",
    "V": 0
  },
  {
    "A": "Count",
    "N": "NumberOfComponentsNew",
    "NS": "GreengrassComponents",
    "TS": 1627597331446,
    "U": "Count",
    "V": 0
  },
  {
    "A": "Count",
    "N": "NumberOfComponentsFinished",
    "NS": "GreengrassComponents",
    "TS": 1627597331446,
    "U": "Count",
    "V": 2
  }
]
```<a name="telemetry-json-array-config"></a>

輸出陣列包含具有下列屬性的指標清單：

`A`  
指標的彙總類型。  
對於 `CpuUsage` 指標，此屬性設定為 ，`Average`因為指標的發佈值是自上次發佈事件以來的平均 CPU 用量。  
對於所有其他指標，核發射器不會彙總指標值，且此屬性設定為 `Count`。

`N`  
指標的名稱

`NS`  
指標命名空間。

`TS`  
收集資料時的時間戳記。

`U`  
指標值的單位。

`V`  
 指標值。

核發射器會發佈下列指標：


| 名稱 | 描述 | 
| --- | --- | 
|  **系統**  | 
|  `SystemMemUsage`  |  Greengrass 核心裝置上所有應用程式目前使用的記憶體數量，包括作業系統。  | 
|  `CpuUsage`  |  Greengrass 核心裝置上所有應用程式目前使用的 CPU 數量，包括作業系統。  | 
|  `TotalNumberOfFDs`  |  Greengrass 核心裝置的作業系統存放的檔案描述項數量。一個檔案描述項可唯一識別一個開啟的檔案。  | 
|  **Greengrass 核**  | 
|  `NumberOfComponentsRunning`  |  在 Greengrass 核心裝置上執行的元件數量。  | 
|  `NumberOfComponentsErrored`  |  Greengrass 核心裝置上處於錯誤狀態的元件數量。  | 
|  `NumberOfComponentsInstalled`  |  安裝在 Greengrass 核心裝置上的元件數量。  | 
|  `NumberOfComponentsStarting`  |  在 Greengrass 核心裝置上啟動的元件數量。  | 
|  `NumberOfComponentsNew`  |  Greengrass 核心裝置上新增的元件數量。  | 
|  `NumberOfComponentsStopping`  |  在 Greengrass 核心裝置上停止的元件數量。  | 
|  `NumberOfComponentsFinished`  |  Greengrass 核心裝置上完成的元件數量。  | 
|  `NumberOfComponentsBroken`  |  Greengrass 核心裝置上損壞的元件數量。  | 
|  `NumberOfComponentsStateless`  |  Greengrass 核心裝置上無狀態的元件數量。  | 

## 用途
<a name="nucleus-emitter-component-usage"></a>

若要使用系統運作狀態遙測資料，您可以建立自訂元件，以訂閱核心發射器發佈遙測資料的主題，並視需要對該資料做出反應。由於核發射器元件提供將遙測資料發佈至本機主題的選項，因此您可以訂閱該主題，並使用已發佈的資料在核心裝置上於本機採取行動。然後，即使核心裝置與雲端的連線能力有限，也可以對遙測資料做出反應。

例如，您可以設定監聽遙測資料`$local/greengrass/telemetry`主題的元件，並將資料傳送至串流管理員元件，以將資料串流至 AWS 雲端。如需建立此類元件的詳細資訊，請參閱 [發佈/訂閱本機訊息](ipc-publish-subscribe.md)和 [建立使用串流管理員的自訂元件](use-stream-manager-in-custom-components.md)。

## 本機日誌檔案
<a name="nucleus-emitter-component-log-file"></a>

此元件使用與 [Greengrass 核](greengrass-nucleus-component.md)元件相同的日誌檔案。

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

```
/greengrass/v2/logs/greengrass.log
```

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

```
C:\greengrass\v2\logs\greengrass.log
```

------

**檢視此元件的日誌**
+ 在核心裝置上執行下列命令，以即時檢視此元件的日誌檔案。將 `/greengrass/v2`或 *C：\$1greengrass\$1v2* 取代為 AWS IoT Greengrass 根資料夾的路徑。

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

  ```
  sudo tail -f /greengrass/v2/logs/greengrass.log
  ```

------
#### [ Windows (PowerShell) ]

  ```
  Get-Content C:\greengrass\v2\logs\greengrass.log -Tail 10 -Wait
  ```

------

## 變更記錄
<a name="nucleus-emitter-component-changelog"></a>

下表說明每個版本元件的變更。


|  **版本**  |  **變更**  | 
| --- | --- | 
|  1.0.12  |  針對 Greengrass nucleus 2.16.0 版更新版本。  | 
|  1.0.11  | 針對 Greengrass nucleus 2.15.0 版更新版本。 | 
|  1.0.10  | 針對 Greengrass nucleus 2.14.0 版更新版本。 | 
|  1.0.9  | 針對 Greengrass nucleus 2.13.0 版更新版本。 | 
|  1.0.8  | 針對 Greengrass nucleus 2.12.0 版更新版本。 | 
|  1.0.7  | 針對 Greengrass nucleus 2.11.0 版更新版本。 | 
|  1.0.6  | 針對 Greengrass nucleus 2.10.0 版更新版本。 | 
|  1.0.5  | 針對 Greengrass nucleus 2.9.0 版更新版本。 | 
|  1.0.4  | 針對 Greengrass nucleus 2.8.0 版更新版本。 | 
|  1.0.3  |  針對 Greengrass nucleus 2.7.0 版更新版本。  | 
|  1.0.2  |  針對 Greengrass nucleus 2.6.0 版更新版本。  | 
|  1.0.1  |  針對 Greengrass nucleus 2.5.0 版更新版本。  | 
|  1.0.0  |  初始版本。  | 

# PKCS\$111 供應商
<a name="pkcs11-provider-component"></a>

PKCS\$111 提供者元件 (`aws.greengrass.crypto.Pkcs11Provider`) 可讓您設定 AWS IoT Greengrass Core 軟體，以透過 [PKCS\$111 介面](https://en.wikipedia.org/wiki/PKCS_11)使用硬體安全模組 (HSM)。此元件可讓您安全地存放憑證和私有金鑰檔案，使其不會在軟體中公開或複製。如需詳細資訊，請參閱[硬體安全整合](hardware-security.md)。

若要佈建將其憑證和私有金鑰存放在 HSM 中的 Greengrass 核心裝置，您必須在安裝 AWS IoT Greengrass Core 軟體時將此元件指定為佈建外掛程式。如需詳細資訊，請參閱[使用手動資源佈建安裝 AWS IoT Greengrass 核心軟體](manual-installation.md)。

AWS IoT Greengrass 提供此元件做為 JAR 檔案，您可以在安裝期間下載此檔案以指定 做為佈建外掛程式。您可以將元件 JAR 檔案的最新版本下載為下列 URL：https：//[https://d2s8p88vqu9w66.cloudfront.net/releases/Pkcs11Provider/aws.greengrass.crypto.Pkcs11Provider-latest.jar](https://d2s8p88vqu9w66.cloudfront.net/releases/Pkcs11Provider/aws.greengrass.crypto.Pkcs11Provider-latest.jar)。

**Topics**
+ [版本](#pkcs11-provider-component-versions)
+ [類型](#pkcs11-provider-component-type)
+ [作業系統](#pkcs11-provider-component-os-support)
+ [要求](#pkcs11-provider-component-requirements)
+ [相依性](#pkcs11-provider-component-dependencies)
+ [Configuration](#pkcs11-provider-component-configuration)
+ [本機日誌檔案](#pkcs11-provider-component-log-file)
+ [變更記錄](#pkcs11-provider-component-changelog)

## 版本
<a name="pkcs11-provider-component-versions"></a>

此元件具有下列版本：
+ 2.0.x

## 類型
<a name="pkcs11-provider-component-type"></a>

<a name="public-component-type-plugin-para1"></a>此元件是外掛程式元件 (`aws.greengrass.plugin`)。[Greengrass 核心](greengrass-nucleus-component.md)會在與核心相同的 Java 虛擬機器 (JVM) 中執行此元件。當您在核心裝置上變更此元件的版本時，核心會重新啟動。

<a name="public-component-type-plugin-para2"></a>此元件使用與 Greengrass 核相同的日誌檔案。如需詳細資訊，請參閱[監控 AWS IoT Greengrass 日誌](monitor-logs.md)。

<a name="public-component-type-more-information"></a>如需詳細資訊，請參閱[元件類型](develop-greengrass-components.md#component-types)。

## 作業系統
<a name="pkcs11-provider-component-os-support"></a>

此元件只能在 Linux 核心裝置上安裝。

## 要求
<a name="pkcs11-provider-component-requirements"></a>

此元件有下列需求：
+ <a name="hardware-security-module-requirements-key"></a>支援 [PKCS\$11 v1.5 ](https://tools.ietf.org/html/rfc2313)簽章結構描述和具有 RSA-2048 金鑰大小 （或更大） 或 ECC 金鑰的 RSA 金鑰的硬體安全模組。
**注意**  <a name="hardware-security-module-requirements-key-notes"></a>
若要搭配 ECC 金鑰使用硬體安全模組，您必須使用 [Greengrass nucleus](greengrass-nucleus-component.md) v2.5.6 或更新版本。  
若要使用硬體安全模組和[秘密管理員](secret-manager-component.md)，您必須搭配 RSA 金鑰使用硬體安全模組。
+ <a name="hardware-security-module-requirements-pkcs11-provider-library"></a> AWS IoT Greengrass 核心軟體可在執行時間 （使用 libdl) 載入的 PKCS\$111 提供者程式庫，以叫用 PKCS\$111 函數。PKCS\$111 提供者程式庫必須實作下列 PKCS\$111 API 操作：
  + `C_Initialize`
  + `C_Finalize`
  + `C_GetSlotList`
  + `C_GetSlotInfo`
  + `C_GetTokenInfo`
  + `C_OpenSession`
  + `C_GetSessionInfo`
  + `C_CloseSession`
  + `C_Login`
  + `C_Logout`
  + `C_GetAttributeValue`
  + `C_FindObjectsInit`
  + `C_FindObjects`
  + `C_FindObjectsFinal`
  + `C_DecryptInit`
  + `C_Decrypt`
  + `C_DecryptUpdate`
  + `C_DecryptFinal`
  + `C_SignInit`
  + `C_Sign`
  + `C_SignUpdate`
  + `C_SignFinal`
  + `C_GetMechanismList`
  + `C_GetMechanismInfo`
  + `C_GetInfo`
  + `C_GetFunctionList`
+ <a name="hardware-security-module-requirements-slot-label"></a>硬體模組必須可透過插槽標籤根據 PKCS\$111 規格中的定義來解析。
+ <a name="hardware-security-module-requirements-private-key-and-certificate"></a>您必須將私有金鑰和憑證存放在相同插槽的 HSM 中，如果 HSM 支援物件 ID，則必須使用相同的物件標籤和物件 IDs。
+ <a name="hardware-security-module-requirements-object-label"></a>憑證和私有金鑰必須透過物件標籤解析。
+ <a name="hardware-security-module-requirements-private-key-permissions"></a>私有金鑰必須具有下列許可：
  + `sign`
  + `decrypt`
+ <a name="hardware-security-module-requirements-secret-manager-permissions"></a>（選用） 若要使用[秘密管理員元件](secret-manager-component.md)，您必須使用 2.1.0 版或更新版本，且私有金鑰必須具有下列許可：
  + `unwrap`
  + `wrap`
+ <a name="hardware-security-module-requirements-environment-variable"></a>（選用） 如果您使用 TPM2 程式庫並執行 Greengrass 核心做為服務，則必須提供具有 PKCS\$111 存放區位置的環境變數。下列範例是具有必要環境變數的系統化服務檔案：

  ```
  [Unit]
  Description=Greengrass Core
  After=network.target
  
  [Service]
  Type=simple
  PIDFile=/var/run/greengrass.pid
  Environment=TPM2_PKCS11_STORE=/path/to/store/directory
  RemainAfterExit=no
  Restart=on-failure
  RestartSec=10
  ExecStart=/bin/sh /greengrass/v2/alts/current/distro/bin/loader
  
  [Install]
  WantedBy=multi-user.target
  ```

## 相依性
<a name="pkcs11-provider-component-dependencies"></a>

當您部署元件時， AWS IoT Greengrass 也會部署其相依性的相容版本。這表示您必須符合元件及其所有相依性的要求，才能成功部署元件。本節列出此元件[發行版本的](#pkcs11-provider-component-changelog)相依性，以及為每個相依性定義元件版本的語意版本限制。您也可以在 [AWS IoT Greengrass 主控台](https://console.aws.amazon.com//greengrass)中檢視每個版本元件的相依性。在元件詳細資訊頁面上，尋找**相依性**清單。

------
#### [ 2.0.11 ]

下表列出此元件 2.0.11 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.5.3 <2.17.0 | 軟式 | 

------
#### [ 2.0.10 ]

下表列出此元件 2.0.10 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.5.3 <2.16.0  | 軟式 | 

------
#### [ 2.0.9 ]

下表列出此元件 2.0.9 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.5.3 <2.15.0  | 軟式 | 

------
#### [ 2.0.8 ]

下表列出此元件 2.0.8 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.5.3 <2.14.0  | 軟式 | 

------
#### [ 2.0.7 ]

下表列出此元件 2.0.7 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.5.3 <2.13.0  | 軟式 | 

------
#### [ 2.0.6 ]

下表列出此元件 2.0.6 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.5.3 <2.12.0  | 軟式 | 

------
#### [ 2.0.5 ]

下表列出此元件 2.0.5 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.5.3 <2.11.0  | 軟式 | 

------
#### [ 2.0.4 ]

下表列出此元件 2.0.4 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.5.3 <2.10.0  | 軟式 | 

------
#### [ 2.0.3 ]

下表列出此元件 2.0.3 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.5.3 <2.9.0  | 軟式 | 

------
#### [ 2.0.2 ]

下表列出此元件 2.0.2 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.5.3 <2.8.0  | 軟式 | 

------
#### [ 2.0.1 ]

下表列出此元件 2.0.1 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) |  >=2.5.3 <2.7.0  | 軟式 | 

------
#### [ 2.0.0 ]

下表列出此元件 2.0.0 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) |  >=2.5.3 <2.6.0  | 軟式 | 

------

如需元件相依性的詳細資訊，請參閱[元件配方參考](component-recipe-reference.md#recipe-reference-component-dependencies)。

## Configuration
<a name="pkcs11-provider-component-configuration"></a>

此元件提供下列組態參數，您可以在部署元件時自訂這些參數。<a name="pkcs11-provider-component-configuration-parameters"></a>

`name`  
PKCS\$111 組態的名稱。

`library`  
 AWS IoT Greengrass 核心軟體可以使用 libdl 載入之 PKCS\$111 實作程式庫的絕對檔案路徑。

`slot`  
包含私有金鑰和裝置憑證的插槽 ID。此值與槽索引或槽標籤不同。

`userPin`  
用來存取插槽的使用者 PIN 碼。

**Example 範例：組態合併更新**  

```
{
  "name": "softhsm_pkcs11",
  "library": "/usr/lib/softhsm/libsofthsm2.so",
  "slot": 1,
  "userPin": "1234"
}
```

## 本機日誌檔案
<a name="pkcs11-provider-component-log-file"></a>

此元件使用與 [Greengrass 核](greengrass-nucleus-component.md)元件相同的日誌檔案。

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

```
/greengrass/v2/logs/greengrass.log
```

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

```
C:\greengrass\v2\logs\greengrass.log
```

------

**檢視此元件的日誌**
+ 在核心裝置上執行下列命令，以即時檢視此元件的日誌檔案。將 `/greengrass/v2`或 *C：\$1greengrass\$1v2* 取代為 AWS IoT Greengrass 根資料夾的路徑。

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

  ```
  sudo tail -f /greengrass/v2/logs/greengrass.log
  ```

------
#### [ Windows (PowerShell) ]

  ```
  Get-Content C:\greengrass\v2\logs\greengrass.log -Tail 10 -Wait
  ```

------

## 變更記錄
<a name="pkcs11-provider-component-changelog"></a>

下表說明每個版本元件的變更。


|  **版本**  |  **變更**  | 
| --- | --- | 
|  2.0.11  |  針對 Greengrass nucleus 2.16.0 版更新版本。  | 
|  2.0.10  | 針對 Greengrass nucleus 2.15.0 版更新版本。 | 
|  2.0.9  | 針對 Greengrass nucleus 2.14.0 版更新版本。 | 
|  2.0.8  | 針對 Greengrass nucleus 2.13.0 版更新版本。 | 
|  2.0.7  | 針對 Greengrass nucleus 2.12.0 版更新版本。 | 
|  2.0.6  | 針對 Greengrass nucleus 2.11.0 版更新版本。 | 
|  2.0.5  | 針對 Greengrass nucleus 2.10.0 版更新版本。 | 
|  2.0.4  | 針對 Greengrass nucleus 2.9.0 版更新版本。 | 
|  2.0.3  | 針對 Greengrass nucleus 2.8.0 版更新版本。 | 
|  2.0.2  |  針對 Greengrass nucleus 2.7.0 版更新版本。  | 
|  2.0.1  |  針對 Greengrass nucleus 2.6.0 版更新版本。  | 
|  2.0.0  |  初始版本。  | 

# 秘密管理員
<a name="secret-manager-component"></a>

秘密管理員元件 (`aws.greengrass.SecretManager`) 會將秘密從 AWS Secrets Manager 部署到 Greengrass 核心裝置。使用此元件可在 Greengrass 核心裝置上的自訂元件中安全地使用登入資料，例如密碼。如需 Secrets Manager 的詳細資訊，請參閱*AWS Secrets Manager 《 使用者指南*》中的[什麼是 AWS Secrets Manager？](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html)。

若要在自訂 Greengrass 元件中存取此元件的秘密，請使用 中的 [GetSecretValue](ipc-secret-manager.md#ipc-operation-getsecretvalue) 操作 AWS IoT Device SDK。如需詳細資訊，請參閱[使用 AWS IoT Device SDK 與 Greengrass 核、其他元件和 通訊 AWS IoT Core與 Greengrass 核、其他元件和 通訊 AWS IoT Core](interprocess-communication.md)及[擷取秘密值](ipc-secret-manager.md)。

此元件會加密核心裝置上的秘密，以保護您的登入資料和密碼，直到您需要使用為止。它使用核心裝置的私有金鑰來加密和解密秘密。

**Topics**
+ [版本](#secret-manager-component-versions)
+ [Type](#secret-manager-component-type)
+ [作業系統](#secret-manager-component-os-support)
+ [要求](#secret-manager-component-requirements)
+ [相依性](#secret-manager-component-dependencies)
+ [Configuration](#secret-manager-component-configuration)
+ [本機日誌檔案](#secret-manager-component-log-file)
+ [變更記錄](#secret-manager-component-changelog)

## 版本
<a name="secret-manager-component-versions"></a>

此元件具有下列版本：
+ 2.2.x 版本
+ 2.1.x
+ 2.0.x

## Type
<a name="secret-manager-component-type"></a>

<a name="public-component-type-plugin-para1"></a>此元件是外掛程式元件 (`aws.greengrass.plugin`)。[Greengrass 核心](greengrass-nucleus-component.md)會在與核心相同的 Java 虛擬機器 (JVM) 中執行此元件。當您在核心裝置上變更此元件的版本時，核心會重新啟動。

<a name="public-component-type-plugin-para2"></a>此元件使用與 Greengrass 核相同的日誌檔案。如需詳細資訊，請參閱[監控 AWS IoT Greengrass 日誌](monitor-logs.md)。

<a name="public-component-type-more-information"></a>如需詳細資訊，請參閱[元件類型](develop-greengrass-components.md#component-types)。

## 作業系統
<a name="secret-manager-component-os-support"></a>

此元件可以安裝在執行下列作業系統的核心裝置上：
+ Linux
+ Windows

## 要求
<a name="secret-manager-component-requirements"></a>

此元件有下列需求：
+ [Greengrass 裝置角色](device-service-role.md)必須允許 `secretsmanager:GetSecretValue`動作，如下列範例 IAM 政策所示。

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

****  

  ```
  {
    "Version":"2012-10-17",		 	 	 
    "Statement": [
      {
        "Action": [
          "secretsmanager:GetSecretValue"
        ],
        "Effect": "Allow",
        "Resource": [
        "arn:aws:secretsmanager:us-east-1:123456789012:secret:MySecret"
        ]
      }
    ]
  }
  ```

------

  ```
  ```
**注意**  
如果您使用客戶受管 AWS Key Management Service 金鑰來加密秘密，裝置角色也必須允許 `kms:Decrypt`動作。

  如需 Secrets Manager IAM 政策的詳細資訊，請參閱*AWS Secrets Manager 《 使用者指南*》中的下列內容：
  + [的身分驗證和存取控制 AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html)
  + [您可以在 IAM 政策或 的秘密政策中使用的動作、資源和內容金鑰 AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_iam-permissions.html)
+ 自訂元件必須定義授權政策，`aws.greengrass#GetSecretValue`允許 取得您與此元件一起存放的秘密。在此授權政策中，您可以限制元件對特定秘密的存取。如需詳細資訊，請參閱[秘密管理員 IPC 授權](ipc-secret-manager.md#ipc-secret-manager-authorization)。
+ （選用） 如果您將核心裝置的私有金鑰和憑證存放在[硬體安全模組](hardware-security.md) (HSM) 中，HSM 必須支援 RSA 金鑰，私有金鑰必須具有 `unwrap`許可，而公有金鑰必須具有 `wrap`許可。

### 端點和連接埠
<a name="secret-manager-component-endpoints"></a>

除了基本操作所需的端點和連接埠之外，此元件還必須能夠對下列端點和連接埠執行傳出請求。如需詳細資訊，請參閱[允許透過代理或防火牆的裝置流量](allow-device-traffic.md)。


| Endpoint | 站點 | 必要 | Description | 
| --- | --- | --- | --- | 
|  `secretsmanager.region.amazonaws.com`  | 443 | 是 |  將秘密下載至核心裝置。  | 

## 相依性
<a name="secret-manager-component-dependencies"></a>

當您部署元件時， AWS IoT Greengrass 也會部署其相依性的相容版本。這表示您必須符合元件及其所有相依性的要求，才能成功部署元件。本節列出此元件[發行版本的](#secret-manager-component-changelog)相依性，以及為每個相依性定義元件版本的語意版本限制。您也可以在 [AWS IoT Greengrass 主控台](https://console.aws.amazon.com//greengrass)中檢視每個版本元件的相依性。在元件詳細資訊頁面上，尋找**相依性**清單。

------
#### [ 2.2.7 ]

下表列出此元件 2.2.7 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.5.0 <2.17.0 | 軟式 | 

------
#### [ 2.2.6 ]

下表列出此元件 2.2.6 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.5.0 <2.16.0 | 軟式 | 

------
#### [ 2.2.2 – 2.2.5 ]

下表列出此元件 2.2.2 到 2.2.5 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.5.0 <2.15.0 | 軟式 | 

------
#### [ 2.2.0 ]

下表列出此元件 2.2.0 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.13.0 <2.14.0 | 軟式 | 

------
#### [ 2.1.7 – 2.1.8 ]

下表列出此元件 2.1.7 和 2.1.8 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.5.0 <2.13.0 | 軟式 | 

------
#### [ 2.1.6 ]

下表列出此元件 2.1.6 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.5.0 <2.12.0 | 軟式 | 

------
#### [ 2.1.5 ]

下表列出此元件 2.1.5 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.5.0 <2.11.0 | 軟式 | 

------
#### [ 2.1.4 ]

下表列出此元件 2.1.4 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.5.0 <2.10.0 | 軟式 | 

------
#### [ 2.1.3 ]

下表列出此元件 2.1.3 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.5.0 <2.9.0 | 軟式 | 

------
#### [ 2.1.2 ]

下表列出此元件 2.1.2 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.5.0 <2.8.0 | 軟式 | 

------
#### [ 2.1.1 ]

下表列出此元件 2.1.1 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.5.0 <2.7.0 | 軟式 | 

------
#### [ 2.1.0 ]

下表列出此元件 2.1.0 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.5.0 <2.6.0 | 軟式 | 

------
#### [ 2.0.9 ]

下表列出此元件 2.0.9 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) |  >=2.0.0 <2.5.0  | 軟式 | 

------
#### [ 2.0.8 ]

下表列出此元件 2.0.8 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) |  >=2.0.0 <2.4.0  | 軟式 | 

------
#### [ 2.0.7 ]

下表列出此元件 2.0.7 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) |  >=2.0.0 <2.3.0  | 軟式 | 

------
#### [ 2.0.6 ]

下表列出此元件 2.0.6 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) |  >=2.0.0 <2.2.0  | 軟式 | 

------
#### [ 2.0.4 and 2.0.5 ]

下表列出此元件 2.0.4 和 2.0.5 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) |  >=2.0.3 <2.1.0  | 軟式 | 

------

如需元件相依性的詳細資訊，請參閱[元件配方參考](component-recipe-reference.md#recipe-reference-component-dependencies)。

## Configuration
<a name="secret-manager-component-configuration"></a>

此元件提供下列組態參數，您可以在部署元件時自訂這些參數。

`periodicRefreshIntervalMin` (選用)  
此元件會將核心裝置上的已設定秘密與 AWS Secrets Manager 來自服務的最新秘密值同步的間隔，以分鐘為單位。如果未設定此間隔，秘密管理員不會定期重新整理設定的秘密。  

```
{
  "cloudSecrets": [
    {
      "arn": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyGreengrassSecret-abcdef"
    }
  ],
  "periodicRefreshIntervalMin" : 60
}
```

`cloudSecrets`  
要部署至核心裝置的 Secrets Manager 秘密清單。您可以指定標籤來定義要部署的每個秘密版本。如果您未指定版本，此元件會部署`AWSCURRENT`附加預備標籤的版本。如需詳細資訊，請參閱*AWS Secrets Manager 《 使用者指南*》中的[預備標籤](https://docs.aws.amazon.com/secretsmanager/latest/userguide/terms-concepts.html#term_staging-label)。  
秘密管理員元件會在本機快取秘密。如果秘密值在 Secrets Manager 中變更，此元件不會自動擷取新值。若要更新本機複本，請將新標籤提供給秘密，並設定此元件以擷取由新標籤識別的秘密。  
每個物件都包含下列資訊：    
`arn`  
要部署之秘密的 ARN。秘密的 ARN 可以是完整 ARN 或部分 ARN。我們建議您指定完整的 ARN，而不是部分 ARN。如需詳細資訊，請參閱[從部分 ARN 尋找秘密](https://docs.aws.amazon.com/secretsmanager/latest/userguide/troubleshoot.html#ARN_secretnamehyphen)。以下是完整 ARN 和部分 ARN 的範例：  
+ 完整 ARN： `arn:aws:secretsmanager:us-east-2:111122223333:secret:SecretName-abcdef`
+ 部分 ARN： `arn:aws:secretsmanager:us-east-2:111122223333:secret:SecretName`  
`labels`  
（選用） 標籤清單，用於識別要部署至核心裝置的秘密版本。  
每個標籤必須是字串。

**Example 範例：組態合併更新**  

```
{
  "cloudSecrets": [
    {
      "arn": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyGreengrassSecret-abcdef"
    }
  ]
}
```

## 本機日誌檔案
<a name="secret-manager-component-log-file"></a>

此元件使用與 [Greengrass 核](greengrass-nucleus-component.md)元件相同的日誌檔案。

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

```
/greengrass/v2/logs/greengrass.log
```

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

```
C:\greengrass\v2\logs\greengrass.log
```

------

**檢視此元件的日誌**
+ 在核心裝置上執行下列命令，以即時檢視此元件的日誌檔案。將 `/greengrass/v2`或 *C：\$1greengrass\$1v2* 取代為 AWS IoT Greengrass 根資料夾的路徑。

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

  ```
  sudo tail -f /greengrass/v2/logs/greengrass.log
  ```

------
#### [ Windows (PowerShell) ]

  ```
  Get-Content C:\greengrass\v2\logs\greengrass.log -Tail 10 -Wait
  ```

------

## 變更記錄
<a name="secret-manager-component-changelog"></a>

下表說明每個版本元件的變更。


|  **版本**  |  **變更**  | 
| --- | --- | 
|  2.2.7  |  針對 Greengrass nucleus 2.16.0 版更新版本。  | 
|  2.2.6  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/secret-manager-component.html)  | 
|  2.2.5  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/secret-manager-component.html)  | 
|  2.2.4  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/secret-manager-component.html)  | 
|  2.2.3  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/secret-manager-component.html)  | 
|  2.2.2  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/secret-manager-component.html)  | 
|  2.2.1  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/secret-manager-component.html)  | 
|  2.2.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/secret-manager-component.html)  | 
|  2.1.8  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/secret-manager-component.html)  | 
|  2.1.7  | 針對 Greengrass nucleus 2.12.0 版更新版本。 | 
|  2.1.6  | 針對 Greengrass nucleus 2.11.0 版更新版本。 | 
|  2.1.5  | 針對 Greengrass nucleus 2.10.0 版更新版本。 | 
|  2.1.4  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/secret-manager-component.html)  | 
|  2.1.3  | 針對 Greengrass nucleus 2.8.0 版更新版本。 | 
|  2.1.2  |  針對 Greengrass nucleus 2.7.0 版更新版本。  | 
|  2.1.1  |  針對 Greengrass nucleus 2.6.0 版更新版本。  | 
|  2.1.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/secret-manager-component.html)  | 
|  2.0.9  |  針對 Greengrass nucleus 2.4.0 版更新版本。  | 
|  2.0.8  |  針對 Greengrass nucleus 2.3.0 版更新版本。  | 
|  2.0.7  |  針對 Greengrass nucleus 2.2.0 版更新版本。  | 
|  2.0.6  |  針對 Greengrass nucleus 2.1.0 版更新版本。  | 
|  2.0.5  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/secret-manager-component.html)  | 
|  2.0.4  |  初始版本。  | 

# 安全通道
<a name="secure-tunneling-component"></a>

透過 `aws.greengrass.SecureTunneling`元件，您可以與位於受限防火牆後方的 Greengrass 核心裝置建立安全的雙向通訊。

例如，假設您在防火牆後方有一個 Greengrass 核心裝置，禁止所有傳入連線。安全通道使用 MQTT 將存取字符傳輸至裝置，然後使用 WebSockets 透過防火牆與裝置進行 SSH 連線。使用此 AWS IoT 受管通道，您可以開啟裝置所需的 SSH 連線。如需使用 AWS IoT 安全通道連線至遠端裝置的詳細資訊，請參閱《 *AWS IoT 開發人員指南*》中的[AWS IoT 安全通道](https://docs.aws.amazon.com/iot/latest/developerguide/secure-tunneling.html)。

此元件會訂閱`$aws/things/greengrass-core-device/tunnels/notify`主題上的 AWS IoT Core MQTT 訊息中介裝置，以接收安全通道通知。

**Topics**
+ [版本](#secure-tunneling-component-versions)
+ [類型](#secure-tunneling-component-type)
+ [作業系統](#secure-tunneling-component-os-support)
+ [要求](#secure-tunneling-component-requirements)
+ [相依性](#secure-tunneling-component-dependencies)
+ [Configuration](#secure-tunneling-component-configuration)
+ [本機日誌檔案](#secure-tunneling-component-log-file)
+ [授權](#secure-tunneling-component-licenses)
+ [用途](#secure-tunneling-component-usage)
+ [另請參閱](#secure-tunneling-component-see-also)
+ [變更記錄](#secure-tunneling-component-changelog)

## 版本
<a name="secure-tunneling-component-versions"></a>

此元件具有下列版本：
+ 1.1.x
+ 1.0.x

## 類型
<a name="secure-tunneling-component-type"></a>

<a name="public-component-type-generic"></a>此<a name="public-component-type-generic-phrase"></a>元件是一般元件 (`aws.greengrass.generic`)。[Greengrass 核](greengrass-nucleus-component.md)會執行元件的生命週期指令碼。

<a name="public-component-type-more-information"></a>如需詳細資訊，請參閱[元件類型](develop-greengrass-components.md#component-types)。

## 作業系統
<a name="secure-tunneling-component-os-support"></a>

此元件只能在 Linux 核心裝置上安裝。

架構：
+ Armv71
+ Armv8 (AArch64)
+ x86\$164

## 要求
<a name="secure-tunneling-component-requirements"></a>

此元件有下列需求：
+ 安全通道元件可用的磁碟空間至少為 32 MB。此要求不包含 Greengrass 核心軟體或在相同裝置上執行的其他元件。
+ 安全通道元件至少可使用 16 MB RAM。此要求不包含 Greengrass 核心軟體或在相同裝置上執行的其他元件。如需詳細資訊，請參閱[使用 JVM 選項控制記憶體配置](configure-greengrass-core-v2.md#jvm-tuning)。
+ 安全通道元件 1.0.12 版和更新版本需要 GNU C Library (glibc) 2.25 版或更高版本，Linux 核心為 3.2 版或更高版本。不支援超過長期支援生命週期結束日期的作業系統和程式庫版本。您應該使用具有長期支援的作業系統和程式庫。
+ 作業系統和 Java 執行期都必須安裝為 64 位元。
+ 在 Greengrass 核心裝置上安裝 [Python](https://www.python.org/) 3.5 或更新版本，並新增至 PATH 環境變數。
+ `libcrypto.so.1.1` 安裝在 Greengrass 核心裝置上，並新增至 PATH 環境變數。
+ 在 Greengrass 核心裝置上的連接埠 443 上開啟傳出流量。
+ 開啟您要用來與 Greengrass 核心裝置通訊的通訊服務支援。例如，若要開啟與裝置的 SSH 連線，您必須在該裝置上開啟 SSH。

### 端點和連接埠
<a name="secure-tunneling-component-endpoints"></a>

除了基本操作所需的端點和連接埠之外，此元件還必須能夠對下列端點和連接埠執行傳出請求。如需詳細資訊，請參閱[允許透過代理或防火牆的裝置流量](allow-device-traffic.md)。


| Endpoint | 連線埠 | 必要 | 說明 | 
| --- | --- | --- | --- | 
|  `data.tunneling.iot.region.amazonaws.com`  | 443 | 是 |  建立安全通道。  | 

## 相依性
<a name="secure-tunneling-component-dependencies"></a>

當您部署元件時， AWS IoT Greengrass 也會部署其相依性的相容版本。這表示您必須符合元件及其所有相依性的要求，才能成功部署元件。本節列出此元件[發行版本的](#secure-tunneling-component-changelog)相依性，以及為每個相依性定義元件版本的語意版本限制。您也可以在 [AWS IoT Greengrass 主控台](https://console.aws.amazon.com//greengrass)中檢視每個版本元件的相依性。在元件詳細資訊頁面上，尋找**相依性**清單。

------
#### [ 1.0.19 – 1.1.3 ]

下表列出此元件 1.0.19 到 1.1.3 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) |  >=2.0.0 <3.0.0  | 軟式 | 

------
#### [ 1.0.18 ]

下表列出此元件 1.0.18 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) |  >=2.0.0 <2.13.0  | 軟式 | 

------
#### [ 1.0.16 – 1.0.17 ]

下表列出此元件 1.0.16 至 1.0.17 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) |  >=2.0.0 <2.12.0  | 軟式 | 

------
#### [ 1.0.14 – 1.0.15 ]

下表列出此元件 1.0.14 至 1.0.15 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) |  >=2.0.0 <2.11.0  | 軟式 | 

------
#### [ 1.0.11 – 1.0.13 ]

下表列出此元件 1.0.11 – 1.0.13 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) |  >=2.0.0 <2.10.0  | 軟式 | 

------
#### [ 1.0.10 ]

下表列出此元件 1.0.10 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) |  >=2.0.0 <2.9.0  | 軟式 | 

------
#### [ 1.0.9 ]

下表列出此元件 1.0.9 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) |  >=2.0.0 <2.8.0  | 軟式 | 

------
#### [ 1.0.8 ]

下表列出此元件 1.0.8 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) |  >=2.0.0 <2.7.0  | 軟式 | 

------
#### [ 1.0.5 - 1.0.7 ]

下表列出此元件 1.0.5 到 1.0.7 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) |  >=2.0.0 <2.6.0  | 軟式 | 

------
#### [ 1.0.4 ]

下表列出此元件 1.0.4 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) |  >=2.0.0 <2.5.0  | 軟式 | 

------
#### [ 1.0.3 ]

下表列出此元件 1.0.3 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) |  >=2.0.0 <2.4.0  | 軟式 | 

------
#### [ 1.0.2 ]

下表列出此元件 1.0.2 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) |  >=2.0.0 <2.3.0  | 軟式 | 

------
#### [ 1.0.1 ]

下表列出此元件 1.0.1 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) |  >=2.0.0 <2.2.0  | 軟式 | 

------
#### [ 1.0.0 ]

下表列出此元件 1.0.0 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) |  >=2.0.3 <2.1.0  | 軟式 | 

------

如需元件相依性的詳細資訊，請參閱[元件配方參考](component-recipe-reference.md#recipe-reference-component-dependencies)。

## Configuration
<a name="secure-tunneling-component-configuration"></a>

此元件提供下列組態參數，您可以在部署元件時自訂這些參數。

`OS_DIST_INFO`  
（選用） 核心裝置的作業系統。根據預設，元件會嘗試自動識別核心裝置上執行的作業系統。如果元件無法以預設值開頭，請使用此值來指定作業系統。如需此元件支援的作業系統清單，請參閱 [裝置要求](greengrass-nucleus-component.md#greengrass-v2-requirements)。  
此值可以是下列其中一項：`auto`、`ubuntu`、`amzn2`、`raspberrypi`。  
預設：`auto`

`accessControl`  
（選用） 包含[授權政策](interprocess-communication.md#ipc-authorization-policies)的物件，允許元件訂閱安全通道通知主題。  
如果您的部署以物件群組為目標，請勿修改此組態參數。如果您的部署以個別核心裝置為目標，而且您想要將其訂閱限制為裝置的主題，請指定核心裝置的物件名稱。在裝置的授權政策中的 `resources`值中，將 MQTT 主題萬用字元取代為裝置的物件名稱。

```
{
  "aws.greengrass.ipc.mqttproxy": {
    "aws.iot.SecureTunneling:mqttproxy:1": {
      "policyDescription": "Access to tunnel notification pubsub topic",
      "operations": [
        "aws.greengrass#SubscribeToIoTCore"
      ],
      "resources": [
        "$aws/things/+/tunnels/notify"
      ]
    }
  }
}
```

**Example 範例：組態合併更新**  
下列範例組態指定 ，允許此元件在**MyGreengrassCore**執行 Ubuntu 的核心裝置上開啟安全通道。  

```
{
  "OS_DIST_INFO": "ubuntu",
  "accessControl": {
    "aws.greengrass.ipc.mqttproxy": {
      "aws.iot.SecureTunneling:mqttproxy:1": {
        "policyDescription": "Access to tunnel notification pubsub topic",
        "operations": [
          "aws.greengrass#SubscribeToIoTCore"
        ],
        "resources": [
          "$aws/things/MyGreengrassCore/tunnels/notify"
        ]
      }
    }
  }
}
```

## 本機日誌檔案
<a name="secure-tunneling-component-log-file"></a>

此元件使用以下日誌檔案。

```
/greengrass/v2/logs/aws.greengrass.SecureTunneling.log
```

**檢視此元件的日誌**
+ 在核心裝置上執行下列命令，以即時檢視此元件的日誌檔案。`/greengrass/v2` 將 取代為 AWS IoT Greengrass 根資料夾的路徑。

  ```
  sudo tail -f /greengrass/v2/logs/aws.greengrass.SecureTunneling.log
  ```

## 授權
<a name="secure-tunneling-component-licenses"></a>

此元件包含下列第三方軟體/授權：
+ [AWS IoT 裝置用戶端](https://github.com/awslabs/aws-iot-device-client)/Apache 授權 2.0
+ [適用於 JAVA 的 AWS IoT Device SDK](https://github.com/aws/aws-greengrass-core-sdk-java/)/Apache License 2.0
+ [gson](https://github.com/google/gson)/Apache 授權 2.0
+ [log4j](https://logging.apache.org/log4j/2.x/)/Apache 授權 2.0
+ [slf4j](http://www.slf4j.org/)/Apache 授權 2.0

## 用途
<a name="secure-tunneling-component-usage"></a>

若要在裝置上使用安全通道元件，請執行下列動作：

1. 將安全通道元件部署至您的裝置。

1. 開啟 [AWS IoT 主控台](https://console.aws.amazon.com/iot)。從左側功能表中，選擇**遠端動作**，然後選擇**安全通道**。

1. 為您的 Greengrass 裝置建立通道。

1. 下載來源存取字符。

1. 使用本機代理搭配來源存取字符來連線至目的地。如需詳細資訊，請參閱《 *AWS IoT 開發人員指南*》中的[如何使用本機代理](https://docs.aws.amazon.com/iot/latest/developerguide/how-use-local-proxy.html)。

## 另請參閱
<a name="secure-tunneling-component-see-also"></a>
+ 《 *AWS IoT 開發人員指南*》中的[AWS IoT 安全通道](https://docs.aws.amazon.com/iot/latest/developerguide/secure-tunneling.html) 
+ 《 *AWS IoT 開發人員指南*》中的[如何使用本機代理](https://docs.aws.amazon.com/iot/latest/developerguide/how-use-local-proxy.html) 

## 變更記錄
<a name="secure-tunneling-component-changelog"></a>

下表說明每個版本元件的變更。


|  **版本**  |  **變更**  | 
| --- | --- | 
|  1.1.3  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/secure-tunneling-component.html)  | 
|  1.1.2  |   此版本不再可用。此版本的改善功能可在此元件的較新版本中使用。  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/secure-tunneling-component.html)  | 
|  1.1.1  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/secure-tunneling-component.html)  | 
|  1.1.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/secure-tunneling-component.html)  | 
|  1.0.19  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/secure-tunneling-component.html)  如果您使用安全通道本機代理做為通道來源用戶端，請勿將元件更新至此版本，除非您也已將本機代理升級至 3.1.1 版或更新版本。   | 
|  1.0.18  | 針對 Greengrass nucleus 2.12.0 版更新版本。 | 
|  1.0.17  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/secure-tunneling-component.html)  | 
|  1.0.16  | 針對 Greengrass nucleus 2.11.0 版更新版本。 | 
|  1.0.15  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/secure-tunneling-component.html)  | 
|  1.0.14  | 針對 Greengrass nucleus 2.10.0 版更新版本。 | 
|  1.0.13  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/secure-tunneling-component.html)  | 
|  1.0.12  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/secure-tunneling-component.html)  | 
|  1.0.11  | 針對 Greengrass nucleus 2.9.0 版更新版本。 | 
|  1.0.10  | 針對 Greengrass nucleus 2.8.0 版更新版本。 | 
|  1.0.9  |  針對 Greengrass nucleus 2.7.0 版更新版本。  | 
|  1.0.8  |  針對 Greengrass nucleus 2.6.0 版更新版本。  | 
|  1.0.7  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/secure-tunneling-component.html)  | 
|  1.0.6  |  此版本包含錯誤修正。  | 
|  1.0.5  |  針對 Greengrass nucleus 2.5.0 版更新版本。  | 
|  1.0.4  |  針對 Greengrass nucleus 2.4.0 版更新版本。  | 
|  1.0.3  |  針對 Greengrass nucleus 2.3.0 版更新版本。  | 
|  1.0.2  |  針對 Greengrass nucleus 2.2.0 版更新版本。  | 
|  1.0.1  |  針對 Greengrass nucleus 2.1.0 版更新版本。  | 
|  1.0.0  |  初始版本。  | 

# Shadow 管理員
<a name="shadow-manager-component"></a>

影子管理員元件 (`aws.greengrass.ShadowManager`) 會在您的核心裝置上啟用本機影子服務。本機影子服務允許元件使用程序間通訊與[本機影子互動](ipc-local-shadows.md)。影子管理員元件會管理本機影子文件的儲存，也會處理本機影子狀態與 AWS IoT Device Shadow 服務的同步處理。

如需 Greengrass 核心裝置如何與影子互動的詳細資訊，請參閱 [與裝置陰影互動](interact-with-shadows.md)。

**Topics**
+ [版本](#shadow-manager-component-versions)
+ [Type](#shadow-manager-component-type)
+ [作業系統](#shadow-manager-component-os-support)
+ [要求](#shadow-manager-component-requirements)
+ [相依性](#shadow-manager-component-dependencies)
+ [Configuration](#shadow-manager-component-configuration)
+ [本機日誌檔案](#shadow-manager-component-log-file)
+ [變更記錄](#shadow-manager-component-changelog)

## 版本
<a name="shadow-manager-component-versions"></a>

此元件具有下列版本：
+ 2.3.x 版本
+ 2.2.x 版本
+ 2.1.x
+ 2.0.x

## Type
<a name="shadow-manager-component-type"></a>

<a name="public-component-type-plugin-para1"></a>此元件是外掛程式元件 (`aws.greengrass.plugin`)。[Greengrass 核心](greengrass-nucleus-component.md)會在與核心相同的 Java 虛擬機器 (JVM) 中執行此元件。當您在核心裝置上變更此元件的版本時，核會重新啟動。

<a name="public-component-type-plugin-para2"></a>此元件使用與 Greengrass 核相同的日誌檔案。如需詳細資訊，請參閱[監控 AWS IoT Greengrass 日誌](monitor-logs.md)。

<a name="public-component-type-more-information"></a>如需詳細資訊，請參閱[元件類型](develop-greengrass-components.md#component-types)。

## 作業系統
<a name="shadow-manager-component-os-support"></a>

此元件可以安裝在執行下列作業系統的核心裝置上：
+ Linux
+ Windows

## 要求
<a name="shadow-manager-component-requirements"></a>

此元件有下列需求：
+ （選用） 若要將影子同步至 AWS IoT Device Shadow 服務，Greengrass 核心裝置 AWS IoT 的政策必須允許下列 AWS IoT Core 影子政策動作：
  + `iot:GetThingShadow`
  + `iot:UpdateThingShadow`
  + `iot:DeleteThingShadow`

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

  如需最低 AWS IoT 政策的詳細資訊，請參閱 [AWS IoT Greengrass V2 核心裝置的最低 AWS IoT 政策](device-auth.md#greengrass-core-minimal-iot-policy)
+ 影子管理員元件支援在 VPC 中執行。

## 相依性
<a name="shadow-manager-component-dependencies"></a>

當您部署元件時， AWS IoT Greengrass 也會部署其相依性的相容版本。這表示您必須符合元件及其所有相依性的要求，才能成功部署元件。本節列出此元件[發行版本的](#shadow-manager-component-changelog)相依性，以及為每個相依性定義元件版本的語意版本限制。您也可以在 [AWS IoT Greengrass 主控台](https://console.aws.amazon.com//greengrass)中檢視每個版本元件的相依性。在元件詳細資訊頁面上，尋找**相依性**清單。

------
#### [ 2.3.13 ]

下表列出此元件 2.3.13 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.5.0 <2.17.0 | 軟式 | 

------
#### [ 2.3.12 ]

下表列出此元件 2.3.12 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.5.0 <2.17.0 | 軟式 | 

------
#### [ 2.3.11 ]

下表列出此元件 2.3.11 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.5.0 <2.16.0 | 軟式 | 

------
#### [ 2.3.10 ]

下表列出此元件 2.3.10 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.5.0 <2.15.0 | 軟式 | 

------
#### [ 2.3.9 ]

下表列出此元件 2.3.9 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.5.0 <2.14.0 | 軟式 | 

------
#### [ 2.3.5 – 2.3.8 ]

下表列出此元件 2.3.5 到 2.3.8 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.5.0 <2.13.0 | 軟式 | 

------
#### [ 2.3.3 and 2.3.4 ]

下表列出此元件 2.3.3 和 2.3.4 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.5.0 <2.12.0 | 軟式 | 

------
#### [ 2.3.2 ]

下表列出此元件 2.3.2 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.5.0 <2.11.0 | 軟式 | 

------
#### [ 2.3.0 and 2.3.1 ]

下表列出此元件 2.3.0 和 2.3.1 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.5.0 <2.10.0 | 軟式 | 

------
#### [ 2.2.3 and 2.2.4 ]

下表列出此元件 2.2.3 和 2.2.4 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.2.0 <3.0.0 | 軟式 | 

------
#### [ 2.2.2 ]

下表列出此元件 2.2.2 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.2.0 <2.9.0 | 軟式 | 

------
#### [ 2.2.1 ]

下表列出此元件 2.2.1 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.2.0 <2.8.0 | 軟式 | 

------
#### [ 2.1.1 and 2.2.0 ]

下表列出此元件 2.1.1 和 2.2.0 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.2.0 <2.7.0 | 軟式 | 

------
#### [ 2.0.5 - 2.1.0 ]

下表列出此元件 2.0.5 到 2.1.0 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.2.0 <2.6.0 | 軟式 | 

------
#### [ 2.0.3 and 2.0.4 ]

下表列出此元件 2.0.3 和 2.0.4 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.2.0 <2.5.0 | 軟式 | 

------
#### [ 2.0.1 and 2.0.2 ]

下表列出此元件 2.0.1 和 2.0.2 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.2.0 <2.4.0 | 軟式 | 

------
#### [ 2.0.0 ]

下表列出此元件 2.0.0 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.2.0 <2.3.0 | 軟式 | 

------

如需元件相依性的詳細資訊，請參閱[元件配方參考](component-recipe-reference.md#recipe-reference-component-dependencies)。

## Configuration
<a name="shadow-manager-component-configuration"></a>

此元件提供下列組態參數，您可以在部署元件時自訂這些參數。

------
#### [ 2.3.x ]

`strategy`  <a name="shadow-manager-component-configuration-strategy"></a>
（選用） 此元件用來在 AWS IoT Core 和核心裝置之間同步陰影的策略。  
此物件包含下列資訊。    
`type`  
（選用） 此元件用來在 AWS IoT Core 和 核心裝置之間同步陰影的策略類型。您可以從以下選項中選擇：  
+ `realTime` – AWS IoT Core 每次進行陰影更新時，同步陰影。
+ `periodic` – AWS IoT Core 以您使用`delay`組態參數指定的定期間隔將陰影與 同步。
預設：`realTime`  
`delay`  
（選用） 當您指定同步策略時 AWS IoT Core，此元件與 `periodic`同步陰影的間隔，以秒為單位。  
如果您指定`periodic`同步策略，則需要此參數。

`synchronize`  <a name="shadow-manager-component-configuration-synchronize"></a>
<a name="shadow-manager-component-configuration-strategy-description"></a>（選用） 決定影子如何與 同步的同步設定 AWS 雲端。  
您必須使用此屬性建立組態更新，才能與 同步陰影 AWS 雲端。
此物件包含下列資訊。    
`coreThing`  <a name="shadow-manager-component-configuration-synchronize-core-thing"></a>
（選用） 要同步的核心裝置陰影。此物件包含下列資訊。    
`classic`  
（選用） 根據預設，影子管理員會使用 同步核心裝置傳統影子的本機狀態 AWS 雲端。如果您不想同步傳統裝置影子，請將此設為 `false`。  
預設：`true`  
`namedShadows`  
（選用） 要同步的具名核心裝置影子清單。您必須指定影子的確切名稱。  
 AWS IoT Greengrass 服務使用`AWSManagedGreengrassV2Deployment`具名影子來管理以個別核心裝置為目標的部署。此具名影子會保留供 AWS IoT Greengrass 服務使用。請勿更新或刪除此具名影子。  
`shadowDocumentsMap`  <a name="shadow-manager-component-configuration-synchronize-shadow-documents-map"></a>
（選用） 要同步的其他裝置陰影。使用此組態參數可讓您更輕鬆地指定影子文件。我們建議您使用此參數，而非 `shadowDocuments` 物件。  
如果您指定`shadowDocumentsMap`物件，則不得指定`shadowDocuments`物件。
每個物件都包含下列資訊：    
*`thingName`*  
此影子組態之 *thingName* 的影子組態。    
`classic`  
（選用） 如果您不想同步`thingName`裝置的傳統裝置影子，請將此設為 `false`。  
`namedShadows`  
您要同步的具名影子清單。您必須指定影子的確切名稱。  
`shadowDocuments`  <a name="shadow-manager-component-configuration-synchronize-shadow-documents"></a>
（選用） 要同步的其他裝置陰影清單。我們建議您改用 `shadowDocumentsMap` 參數。  
如果您指定`shadowDocuments`物件，則不得指定`shadowDocumentsMap`物件。
此清單中的每個物件都包含下列資訊。    
`thingName`  
要同步陰影之裝置的物件名稱。  
`classic`  
（選用） 如果您不想同步`thingName`裝置的傳統裝置影子，請將此設為 `false`。  
預設：`true`  
`namedShadows`  
（選用） 您要同步的具名裝置陰影清單。您必須指定影子的確切名稱。  
`direction`  
（選用） 在本機影子服務與 之間同步影子的方向 AWS 雲端。您可以設定此選項，以減少頻寬和對 的連線 AWS 雲端。您可以從以下選項中選擇：  
+ `betweenDeviceAndCloud` – 同步本機影子服務與 之間的影子 AWS 雲端。
+ `deviceToCloud` – 將陰影更新從本機陰影服務傳送至 AWS 雲端，並忽略來自 的陰影更新 AWS 雲端。
+ `cloudToDevice` – 從 接收陰影更新 AWS 雲端，而且不要從本機陰影服務傳送陰影更新至 AWS 雲端。
預設：`BETWEEN_DEVICE_AND_CLOUD`

`rateLimits`  <a name="shadow-manager-component-configuration-rate-limits"></a>
（選用） 決定陰影服務請求速率限制的設定。  
此物件包含下列資訊。    
`maxOutboundSyncUpdatesPerSecond`  
（選用） 裝置每秒傳輸的同步請求數目上限。  
預設：100 個請求/秒  
`maxTotalLocalRequestsRate`  
（選用） 每秒傳送至核心裝置的本機 IPC 請求數量上限。  
預設：200 個請求/秒  
`maxLocalRequestsPerSecondPerThing`  
（選用） 每秒針對每個連線 IoT 物件傳送的本機 IPC 請求數目上限。  
預設：每個物件每秒 20 個請求
這些速率限制參數會定義本機影子服務的每秒請求數上限。 AWS IoT Device Shadow 服務的每秒請求數上限取決於您的 AWS 區域。如需詳細資訊，請參閱《》中 [AWS IoT Device Shadow Service API](https://docs.aws.amazon.com/general/latest/gr/iot-core.html#device-shadow-limits) 的限制*Amazon Web Services 一般參考*。

`shadowDocumentSizeLimitBytes`  <a name="shadow-manager-component-configuration-shadow-document-size-limit-bytes"></a>
（選用） 本機影子的每個 JSON 狀態文件允許的大小上限。  
如果您增加此值，您還必須增加雲端影子的 JSON 狀態文件的資源限制。如需詳細資訊，請參閱《》中 [AWS IoT Device Shadow Service API](https://docs.aws.amazon.com/general/latest/gr/iot-core.html#device-shadow-limits) 的限制*Amazon Web Services 一般參考*。  
預設：8192 位元組  
上限：30720 位元組

**Example 範例：組態合併更新**  
下列範例顯示範例組態合併更新，其中包含影子管理員元件的所有可用組態參數。  

```
{
   "strategy":{
      "type":"periodic",
      "delay":300
   },
   "synchronize":{
      "shadowDocumentsMap":{
         "MyDevice1":{
            "classic":false,
            "namedShadows":[
               "MyShadowA",
               "MyShadowB"
            ]
         },
         "MyDevice2":{
            "classic":true,
            "namedShadows":[]
         }
      },
      "direction":"betweenDeviceAndCloud"
   },
   "rateLimits":{
      "maxOutboundSyncUpdatesPerSecond":100,
      "maxTotalLocalRequestsRate":200,
      "maxLocalRequestsPerSecondPerThing":20
   },
   "shadowDocumentSizeLimitBytes":8192
}
```

------
#### [ 2.2.x ]

`strategy`  <a name="shadow-manager-component-configuration-strategy"></a>
（選用） 此元件用來在 AWS IoT Core 和核心裝置之間同步陰影的策略。  
此物件包含下列資訊。    
`type`  
（選用） 此元件用來在 AWS IoT Core 和核心裝置之間同步陰影的策略類型。您可以從以下選項中選擇：  
+ `realTime` – AWS IoT Core 每次進行陰影更新時，同步陰影。
+ `periodic` – AWS IoT Core 以您使用`delay`組態參數指定的定期間隔，將陰影與 同步。
預設：`realTime`  
`delay`  
（選用） 當您指定同步策略時 AWS IoT Core，此元件與 `periodic`同步陰影的間隔，以秒為單位。  
如果您指定`periodic`同步策略，則需要此參數。

`synchronize`  <a name="shadow-manager-component-configuration-synchronize"></a>
<a name="shadow-manager-component-configuration-strategy-description"></a>（選用） 決定影子如何與 同步的同步設定 AWS 雲端。  
您必須使用此屬性建立組態更新，才能將影子與 同步 AWS 雲端。
此物件包含下列資訊。    
`coreThing`  <a name="shadow-manager-component-configuration-synchronize-core-thing"></a>
（選用） 要同步的核心裝置陰影。此物件包含下列資訊。    
`classic`  
（選用） 根據預設，影子管理員會使用 同步核心裝置傳統影子的本機狀態 AWS 雲端。如果您不想同步傳統裝置影子，請將此設為 `false`。  
預設：`true`  
`namedShadows`  
（選用） 要同步的具名核心裝置陰影清單。您必須指定影子的確切名稱。  
 AWS IoT Greengrass 服務使用`AWSManagedGreengrassV2Deployment`具名影子來管理以個別核心裝置為目標的部署。此具名影子會保留供 AWS IoT Greengrass 服務使用。請勿更新或刪除此具名影子。  
`shadowDocumentsMap`  <a name="shadow-manager-component-configuration-synchronize-shadow-documents-map"></a>
（選用） 要同步的其他裝置陰影。使用此組態參數可讓您更輕鬆地指定影子文件。我們建議您使用此參數，而非 `shadowDocuments` 物件。  
如果您指定`shadowDocumentsMap`物件，則不得指定`shadowDocuments`物件。
每個物件都包含下列資訊：    
*`thingName`*  
此影子組態之 *thingName* 的影子組態。    
`classic`  
（選用） 如果您不想同步`thingName`裝置的傳統裝置陰影，請將此設為 `false`。  
`namedShadows`  
您要同步的具名影子清單。您必須指定影子的確切名稱。  
`shadowDocuments`  <a name="shadow-manager-component-configuration-synchronize-shadow-documents"></a>
（選用） 要同步的其他裝置陰影清單。我們建議您改用 `shadowDocumentsMap` 參數。  
如果您指定`shadowDocuments`物件，則不得指定`shadowDocumentsMap`物件。
此清單中的每個物件都包含下列資訊。    
`thingName`  
要同步陰影之裝置的物件名稱。  
`classic`  
（選用） 如果您不想同步`thingName`裝置的傳統裝置陰影，請將此設為 `false`。  
預設：`true`  
`namedShadows`  
（選用） 您要同步的具名裝置陰影清單。您必須指定影子的確切名稱。  
`direction`  
（選用） 在本機影子服務與 之間同步影子的方向 AWS 雲端。您可以設定此選項，以減少頻寬和對 的連線 AWS 雲端。您可以從以下選項中選擇：  
+ `betweenDeviceAndCloud` – 同步本機影子服務與 之間的影子 AWS 雲端。
+ `deviceToCloud` – 將陰影更新從本機陰影服務傳送至 AWS 雲端，並忽略來自 的陰影更新 AWS 雲端。
+ `cloudToDevice` – 從 接收陰影更新 AWS 雲端，而且不要將陰影更新從本機陰影服務傳送至 AWS 雲端。
預設：`BETWEEN_DEVICE_AND_CLOUD`

`rateLimits`  <a name="shadow-manager-component-configuration-rate-limits"></a>
（選用） 決定陰影服務請求速率限制的設定。  
此物件包含下列資訊。    
`maxOutboundSyncUpdatesPerSecond`  
（選用） 裝置每秒傳輸的同步請求數目上限。  
預設：100 個請求/秒  
`maxTotalLocalRequestsRate`  
（選用） 每秒傳送至核心裝置的本機 IPC 請求數目上限。  
預設：200 個請求/秒  
`maxLocalRequestsPerSecondPerThing`  
（選用） 每秒針對每個連線 IoT 物件傳送的本機 IPC 請求數目上限。  
預設：每個物件每秒 20 個請求
這些速率限制參數會定義本機影子服務的每秒請求數上限。 AWS IoT Device Shadow 服務的每秒請求數上限取決於您的 AWS 區域。如需詳細資訊，請參閱《》中 [AWS IoT Device Shadow Service API](https://docs.aws.amazon.com/general/latest/gr/iot-core.html#device-shadow-limits) 的限制*Amazon Web Services 一般參考*。

`shadowDocumentSizeLimitBytes`  <a name="shadow-manager-component-configuration-shadow-document-size-limit-bytes"></a>
（選用） 本機影子的每個 JSON 狀態文件允許的大小上限。  
如果您增加此值，您還必須增加雲端影子的 JSON 狀態文件的資源限制。如需詳細資訊，請參閱《》中 [AWS IoT Device Shadow Service API](https://docs.aws.amazon.com/general/latest/gr/iot-core.html#device-shadow-limits) 的限制*Amazon Web Services 一般參考*。  
預設：8192 位元組  
上限：30720 位元組

**Example 範例：組態合併更新**  
下列範例顯示範例組態合併更新，其中包含影子管理員元件的所有可用組態參數。  

```
{
   "strategy":{
      "type":"periodic",
      "delay":300
   },
   "synchronize":{
      "shadowDocumentsMap":{
         "MyDevice1":{
            "classic":false,
            "namedShadows":[
               "MyShadowA",
               "MyShadowB"
            ]
         },
         "MyDevice2":{
            "classic":true,
            "namedShadows":[]
         }
      },
      "direction":"betweenDeviceAndCloud"
   },
   "rateLimits":{
      "maxOutboundSyncUpdatesPerSecond":100,
      "maxTotalLocalRequestsRate":200,
      "maxLocalRequestsPerSecondPerThing":20
   },
   "shadowDocumentSizeLimitBytes":8192
}
```

------
#### [ 2.1.x ]

`strategy`  <a name="shadow-manager-component-configuration-strategy"></a>
（選用） 此元件用來在 AWS IoT Core 和核心裝置之間同步陰影的策略。  
此物件包含下列資訊。    
`type`  
（選用） 此元件用來在 AWS IoT Core 和核心裝置之間同步陰影的策略類型。您可以從以下選項中選擇：  
+ `realTime` – AWS IoT Core 每次進行陰影更新時，同步陰影。
+ `periodic` – AWS IoT Core 以您使用`delay`組態參數指定的定期間隔，將陰影與 同步。
預設：`realTime`  
`delay`  
（選用） 當您指定同步策略時 AWS IoT Core，此元件與 `periodic`同步陰影的間隔，以秒為單位。  
如果您指定`periodic`同步策略，則需要此參數。

`synchronize`  <a name="shadow-manager-component-configuration-synchronize"></a>
<a name="shadow-manager-component-configuration-strategy-description"></a>（選用） 決定影子如何與 同步的同步設定 AWS 雲端。  
您必須使用此屬性建立組態更新，才能將影子與 同步 AWS 雲端。
此物件包含下列資訊。    
`coreThing`  <a name="shadow-manager-component-configuration-synchronize-core-thing"></a>
（選用） 要同步的核心裝置陰影。此物件包含下列資訊。    
`classic`  
（選用） 根據預設，影子管理員會使用 同步核心裝置傳統影子的本機狀態 AWS 雲端。如果您不想同步傳統裝置影子，請將此設為 `false`。  
預設：`true`  
`namedShadows`  
（選用） 要同步的具名核心裝置陰影清單。您必須指定影子的確切名稱。  
 AWS IoT Greengrass 服務使用`AWSManagedGreengrassV2Deployment`具名影子來管理以個別核心裝置為目標的部署。此具名影子會保留供 AWS IoT Greengrass 服務使用。請勿更新或刪除此具名影子。  
`shadowDocumentsMap`  <a name="shadow-manager-component-configuration-synchronize-shadow-documents-map"></a>
（選用） 要同步的其他裝置陰影。使用此組態參數可讓您更輕鬆地指定影子文件。我們建議您使用此參數，而非 `shadowDocuments` 物件。  
如果您指定`shadowDocumentsMap`物件，則不得指定`shadowDocuments`物件。
每個物件都包含下列資訊：    
*`thingName`*  
此影子組態之 *thingName* 的影子組態。    
`classic`  
（選用） 如果您不想同步`thingName`裝置的傳統裝置陰影，請將此設為 `false`。  
`namedShadows`  
您要同步的具名影子清單。您必須指定影子的確切名稱。  
`shadowDocuments`  <a name="shadow-manager-component-configuration-synchronize-shadow-documents"></a>
（選用） 要同步的其他裝置陰影清單。我們建議您改用 `shadowDocumentsMap` 參數。  
如果您指定`shadowDocuments`物件，則不得指定`shadowDocumentsMap`物件。
此清單中的每個物件都包含下列資訊。    
`thingName`  
要同步陰影之裝置的物件名稱。  
`classic`  
（選用） 如果您不想同步`thingName`裝置的傳統裝置陰影，請將此設為 `false`。  
預設：`true`  
`namedShadows`  
（選用） 您要同步的具名裝置陰影清單。您必須指定影子的確切名稱。

`rateLimits`  <a name="shadow-manager-component-configuration-rate-limits"></a>
（選用） 決定陰影服務請求速率限制的設定。  
此物件包含下列資訊。    
`maxOutboundSyncUpdatesPerSecond`  
（選用） 裝置每秒傳輸的同步請求數目上限。  
預設：100 個請求/秒  
`maxTotalLocalRequestsRate`  
（選用） 每秒傳送至核心裝置的本機 IPC 請求數量上限。  
預設：200 個請求/秒  
`maxLocalRequestsPerSecondPerThing`  
（選用） 每秒針對每個連線 IoT 物件傳送的本機 IPC 請求數目上限。  
預設：每個物件每秒 20 個請求
這些速率限制參數會定義本機影子服務的每秒請求數上限。 AWS IoT Device Shadow 服務的每秒請求數上限取決於您的 AWS 區域。如需詳細資訊，請參閱《》中 [AWS IoT Device Shadow Service API](https://docs.aws.amazon.com/general/latest/gr/iot-core.html#device-shadow-limits) 的限制*Amazon Web Services 一般參考*。

`shadowDocumentSizeLimitBytes`  <a name="shadow-manager-component-configuration-shadow-document-size-limit-bytes"></a>
（選用） 本機影子的每個 JSON 狀態文件允許的大小上限。  
如果您增加此值，您還必須增加雲端影子的 JSON 狀態文件的資源限制。如需詳細資訊，請參閱《》中 [AWS IoT Device Shadow Service API](https://docs.aws.amazon.com/general/latest/gr/iot-core.html#device-shadow-limits) 的限制*Amazon Web Services 一般參考*。  
預設：8192 位元組  
上限：30720 位元組

**Example 範例：組態合併更新**  
下列範例顯示範例組態合併更新，其中包含影子管理員元件的所有可用組態參數。  

```
{
   "strategy":{
      "type":"periodic",
      "delay":300
   },
   "synchronize":{
      "shadowDocumentsMap":{
         "MyDevice1":{
            "classic":false,
            "namedShadows":[
               "MyShadowA",
               "MyShadowB"
            ]
         },
         "MyDevice2":{
            "classic":true,
            "namedShadows":[]
         }
      },
      "direction":"betweenDeviceAndCloud"
   },
   "rateLimits":{
      "maxOutboundSyncUpdatesPerSecond":100,
      "maxTotalLocalRequestsRate":200,
      "maxLocalRequestsPerSecondPerThing":20
   },
   "shadowDocumentSizeLimitBytes":8192
}
```

------
#### [ 2.0.x ]

`synchronize`  <a name="shadow-manager-component-configuration-synchronize"></a>
<a name="shadow-manager-component-configuration-strategy-description"></a>（選用） 決定影子如何與 同步的同步設定 AWS 雲端。  
您必須使用此屬性建立組態更新，才能與 同步陰影 AWS 雲端。
此物件包含下列資訊。    
`coreThing`  <a name="shadow-manager-component-configuration-synchronize-core-thing"></a>
（選用） 要同步的核心裝置陰影。此物件包含下列資訊。    
`classic`  
（選用） 根據預設，影子管理員會使用 同步核心裝置傳統影子的本機狀態 AWS 雲端。如果您不想同步傳統裝置影子，請將此設為 `false`。  
預設：`true`  
`namedShadows`  
（選用） 要同步的具名核心裝置影子清單。您必須指定影子的確切名稱。  
 AWS IoT Greengrass 服務使用`AWSManagedGreengrassV2Deployment`具名影子來管理以個別核心裝置為目標的部署。此具名影子會保留供 AWS IoT Greengrass 服務使用。請勿更新或刪除此具名影子。  
`shadowDocumentsMap`  <a name="shadow-manager-component-configuration-synchronize-shadow-documents-map"></a>
（選用） 要同步的其他裝置陰影。使用此組態參數可讓您更輕鬆地指定影子文件。我們建議您使用此參數，而非 `shadowDocuments` 物件。  
如果您指定`shadowDocumentsMap`物件，則不得指定`shadowDocuments`物件。
每個物件都包含下列資訊：    
*`thingName`*  
此影子組態之 *thingName* 的影子組態。    
`classic`  
（選用） 如果您不想同步`thingName`裝置的傳統裝置影子，請將此設為 `false`。  
`namedShadows`  
您要同步的具名影子清單。您必須指定影子的確切名稱。  
`shadowDocuments`  <a name="shadow-manager-component-configuration-synchronize-shadow-documents"></a>
（選用） 要同步的其他裝置陰影清單。我們建議您改用 `shadowDocumentsMap` 參數。  
如果您指定`shadowDocuments`物件，則不得指定`shadowDocumentsMap`物件。
此清單中的每個物件都包含下列資訊。    
`thingName`  
要同步陰影之裝置的物件名稱。  
`classic`  
（選用） 如果您不想同步`thingName`裝置的傳統裝置影子，請將此設為 `false`。  
預設：`true`  
`namedShadows`  
（選用） 您要同步的具名裝置陰影清單。您必須指定影子的確切名稱。

`rateLimits`  <a name="shadow-manager-component-configuration-rate-limits"></a>
（選用） 決定陰影服務請求速率限制的設定。  
此物件包含下列資訊。    
`maxOutboundSyncUpdatesPerSecond`  
（選用） 裝置每秒傳輸的同步請求數目上限。  
預設：100 個請求/秒  
`maxTotalLocalRequestsRate`  
（選用） 每秒傳送至核心裝置的本機 IPC 請求數量上限。  
預設：200 個請求/秒  
`maxLocalRequestsPerSecondPerThing`  
（選用） 每秒針對每個連線 IoT 物件傳送的本機 IPC 請求數目上限。  
預設：每個物件每秒 20 個請求
這些速率限制參數會定義本機影子服務的每秒請求數上限。 AWS IoT Device Shadow 服務的每秒請求數上限取決於您的 AWS 區域。如需詳細資訊，請參閱《》中 [AWS IoT Device Shadow Service API](https://docs.aws.amazon.com/general/latest/gr/iot-core.html#device-shadow-limits) 的限制*Amazon Web Services 一般參考*。

`shadowDocumentSizeLimitBytes`  <a name="shadow-manager-component-configuration-shadow-document-size-limit-bytes"></a>
（選用） 本機影子的每個 JSON 狀態文件允許的大小上限。  
如果您增加此值，您還必須增加雲端影子的 JSON 狀態文件的資源限制。如需詳細資訊，請參閱《》中 [AWS IoT Device Shadow Service API](https://docs.aws.amazon.com/general/latest/gr/iot-core.html#device-shadow-limits) 的限制*Amazon Web Services 一般參考*。  
預設：8192 位元組  
上限：30720 位元組

**Example 範例：組態合併更新**  
下列範例顯示範例組態合併更新，其中包含影子管理員元件的所有可用組態參數。  

```
{
  "synchronize": {
    "coreThing": {
      "classic": true,
      "namedShadows": [
        "MyCoreShadowA",
        "MyCoreShadowB"
      ]
    },
    "shadowDocuments": [
      {
        "thingName": "MyDevice1",
        "classic": false,
        "namedShadows": [
          "MyShadowA",
          "MyShadowB"
        ]
      },
      {
        "thingName": "MyDevice2",
        "classic": true,
        "namedShadows": []
      }
    ]
  },
  "rateLimits": {       
    "maxOutboundSyncUpdatesPerSecond": 100,
    "maxTotalLocalRequestsRate": 200,
    "maxLocalRequestsPerSecondPerThing": 20
  },
  "shadowDocumentSizeLimitBytes": 8192
}
```

------

## 本機日誌檔案
<a name="shadow-manager-component-log-file"></a>

此元件使用與 [Greengrass 核](greengrass-nucleus-component.md)元件相同的日誌檔案。

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

```
/greengrass/v2/logs/greengrass.log
```

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

```
C:\greengrass\v2\logs\greengrass.log
```

------

**檢視此元件的日誌**
+ 在核心裝置上執行下列命令，以即時檢視此元件的日誌檔案。將 `/greengrass/v2`或 *C：\$1greengrass\$1v2* 取代為 AWS IoT Greengrass 根資料夾的路徑。

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

  ```
  sudo tail -f /greengrass/v2/logs/greengrass.log
  ```

------
#### [ Windows (PowerShell) ]

  ```
  Get-Content C:\greengrass\v2\logs\greengrass.log -Tail 10 -Wait
  ```

------

## 變更記錄
<a name="shadow-manager-component-changelog"></a>

下表說明每個版本元件的變更。


|  版本  |  變更  | 
| --- | --- | 
|  2.3.13  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/shadow-manager-component.html) | 
|  2.3.12  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/shadow-manager-component.html) | 
|  2.3.11  | 針對 Greengrass nucleus 2.15.0 版更新版本。 | 
|  2.3.10  | 針對 Greengrass nucleus 2.14.0 版更新版本。 | 
|  2.3.9  | 針對 Greengrass nucleus 2.13.0 版更新版本。 | 
|  2.3.8  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/shadow-manager-component.html) | 
|  2.3.7  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/shadow-manager-component.html) | 
|  2.3.6  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/shadow-manager-component.html) | 
|  2.3.5  | 針對 Greengrass nucleus 2.12.0 版更新版本。 | 
|  2.3.4  |  <a name="changelog-shadow-manager-2.3.4"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/shadow-manager-component.html)  | 
|  2.3.3  | 針對 Greengrass nucleus 2.11.0 版更新版本。 | 
|  2.3.2  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/shadow-manager-component.html) | 
|  2.3.1  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/shadow-manager-component.html) | 
|  2.3.0  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/shadow-manager-component.html) | 
|  2.2.4  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/shadow-manager-component.html) | 
|  2.2.3  | 針對 Greengrass nucleus 2.9.0 版更新版本。 | 
|  2.2.2  | 針對 Greengrass nucleus 2.8.0 版更新版本。 | 
|  2.2.1  |  針對 Greengrass nucleus 2.7.0 版更新版本。  | 
|  2.2.0  |  <a name="changelog-shadow-manager-2.2.0"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/shadow-manager-component.html)  | 
|  2.1.1  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/shadow-manager-component.html)  | 
|  2.1.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/shadow-manager-component.html)  | 
|  2.0.6  |  此版本包含錯誤修正和改善。  | 
|  2.0.5  |  針對 Greengrass nucleus 2.5.0 版更新版本。  | 
|  2.0.4  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/shadow-manager-component.html)  | 
|  2.0.3  |  針對 Greengrass nucleus 2.4.0 版更新版本。  | 
|  2.0.2  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/shadow-manager-component.html)  | 
|  2.0.1  |  針對 Greengrass nucleus 2.3.0 版更新版本。  | 
|  2.0.0  |  初始版本。  | 

# Amazon SNS
<a name="sns-component"></a>

Amazon SNS 元件 (`aws.greengrass.SNS`) 會將訊息發佈至 Amazon Simple Notification Service (Amazon SNS) 主題。您可以使用此元件，將事件從 Greengrass 核心裝置傳送至 Web 伺服器、電子郵件地址和其他訊息訂閱者。如需詳細資訊，請參閱《[Amazon Simple Notification Service 開發人員指南》中的什麼是 Amazon SNS？](https://docs.aws.amazon.com/sns/latest/dg/welcome.html)。 **

若要使用此元件發佈至 Amazon SNS 主題，請將訊息發佈至此元件訂閱的主題。根據預設，此元件會訂閱`sns/message`[本機發佈/訂閱](ipc-publish-subscribe.md)主題。您可以在部署此元件時指定其他主題，包括 AWS IoT Core MQTT 主題。

在自訂元件中，您可能想要實作篩選或格式化邏輯，以便在將訊息發佈到此元件之前處理來自其他來源的訊息。這可讓您將訊息處理邏輯集中在單一元件上。

**注意**  
此元件提供與 AWS IoT Greengrass V1 中的 Amazon SNS 連接器類似的功能。如需詳細資訊，請參閱《*AWS IoT Greengrass V1 開發人員指南*》中的 [Amazon SNS 連接器](https://docs.aws.amazon.com/greengrass/latest/developerguide/sns-connector.html)。

**Topics**
+ [版本](#sns-component-versions)
+ [Type](#sns-component-type)
+ [作業系統](#sns-component-os-support)
+ [要求](#sns-component-requirements)
+ [相依性](#sns-component-dependencies)
+ [Configuration](#sns-component-configuration)
+ [輸入資料](#sns-component-input-data)
+ [輸出資料](#sns-component-output-data)
+ [本機日誌檔案](#sns-component-log-file)
+ [授權](#sns-component-licenses)
+ [變更記錄](#sns-component-changelog)

## 版本
<a name="sns-component-versions"></a>

此元件具有下列版本：
+ 2.1.x
+ 2.0.x

## Type
<a name="sns-component-type"></a>

<a name="public-component-type-lambda"></a>此<a name="public-component-type-lambda-phrase"></a>元件是 Lambda 元件 (`aws.greengrass.lambda`)。[Greengrass 核](greengrass-nucleus-component.md)會使用 Lambda [啟動器元件執行此元件的 Lambda](lambda-launcher-component.md) 函數。

<a name="public-component-type-more-information"></a>如需詳細資訊，請參閱[元件類型](develop-greengrass-components.md#component-types)。

## 作業系統
<a name="sns-component-os-support"></a>

此元件只能在 Linux 核心裝置上安裝。

## 要求
<a name="sns-component-requirements"></a>

此元件有下列需求：
+ <a name="core-device-lambda-function-requirements"></a>您的核心裝置必須符合執行 Lambda 函數的要求。如果您希望核心裝置執行容器化 Lambda 函數，則裝置必須符合執行此作業的要求。如需詳細資訊，請參閱[Lambda 函數需求](setting-up.md#greengrass-v2-lambda-requirements)。
+ <a name="public-component-python3-requirement"></a>安裝在核心裝置上並新增至 PATH 環境變數的 [Python](https://www.python.org/) 3.7 版。
+ Amazon SNS 主題。如需詳細資訊，請參閱《Amazon Simple Notification Service 開發人員指南》**中的[建立 Amazon SNS 主題](https://docs.aws.amazon.com/sns/latest/dg/sns-create-topic.html)。
+ [Greengrass 裝置角色](device-service-role.md)必須允許 `sns:Publish`動作，如下列範例 IAM 政策所示。

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

****  

  ```
  {
    "Version":"2012-10-17",		 	 	 
    "Statement": [
      {
        "Action": [
          "sns:Publish"
        ],
        "Effect": "Allow",
        "Resource": [
          "arn:aws:sns:us-east-1:123456789012:topic-name"
        ]
      }
    ]
  }
  ```

------

  您可以動態覆寫此元件輸入訊息承載中的預設主題。如果您的應用程式使用此功能，IAM 政策必須包含所有目標主題做為資源。您可以為資源授予精細或條件式存取 (例如，使用萬用字元 `*` 命名機制)。
+ <a name="connector-component-legacy-subscription-router-dependency"></a>若要從此元件接收輸出資料，您必須在部署此元件時合併[舊版訂閱路由器元件](legacy-subscription-router-component.md) (`aws.greengrass.LegacySubscriptionRouter`) 的下列組態更新。此組態會指定此元件發佈回應的主題。

------
#### [ Legacy subscription router v2.1.x ]

  ```
  {
    "subscriptions": {
      "aws-greengrass-sns": {
        "id": "aws-greengrass-sns",
        "source": "component:aws.greengrass.SNS",
        "subject": "sns/message/status",
        "target": "cloud"
      }
    }
  }
  ```

------
#### [ Legacy subscription router v2.0.x ]

  ```
  {
    "subscriptions": {
      "aws-greengrass-sns": {
        "id": "aws-greengrass-sns",
        "source": "arn:aws:lambda:region:aws:function:aws-greengrass-sns:version",
        "subject": "sns/message/status",
        "target": "cloud"
      }
    }
  }
  ```<a name="connector-component-legacy-subscription-router-dependency-replace"></a>
  + 以您使用 AWS 區域 的 取代*區域*。
  + ** 以此元件執行的 Lambda 函數版本取代 版本。若要尋找 Lambda 函數版本，您必須檢視要部署之此元件版本的配方。在[AWS IoT Greengrass 主控台](https://console.aws.amazon.com//greengrass)中開啟此元件的詳細資訊頁面，並尋找 **Lambda 函數**鍵/值對。此鍵/值對包含 Lambda 函數的名稱和版本。

**重要**  <a name="connector-component-legacy-subscription-router-dependency-note"></a>
每次部署此元件時，都必須更新舊版訂閱路由器上的 Lambda 函數版本。這可確保針對您部署的元件版本使用正確的 Lambda 函數版本。

------

  <a name="connector-component-create-deployments"></a>如需詳細資訊，請參閱[建立部署](create-deployments.md)。
+ Amazon SNS 元件支援在 VPC 中執行。若要在 VPC 中部署此元件，需要下列項目。
  + Amazon SNS 元件必須具有`sns.region.amazonaws.com`具有 VPC 端點 的連線`com.amazonaws.us-east-1.sns`能力。

### 端點和連接埠
<a name="sns-component-endpoints"></a>

除了基本操作所需的端點和連接埠之外，此元件還必須能夠對下列端點和連接埠執行傳出請求。如需詳細資訊，請參閱[允許透過代理或防火牆的裝置流量](allow-device-traffic.md)。


| Endpoint | 站點 | 必要 | Description | 
| --- | --- | --- | --- | 
|  `sns.region.amazonaws.com`  | 443 | 是 |  將訊息發布到 Amazon SNS。  | 

## 相依性
<a name="sns-component-dependencies"></a>

當您部署元件時， AWS IoT Greengrass 也會部署其相依性的相容版本。這表示您必須符合元件及其所有相依性的要求，才能成功部署元件。本節列出此元件[發行版本的](#sns-component-changelog)相依性，以及為每個相依性定義元件版本的語意版本限制。您也可以在 [AWS IoT Greengrass 主控台](https://console.aws.amazon.com//greengrass)中檢視每個版本元件的相依性。在元件詳細資訊頁面上，尋找**相依性**清單。

------
#### [ 2.1.10 ]

下表列出此元件 2.1.10 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.16.0  | 硬式 | 
| [Lambda 啟動器](lambda-launcher-component.md) | ^2.0.0  | 硬式 | 
| [Lambda 執行階段](lambda-runtimes-component.md) | ^2.0.0  | 軟式 | 
| [權杖交換服務](token-exchange-service-component.md) | ^2.0.0  | 硬式 | 

------
#### [ 2.1.9 ]

下表列出此元件 2.1.9 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.15.0  | 硬式 | 
| [Lambda 啟動器](lambda-launcher-component.md) | ^2.0.0  | 硬式 | 
| [Lambda 執行階段](lambda-runtimes-component.md) | ^2.0.0  | 軟式 | 
| [權杖交換服務](token-exchange-service-component.md) | ^2.0.0  | 硬式 | 

------
#### [ 2.1.8 ]

下表列出此元件 2.1.8 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.14.0  | 硬式 | 
| [Lambda 啟動器](lambda-launcher-component.md) | ^2.0.0  | 硬式 | 
| [Lambda 執行階段](lambda-runtimes-component.md) | ^2.0.0  | 軟式 | 
| [權杖交換服務](token-exchange-service-component.md) | ^2.0.0  | 硬式 | 

------
#### [ 2.1.7 ]

下表列出此元件 2.1.7 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.13.0  | 硬式 | 
| [Lambda 啟動器](lambda-launcher-component.md) | ^2.0.0  | 硬式 | 
| [Lambda 執行階段](lambda-runtimes-component.md) | ^2.0.0  | 軟式 | 
| [權杖交換服務](token-exchange-service-component.md) | ^2.0.0  | 硬式 | 

------
#### [ 2.1.6 ]

下表列出此元件 2.1.6 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.12.0  | 硬式 | 
| [Lambda 啟動器](lambda-launcher-component.md) | ^2.0.0  | 硬式 | 
| [Lambda 執行階段](lambda-runtimes-component.md) | ^2.0.0  | 軟式 | 
| [權杖交換服務](token-exchange-service-component.md) | ^2.0.0  | 硬式 | 

------
#### [ 2.1.5 ]

下表列出此元件 2.1.5 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.11.0  | 硬式 | 
| [Lambda 啟動器](lambda-launcher-component.md) | ^2.0.0  | 硬式 | 
| [Lambda 執行階段](lambda-runtimes-component.md) | ^2.0.0  | 軟式 | 
| [字符交換服務](token-exchange-service-component.md) | ^2.0.0  | 硬式 | 

------
#### [ 2.1.4 ]

下表列出此元件 2.1.4 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.10.0  | 硬式 | 
| [Lambda 啟動器](lambda-launcher-component.md) | ^2.0.0  | 硬式 | 
| [Lambda 執行階段](lambda-runtimes-component.md) | ^2.0.0  | 軟式 | 
| [字符交換服務](token-exchange-service-component.md) | ^2.0.0  | 硬式 | 

------
#### [ 2.1.3 ]

下表列出此元件 2.1.3 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.9.0  | 硬式 | 
| [Lambda 啟動器](lambda-launcher-component.md) | ^2.0.0  | 硬式 | 
| [Lambda 執行階段](lambda-runtimes-component.md) | ^2.0.0  | 軟式 | 
| [權杖交換服務](token-exchange-service-component.md) | ^2.0.0  | 硬式 | 

------
#### [ 2.1.2 ]

下表列出此元件 2.1.2 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.8.0  | 硬式 | 
| [Lambda 啟動器](lambda-launcher-component.md) | ^2.0.0  | 硬式 | 
| [Lambda 執行階段](lambda-runtimes-component.md) | ^2.0.0  | 軟式 | 
| [字符交換服務](token-exchange-service-component.md) | ^2.0.0  | 硬式 | 

------
#### [ 2.1.1 ]

下表列出此元件 2.1.1 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.7.0  | 硬式 | 
| [Lambda 啟動器](lambda-launcher-component.md) | ^2.0.0  | 硬式 | 
| [Lambda 執行階段](lambda-runtimes-component.md) | ^2.0.0  | 軟式 | 
| [權杖交換服務](token-exchange-service-component.md) | ^2.0.0  | 硬式 | 

------
#### [ 2.0.8 - 2.1.0 ]

下表列出此元件 2.0.8 和 2.1.0 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.6.0  | 硬式 | 
| [Lambda 啟動器](lambda-launcher-component.md) | ^2.0.0  | 硬式 | 
| [Lambda 執行階段](lambda-runtimes-component.md) | ^2.0.0  | 軟式 | 
| [字符交換服務](token-exchange-service-component.md) | ^2.0.0  | 硬式 | 

------
#### [ 2.0.7 ]

下表列出此元件 2.0.7 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.5.0  | 硬式 | 
| [Lambda 啟動器](lambda-launcher-component.md) | ^2.0.0  | 硬式 | 
| [Lambda 執行階段](lambda-runtimes-component.md) | ^2.0.0  | 軟式 | 
| [字符交換服務](token-exchange-service-component.md) | ^2.0.0  | 硬式 | 

------
#### [ 2.0.6 ]

下表列出此元件 2.0.6 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.4.0  | 硬式 | 
| [Lambda 啟動器](lambda-launcher-component.md) | ^2.0.0  | 硬式 | 
| [Lambda 執行階段](lambda-runtimes-component.md) | ^2.0.0  | 軟式 | 
| [權杖交換服務](token-exchange-service-component.md) | ^2.0.0  | 硬式 | 

------
#### [ 2.0.5 ]

下表列出此元件 2.0.5 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.3.0  | 硬式 | 
| [Lambda 啟動器](lambda-launcher-component.md) | ^2.0.0  | 硬式 | 
| [Lambda 執行階段](lambda-runtimes-component.md) | ^2.0.0  | 軟式 | 
| [字符交換服務](token-exchange-service-component.md) | ^2.0.0  | 硬式 | 

------
#### [ 2.0.4 ]

下表列出此元件 2.0.4 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.0 <2.2.0  | 硬式 | 
| [Lambda 啟動器](lambda-launcher-component.md) | ^2.0.0  | 硬式 | 
| [Lambda 執行階段](lambda-runtimes-component.md) | ^2.0.0  | 軟式 | 
| [權杖交換服務](token-exchange-service-component.md) | ^2.0.0  | 硬式 | 

------
#### [ 2.0.3 ]

下表列出此元件 2.0.3 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.0.3 <2.1.0  | 硬式 | 
| [Lambda 啟動器](lambda-launcher-component.md) | >=1.0.0  | 硬式 | 
| [Lambda 執行階段](lambda-runtimes-component.md) | >=1.0.0  | 軟式 | 
| [權杖交換服務](token-exchange-service-component.md) | >=1.0.0  | 硬式 | 

------

如需元件相依性的詳細資訊，請參閱[元件配方參考](component-recipe-reference.md#recipe-reference-component-dependencies)。

## Configuration
<a name="sns-component-configuration"></a>

此元件提供下列組態參數，您可以在部署元件時自訂這些參數。

**注意**  <a name="connector-component-lambda-parameters"></a>
此元件的預設組態包含 Lambda 函數參數。建議您只編輯下列參數，以在裝置上設定此元件。

`lambdaParams`  
包含此元件 Lambda 函數參數的物件。此物件包含下列資訊：    
`EnvironmentVariables`  
包含 Lambda 函數參數的物件。此物件包含下列資訊：    
`DEFAULT_SNS_ARN`  
此元件發佈訊息之預設 Amazon SNS 主題的 ARN。您可以使用輸入訊息承載中的 `sns_topic_arn` 屬性覆寫目的地主題。

`containerMode`  <a name="connector-component-container-mode-parameter"></a>
（選用） 此元件的容器化模式。您可以從以下選項中選擇：  <a name="lambda-function-component-container-mode-parameter"></a>
+ `NoContainer` – 元件不會在隔離的執行時間環境中執行。
+ `GreengrassContainer` – 元件會在 AWS IoT Greengrass 容器內的隔離執行時間環境中執行。
預設：`GreengrassContainer`

`containerParams`  
<a name="connector-component-container-params-description"></a>（選用） 包含此元件容器參數的物件。如果您`GreengrassContainer`為 指定 ，元件會使用這些參數`containerMode`。  
此物件包含下列資訊：    
`memorySize`  
<a name="connector-component-container-params-memory-size-description"></a>（選用） 要配置給元件的記憶體量 （以 KB 為單位）。  
預設為 512 MB (525，312 KB)。

`pubsubTopics`  <a name="connector-component-pubsub-topics-parameter"></a>
（選用） 物件，其中包含元件訂閱接收訊息的主題。您可以指定每個主題，以及元件是從 訂閱 MQTT 主題 AWS IoT Core 或本機發佈/訂閱主題。  
此物件包含下列資訊：    
`0` – 這是做為字串的陣列索引。  
包含下列資訊的物件：    
`type`  
（選用） 此元件用來訂閱訊息的發佈/訂閱訊息類型。您可以從以下選項中選擇：  
+ `PUB_SUB` - 訂閱本機發佈/訂閱訊息。如果您選擇此選項，主題不能包含 MQTT 萬用字元。如需在指定此選項時如何從自訂元件傳送訊息的詳細資訊，請參閱 [發佈/訂閱本機訊息](ipc-publish-subscribe.md)。
+ `IOT_CORE` – 訂閱 AWS IoT Core MQTT 訊息。如果您選擇此選項，主題可以包含 MQTT 萬用字元。如需在指定此選項時如何從自訂元件傳送訊息的詳細資訊，請參閱 [發佈/訂閱 AWS IoT Core MQTT 訊息](ipc-iot-core-mqtt.md)。
預設：`PUB_SUB`  
`topic`  
（選用） 元件訂閱接收訊息的主題。如果您`IotCore`為 指定 `type`，則可以在本主題中使用 MQTT 萬用字元 (`+` 和 `#`)。

**Example 範例：組態合併更新 （容器模式）**  

```
{
  "lambdaExecutionParameters": {
    "EnvironmentVariables": {
      "DEFAULT_SNS_ARN": "arn:aws:sns:us-west-2:123456789012:mytopic"
    }
  },
  "containerMode": "GreengrassContainer"
}
```

**Example 範例：組態合併更新 （無容器模式）**  

```
{
  "lambdaExecutionParameters": {
    "EnvironmentVariables": {
      "DEFAULT_SNS_ARN": "arn:aws:sns:us-west-2:123456789012:mytopic"
    }
  },
  "containerMode": "NoContainer"
}
```

## 輸入資料
<a name="sns-component-input-data"></a>

此元件接受下列主題的訊息，並將訊息依原樣發佈至目標 Amazon SNS 主題。<a name="connector-component-local-publish"></a>根據預設，此元件會訂閱本機發佈/訂閱訊息。如需如何從自訂元件發佈訊息至此元件的詳細資訊，請參閱[發佈/訂閱本機訊息](ipc-publish-subscribe.md)。

**預設主題 （本機發佈/訂閱）：** `sns/message`

<a name="connector-component-input-properties"></a>訊息接受下列屬性。輸入訊息必須是 JSON 格式。

`request`  
要傳送至 Amazon SNS 主題的訊息相關資訊。  
類型：`object`包含下列資訊：    
`message`  
訊息的內容做為字串。  
若要傳送 JSON 物件，請將它序列化為字串，並為 `message_structure` 屬性指定 `json` 。  
類型：`string`  
`subject`  
（選用） 訊息的主旨。  
類型：`string`  
主旨可以是 ASCII 文字，最多 100 個字元。它必須以字母、數字或標點符號開頭。它不能包含換行符號或控制字元。  
`sns_topic_arn`  
（選用） 此元件發佈訊息之 Amazon SNS 主題的 ARN。指定此屬性以覆寫預設的 Amazon SNS 主題。  
類型：`string`  
`message_structure`  
（選用） 訊息的結構。指定 `json`傳送您在 `content` 屬性中序列化為字串的 JSON 訊息。  
類型：`string`  
有效值：`json`

`id`  <a name="connector-component-input-property-id"></a>
請求的任意 ID。使用此屬性將輸入請求映射至輸出回應。當您指定此屬性時，元件會將回應物件中的 `id` 屬性設定為此值。  
類型：`string`

**注意**  
訊息大小上限為 256 KB。

**Example 範例輸入：字串訊息**  

```
{
  "request": {
    "subject": "Message subject",
    "message": "Message data",
    "sns_topic_arn": "arn:aws:sns:region:account-id:topic2-name"
  },
  "id": "request123"
}
```

**Example 範例輸入：JSON 訊息**  

```
{
  "request": {
    "subject": "Message subject",
    "message": "{ \"default\": \"Message data\" }",
    "message_structure": "json"
  },
  "id": "request123"
}
```

## 輸出資料
<a name="sns-component-output-data"></a>

 <a name="connector-component-output-data"></a>此元件預設會將回應發佈為下列 MQTT 主題的輸出資料。您必須將此主題指定為[舊版訂閱路由器元件](legacy-subscription-router-component.md)組態`subject`中的 。如需如何在自訂元件中訂閱此主題訊息的詳細資訊，請參閱 [發佈/訂閱 AWS IoT Core MQTT 訊息](ipc-iot-core-mqtt.md)。

**預設主題 (AWS IoT Core MQTT)：** `sns/message/status`

**Example 範例輸出：成功**  

```
{
  "response": {
    "sns_message_id": "f80a81bc-f44c-56f2-a0f0-d5af6a727c8a",
    "status": "success"
  },
  "id": "request123"
}
```

**Example 範例輸出：失敗**  

```
{
  "response" : {
    "error": "InvalidInputException",
    "error_message": "SNS Topic Arn is invalid",
    "status": "fail"
  },
  "id": "request123"
}
```

## 本機日誌檔案
<a name="sns-component-log-file"></a>

此元件使用以下日誌檔案。

```
/greengrass/v2/logs/aws.greengrass.SNS.log
```

**檢視此元件的日誌**
+ 在核心裝置上執行下列命令，以即時檢視此元件的日誌檔案。`/greengrass/v2` 將 取代為 AWS IoT Greengrass 根資料夾的路徑。

  ```
  sudo tail -f /greengrass/v2/logs/aws.greengrass.SNS.log
  ```

## 授權
<a name="sns-component-licenses"></a>

此元件包含下列第三方軟體/授權：<a name="boto-3-licenses"></a>
+ [適用於 Python (Boto3) 的 AWS SDK](https://pypi.org/project/boto3/)/Apache License 2.0
+ [botocore](https://pypi.org/project/botocore/)/Apache License 2.0
+ [dateutil](https://pypi.org/project/python-dateutil/1.4/)/PSF License
+ [docutils](https://pypi.org/project/docutils/)/BSD 授權、GNU 一般公有授權 (GPL)、Python 軟體基金會授權、公有網域
+ [jmespath](https://pypi.org/project/jmespath/)/MIT License
+ [s3transfer](https://pypi.org/project/s3transfer/)/Apache License 2.0
+ [urllib3](https://pypi.org/project/urllib3/)/MIT License

<a name="component-core-software-license"></a>此元件根據 [Greengrass 核心軟體授權合約](https://greengrass-release-license.s3.us-west-2.amazonaws.com/greengrass-license-v1.pdf)發行。

## 變更記錄
<a name="sns-component-changelog"></a>

下表說明每個版本元件的變更。


|  **版本**  |  **變更**  | 
| --- | --- | 
|  2.1.10  | 針對 Greengrass nucleus 2.15.0 版更新版本。 | 
|  2.1.9  | 針對 Greengrass nucleus 2.14.0 版更新版本。 | 
|  2.1.8  | 針對 Greengrass nucleus 2.13.0 版更新版本。 | 
|  2.1.7  | 針對 Greengrass nucleus 2.12.0 版更新版本。 | 
|  2.1.6  | 針對 Greengrass nucleus 2.11.0 版更新版本。 | 
|  2.1.5  | 針對 Greengrass nucleus 2.10.0 版更新版本。 | 
|  2.1.4  | 針對 Greengrass nucleus 2.9.0 版更新版本。 | 
|  2.1.3  | 針對 Greengrass nucleus 2.8.0 版更新版本。 | 
|  2.1.2  |  針對 Greengrass nucleus 2.7.0 版更新版本。  | 
|  2.1.1  |  針對 Greengrass nucleus 2.6.0 版更新版本。  | 
|  2.1.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/sns-component.html)  | 
|  2.0.8  |  針對 Greengrass nucleus 2.5.0 版更新版本。  | 
|  2.0.7  |  針對 Greengrass nucleus 2.4.0 版更新版本。  | 
|  2.0.6  |  針對 Greengrass nucleus 2.3.0 版更新版本。  | 
|  2.0.5  |  針對 Greengrass nucleus 2.2.0 版更新版本。  | 
|  2.0.4  |  針對 Greengrass nucleus 2.1.0 版更新版本。  | 
|  2.0.3  |  初始版本。  | 

# 串流管理員
<a name="stream-manager-component"></a>

串流管理員元件 (`aws.greengrass.StreamManager`) 可讓您處理資料串流，以 AWS 雲端 從 Greengrass 核心裝置傳輸到 。

如需如何在自訂元件中設定和使用串流管理員的詳細資訊，請參閱 [管理 Greengrass 核心裝置上的資料串流](manage-data-streams.md)。

**Topics**
+ [版本](#stream-manager-component-versions)
+ [類型](#stream-manager-component-type)
+ [作業系統](#stream-manager-component-os-support)
+ [要求](#stream-manager-component-requirements)
+ [相依性](#stream-manager-component-dependencies)
+ [Configuration](#stream-manager-component-configuration)
+ [本機日誌檔案](#stream-manager-component-log-file)
+ [變更記錄](#stream-manager-component-changelog)

## 版本
<a name="stream-manager-component-versions"></a>

此元件具有下列版本：
+ 2.2.x 版本
+ 2.1.x
+ 2.0.x

**注意**  <a name="stream-manager-upgrade-note"></a>
如果您使用串流管理員將資料匯出至雲端，則無法將串流管理員元件的 2.0.7 版升級至 v2.0.8 和 v2.0.11 之間的版本。如果您是第一次部署串流管理員，強烈建議您部署最新版本的串流管理員元件。

## 類型
<a name="stream-manager-component-type"></a>

<a name="public-component-type-generic"></a>此<a name="public-component-type-generic-phrase"></a>元件是一般元件 (`aws.greengrass.generic`)。[Greengrass 核](greengrass-nucleus-component.md)會執行元件的生命週期指令碼。

<a name="public-component-type-more-information"></a>如需詳細資訊，請參閱[元件類型](develop-greengrass-components.md#component-types)。

## 作業系統
<a name="stream-manager-component-os-support"></a>

此元件可以安裝在執行下列作業系統的核心裝置上：
+ Linux
+ Windows

## 要求
<a name="stream-manager-component-requirements"></a>

此元件有下列需求：
+ [字符交換角色](device-service-role.md)必須允許存取您搭配串流管理員使用的 AWS 雲端 目的地。如需詳細資訊，請參閱：<a name="export-destinations-links"></a>
  + [AWS IoT Analytics 頻道](stream-export-configurations.md#export-to-iot-analytics)
  + [Amazon Kinesis 資料串流](stream-export-configurations.md#export-to-kinesis)
  + [AWS IoT SiteWise 資產屬性](stream-export-configurations.md#export-to-iot-sitewise)
  + [Amazon S3 物件](stream-export-configurations.md#export-to-s3)
+ 支援在 VPC 中執行串流管理員元件。若要在 VPC 中部署此元件，需要下列項目。
  + 串流管理員元件必須與您發佈資料的 AWS 服務具有連線能力。
    + Amazon S3： `com.amazonaws.region.s3`
    + Amazon Kinesis Data Streams： `com.amazonaws.region.kinesis-streams`
    + AWS IoT SiteWise: `com.amazonaws.region.iotsitewise.data`
  + 如果您將資料發佈至 `us-east-1`區域中的 Amazon S3，此元件預設會嘗試使用 S3 全域端點；不過，此端點無法透過 Amazon S3 VPC 介面端點使用。如需詳細資訊，請參閱 [AWS PrivateLink Amazon S3 的限制。](https://docs.aws.amazon.com/AmazonS3/latest/userguide/privatelink-interface-endpoints.html#privatelink-limitations)若要解決此問題，您可以從下列選項中選擇。
    + 透過在 中設定 ，將串流管理員元件設定為使用`us-east-1`區域中的區域 S3 `-Daws.s3UseUsEast1RegionalEndpoint=regional` 端點`JVM_ARGS`。
    + 建立 Amazon S3 閘道 VPC 端點，而不是 Amazon S3 介面 VPC 端點。S3 閘道端點支援存取 S3 全域端點。如需詳細資訊，請參閱[建立閘道端點](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-s3.html#create-gateway-endpoint-s3)。

### 端點和連接埠
<a name="stream-manager-component-endpoints"></a>

除了基本操作所需的端點和連接埠之外，此元件還必須能夠對下列端點和連接埠執行傳出請求。如需詳細資訊，請參閱[允許透過代理或防火牆的裝置流量](allow-device-traffic.md)。


| Endpoint | 連線埠 | 必要 | 說明 | 
| --- | --- | --- | --- | 
|  `iotanalytics.region.amazonaws.com`  | 443 | 否 |  如果您將資料發佈至 ，則為必要項目 AWS IoT Analytics。  | 
|  `kinesis.region.amazonaws.com`  | 443 | 否 |  如果您將資料發佈至 Firehose，則為必要項目。  | 
|  `data.iotsitewise.region.amazonaws.com`  | 443 | 否 |  如果您將資料發佈至 ，則為必要項目 AWS IoT SiteWise。  | 
|  `*.s3.amazonaws.com`  | 443 | 否 |  如果您將資料發佈至 S3 儲存貯體，則為必要項目。 您可以將 取代`*`為您發佈資料的每個儲存貯體的名稱。  | 

## 相依性
<a name="stream-manager-component-dependencies"></a>

當您部署元件時， AWS IoT Greengrass 也會部署其相依性的相容版本。這表示您必須符合元件及其所有相依性的要求，才能成功部署元件。本節列出此元件[發行版本的](#stream-manager-component-changelog)相依性，以及為每個相依性定義元件版本的語意版本限制。您也可以在 [AWS IoT Greengrass 主控台](https://console.aws.amazon.com//greengrass)中檢視每個版本元件的相依性。在元件詳細資訊頁面上，尋找**相依性**清單。

------
#### [ 2.1.3 – 2.2.1 ]

下表列出此元件 2.1.3 至 2.2.1 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) |  >=2.0.0 <3.0.0  | 軟式 | 
| [字符交換服務](token-exchange-service-component.md) |  >=0.0.0  | 硬式 | 

------
#### [ 2.1.11 – 2.1.12 ]

下表列出此元件 2.1.11 至 2.1.10 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) |  >=2.0.0 <2.13.0  | 軟式 | 
| [字符交換服務](token-exchange-service-component.md) |  >=0.0.0  | 硬式 | 

------
#### [ 2.1.9 – 2.1.10 ]

下表列出此元件 2.1.9 至 2.1.10 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) |  >=2.0.0 <2.12.0  | 軟式 | 
| [字符交換服務](token-exchange-service-component.md) |  >=0.0.0  | 硬式 | 

------
#### [ 2.1.5 – 2.1.8 ]

下表列出此元件 2.1.5 至 2.1.8 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) |  >=2.0.0 <2.11.0  | 軟式 | 
| [字符交換服務](token-exchange-service-component.md) |  >=0.0.0  | 硬式 | 

------
#### [ 2.1.2 – 2.1.4 ]

下表列出此元件 2.1.2 至 2.1.4 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) |  >=2.0.0 <2.10.0  | 軟式 | 
| [權杖交換服務](token-exchange-service-component.md) |  >=0.0.0  | 硬式 | 

------
#### [ 2.1.1 ]

下表列出此元件 2.1.1 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) |  >=2.0.0 <2.9.0  | 軟式 | 
| [權杖交換服務](token-exchange-service-component.md) |  >=0.0.0  | 硬式 | 

------
#### [ 2.1.0 ]

下表列出此元件 2.1.0 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) |  >=2.0.0 <2.8.0  | 軟式 | 
| [權杖交換服務](token-exchange-service-component.md) |  >=0.0.0  | 硬式 | 

------
#### [ 2.0.15 ]

下表列出此元件 2.0.15 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) |  >=2.0.0 <2.7.0  | 軟式 | 
| [權杖交換服務](token-exchange-service-component.md) |  >=0.0.0  | 硬式 | 

------
#### [ 2.0.13 and 2.0.14 ]

下表列出此元件 2.0.13 和 2.0.14 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) |  >=2.0.0 <2.6.0  | 軟式 | 
| [權杖交換服務](token-exchange-service-component.md) |  >=0.0.0  | 硬式 | 

------
#### [ 2.0.11 and 2.0.12 ]

下表列出此元件 2.0.11 和 2.0.12 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) |  >=2.0.0 <2.5.0  | 軟式 | 
| [權杖交換服務](token-exchange-service-component.md) |  >=0.0.0  | 硬式 | 

------
#### [ 2.0.10 ]

下表列出此元件 2.0.10 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) |  >=2.0.0 <2.4.0  | 軟式 | 
| [字符交換服務](token-exchange-service-component.md) |  >=0.0.0  | 硬式 | 

------
#### [ 2.0.9 ]

下表列出此元件 2.0.9 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) |  >=2.0.0 <2.3.0  | 軟式 | 
| [字符交換服務](token-exchange-service-component.md) |  >=0.0.0  | 硬式 | 

------
#### [ 2.0.8 ]

下表列出此元件 2.0.8 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) |  >=2.0.0 <2.2.0  | 軟式 | 
| [權杖交換服務](token-exchange-service-component.md) |  >=0.0.0  | 硬式 | 

------
#### [ 2.0.7 ]

下表列出此元件 2.0.7 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) |  >=2.0.3 <2.1.0  | 軟式 | 
| [字符交換服務](token-exchange-service-component.md) |  >=0.0.0  | 硬式 | 

------

如需元件相依性的詳細資訊，請參閱[元件配方參考](component-recipe-reference.md#recipe-reference-component-dependencies)。

## Configuration
<a name="stream-manager-component-configuration"></a>

此元件提供下列組態參數，您可以在部署元件時自訂這些參數。

`STREAM_MANAGER_STORE_ROOT_DIR`  
（選用） 用於存放串流之本機目錄的絕對路徑。此值必須以正斜線開頭 (例如 `/data`)。  
<a name="stream-manager-store-root-dir-parameter-folder-requirements"></a>您必須指定現有的資料夾，而且[執行串流管理員元件的系統使用者](configure-greengrass-core-v2.md#configure-component-user)必須具有讀取和寫入此資料夾的許可。例如，您可以執行下列命令來建立和設定資料夾 `/var/greengrass/streams`，您可以將其指定為串流管理員根資料夾。這些命令允許預設系統使用者 `ggc_user`讀取和寫入此資料夾。  

```
sudo mkdir /var/greengrass/streams
sudo chown ggc_user /var/greengrass/streams
sudo chmod 700 /var/greengrass/streams
```
預設：`/greengrass/v2/work/aws.greengrass.StreamManager`

`STREAM_MANAGER_SERVER_PORT`  
（選用） 用於與串流管理員通訊的本機連接埠號碼。  
您可以指定 `0`使用隨機的可用連接埠。  
預設：`8088`

`STREAM_MANAGER_AUTHENTICATE_CLIENT`  
（選用） 用戶端必須先進行身分驗證，才能與串流管理員互動。串流管理員 SDK 控制用戶端和串流管理員之間的互動。此參數會決定哪些用戶端可以呼叫 Stream Manager SDK 來使用串流。如需詳細資訊，請參閱[串流管理員用戶端身分驗證](manage-data-streams.md#stream-manager-security-client-authentication)。  
如果您指定 `true`，串流管理員 SDK 僅允許 Greengrass 元件做為用戶端。  
如果您指定 `false`，串流管理員 SDK 可讓核心裝置上的所有程序成為用戶端。  
預設：`true`

`STREAM_MANAGER_EXPORTER_MAX_BANDWIDTH`  
（選用） 串流管理員可用來匯出資料的平均最大頻寬 （以每秒 KB 為單位）。  
預設：無限制

`STREAM_MANAGER_EXPORTER_THREAD_POOL_SIZE`  
（選用） 串流管理員可用來匯出資料的作用中執行緒數目上限。  
最佳大小取決於您的硬體、串流磁碟區和規劃的匯出串流數量。如果匯出速度很慢，您可以調整此設定，找出適合您硬體和商務案例的最佳大小。核心裝置硬體的 CPU 和記憶體是限制因素。首先，您可以嘗試將此值設定為等同於裝置上處理器核心的數量。  
請小心不要設定高於硬體可支援的大小。每個串流都會耗用硬體資源，因此請嘗試限制受限裝置上的匯出串流數量。  
預設：5 個執行緒

`STREAM_MANAGER_EXPORTER_S3_DESTINATION_MULTIPART_UPLOAD_MIN_PART_SIZE_BYTES`  
（選用） 分段中組件的大小下限 （以位元組為單位） 上傳至 Amazon S3。串流管理員使用此設定和輸入檔案的大小，來判斷如何在分段 PUT 請求中批次處理資料。  
串流管理員使用串流`sizeThresholdForMultipartUploadBytes`屬性來判斷要匯出至 Amazon S3 做為單一或分段上傳。 AWS IoT Greengrass 元件可以在建立匯出至 Amazon S3 的串流時設定此閾值。
預設： `5242880` (5 MB)。這也是最小值。

`LOG_LEVEL`  
（選用） 元件的記錄層級。從下列日誌層級中選擇，此處依層級順序列出：  
+ `TRACE`
+ `DEBUG`
+ `INFO`
+ `WARN`
+ `ERROR`
預設：`INFO`

`JVM_ARGS`  
（選用） 啟動時要傳遞給串流管理員的自訂 Java 虛擬機器引數。依空格分隔多個引數。  
僅限必須覆寫 JVM 使用的預設設定時，才能使用此參數。例如，如果您計劃匯出大量串流，可能需要增加預設堆積大小。

`startupTimeoutSeconds`  
（選用） 元件啟動的時間上限，以秒為單位。`ERRORED` 如果元件超過此逾時，元件的狀態會變更為 。  
預設：`120`

**Example 範例：組態合併更新**  
下列範例組態指定 使用非預設連接埠。  

```
{
  "STREAM_MANAGER_SERVER_PORT": "18088"
}
```

## 本機日誌檔案
<a name="stream-manager-component-log-file"></a>

此元件使用以下日誌檔案。

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

```
/greengrass/v2/logs/aws.greengrass.StreamManager.log
```

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

```
C:\greengrass\v2\logs\aws.greengrass.StreamManager.log
```

------

**檢視此元件的日誌**
+ 在核心裝置上執行下列命令，以即時檢視此元件的日誌檔案。將 `/greengrass/v2`或 *C：\$1greengrass\$1v2* 取代為 AWS IoT Greengrass 根資料夾的路徑。

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

  ```
  sudo tail -f /greengrass/v2/logs/aws.greengrass.StreamManager.log
  ```

------
#### [ Windows (PowerShell) ]

  ```
  Get-Content C:\greengrass\v2\logs\aws.greengrass.StreamManager.log -Tail 10 -Wait
  ```

------

## 變更記錄
<a name="stream-manager-component-changelog"></a>

下表說明每個版本元件的變更。


|  **版本**  |  **變更**  | 
| --- | --- | 
|  2.2.1  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/stream-manager-component.html) | 
|  2.2.0  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/stream-manager-component.html) | 
|  2.1.13  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/stream-manager-component.html) | 
|  2.1.12  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/stream-manager-component.html) | 
|  2.1.11  | 針對 Greengrass nucleus 2.12.0 版更新版本。 | 
|  2.1.10  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/stream-manager-component.html)  | 
|  2.1.9  | 針對 Greengrass nucleus 2.11.0 版更新版本。 | 
|  2.1.8  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/stream-manager-component.html)  | 
|  2.1.7  |  <a name="changelog-stream-manager-2.1.7"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/stream-manager-component.html)  | 
|  2.1.6  |  <a name="changelog-stream-manager-2.1.6"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/stream-manager-component.html)  | 
|  2.1.5  | 針對 Greengrass nucleus 2.10.0 版更新版本。 | 
|  2.1.4  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/stream-manager-component.html)  | 
|  2.1.3  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/stream-manager-component.html)  | 
|  2.1.2  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/stream-manager-component.html)  | 
|  2.1.1  | 針對 Greengrass nucleus 2.8.0 版更新版本。 | 
|  2.1.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/stream-manager-component.html)  | 
|  2.0.15  |  針對 Greengrass nucleus 2.6.0 版更新版本。  | 
|  2.0.14  |  此版本包含錯誤修正和改善。  | 
|  2.0.13  |  針對 Greengrass nucleus 2.5.0 版更新版本。  | 
| 2.0.12 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/stream-manager-component.html)  | 
|  2.0.11  |  針對 Greengrass nucleus 2.4.0 版更新版本。  | 
|  2.0.10  |  針對 Greengrass nucleus 2.3.0 版更新版本。  | 
|  2.0.9  |  針對 Greengrass nucleus 2.2.0 版更新版本。  | 
|  2.0.8  |  針對 Greengrass nucleus 2.1.0 版更新版本。  | 
|  2.0.7  |  初始版本。  | 

# 系統日誌轉寄站
<a name="system-log-forwarder-component"></a>

系統日誌轉送器 (`aws.greengrass.SystemLogForwarder`) 會使用 Amazon CloudWatch CloudWatch。

**重要**  
此元件只會轉送執行時間期間產生的 systemd-journald 日誌。如需 systemd-journald 日誌的詳細資訊，請參閱 [systemd-journald](https://www.freedesktop.org/software/systemd/man/latest/systemd-journald.service.html) 和 [journalctl](https://www.freedesktop.org/software/systemd/man/latest/journalctl.html#)。

**注意**  
此元件需要特定許可，才能建立和管理 CloudWatch 日誌群組和串流。

**Topics**
+ [版本](#system-log-forwarder-component-versions)
+ [Type](#system-log-forwarder-component-type)
+ [作業系統](#system-log-forwarder-component-os-support)
+ [要求](#system-log-forwarder-component-requirements)
+ [端點和連接埠](#system-log-forwarder-component-endpoints)
+ [相依性](#system-log-forwarder-component-dependencies)
+ [Configuration](#system-log-forwarder-component-configuration)
+ [變更記錄](#system-log-forwarder-component-changelog)

## 版本
<a name="system-log-forwarder-component-versions"></a>

此元件具有下列版本：
+ 2.1.x
+ 2.0.x

## Type
<a name="system-log-forwarder-component-type"></a>

<a name="public-component-type-generic"></a>此<a name="public-component-type-generic-phrase"></a>元件是一般元件 (`aws.greengrass.generic`)。[Greengrass 核](greengrass-nucleus-component.md)會執行元件的生命週期指令碼。

<a name="public-component-type-more-information"></a>如需詳細資訊，請參閱[元件類型](develop-greengrass-components.md#component-types)。

## 作業系統
<a name="system-log-forwarder-component-os-support"></a>

此元件必須安裝在以系統為基礎的 Linux 系統上。

## 要求
<a name="system-log-forwarder-component-requirements"></a>

此元件有下列需求：

元件需要存取才能在 CloudWatch 中建立日誌和串流群組，以及執行 PutLogEvents HTTP 呼叫的許可。您必須至少將下列政策許可新增至 Greengrass 裝置的角色別名：

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
    {
      "Effect": "Allow",
      "Action": ["logs:CreateLogGroup"],
      "Resource": "arn:aws:logs:us-east-1:111122223333:log-group:greengrass/systemLogs:*"
    },
    {
      "Effect": "Allow",
      "Action": ["logs:CreateLogStream", "logs:PutLogEvents"],
      "Resource": "arn:aws:logs:us-east-1:111122223333:log-group:greengrass/systemLogs:log-stream:${credentials-iot:ThingName}"
    }
  ]
}
```

------

**注意**  
如需詳細資訊，請參閱 System Log Forwarder [Github](https://github.com/aws-greengrass/aws-greengrass-system-log-forwarder) 頁面。

## 端點和連接埠
<a name="system-log-forwarder-component-endpoints"></a>

除了基本操作所需的端點和連接埠之外，此元件還必須能夠對下列端點和連接埠執行傳出請求。如需詳細資訊，請參閱[允許透過代理或防火牆的裝置流量](allow-device-traffic.md)。


| Endpoint | 站點 | 必要 | Description | 
| --- | --- | --- | --- | 
|  `logs.region.amazonaws.com`  | 443 | 否 |  如果您將日誌寫入 CloudWatch Logs，則為必要項目。  | 

## 相依性
<a name="system-log-forwarder-component-dependencies"></a>

當您部署元件時， AWS IoT Greengrass 也會部署其相依性的相容版本。這表示您必須符合元件及其所有相依性的要求，才能成功部署元件。本節列出此元件[發行版本的](#system-log-forwarder-component-changelog)相依性，以及為每個相依性定義元件版本的語意版本限制。您也可以在 [AWS IoT Greengrass 主控台](https://console.aws.amazon.com//greengrass)中檢視每個版本元件的相依性。在元件詳細資訊頁面上，尋找**相依性**清單。

------
#### [ 2.1.x ]

下表列出此元件 2.1.x 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [權杖交換服務](token-exchange-service-component.md) | >=2.0.0 | 硬式 | 
| [Greengrass nucleus lite](greengrass-nucleus-lite-component.md) | >=2.3.0 | 軟式 | 

------
#### [ 2.0.x ]

下表列出此元件 2.0.x 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [權杖交換服務](token-exchange-service-component.md) | >=2.0.0 | 硬式 | 

------

## Configuration
<a name="system-log-forwarder-component-configuration"></a>

此元件提供下列組態參數，您可以在部署元件時自訂這些參數。

------
#### [ 2.0.x-2.1.x ]

`maxUploadIntervalSec`  
系統日誌轉送器將嘗試上傳日誌的最長期間。由於日誌轉送器會在記憶體填滿時上傳日誌，因此其上傳頻率可能仍高於設定的最大節奏。

`maxRetriesCount`  
系統日誌轉寄站嘗試重試暫時性 HTTP 錯誤的次數。

`bufferCapacity`  
記憶體內日誌儲存的環形緩衝區大小。

`logGroup`  
CloudWatch 中的日誌路徑。

`logStream`  
CloudWatch logStream。

`filters`  
核心裝置的篩選條件組態映射。    
`services`  
System Log Forwarder 將用於判斷上傳哪些日誌的服務名稱篩選條件清單。只有在源自 的服務符合此清單中的至少一個篩選條件時，才會上傳日誌。此清單中的篩選條件可能是服務名稱必須完全相符的字串，或是結尾為 \$1 的字串，這表示字首必須相符。  
預設：`[ggl.*]`  
只有在源自 的服務符合此清單中的至少一個篩選條件時，才會上傳日誌。
使用值 \$1 將包含所有可用的服務。

**Example 範例組態：**  
以下範例會依 Greengrass Nucleus Lite 中包含的所有服務篩選日誌。  

```
{
    "maxUploadIntervalSec": 300,
    "maxRetriesCount": 3,
    "bufferCapacity": 1048576,
    "logGroup": "greengrass/systemLogs",
    "logStream": "deviceName",
    "filters": {
        "services": ["ggl.*"]
    }
}
```

------

## 變更記錄
<a name="system-log-forwarder-component-changelog"></a>

下表說明每個版本元件的變更。


|  **版本**  |  **變更**  | 
| --- | --- | 
|  2.1.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/system-log-forwarder-component.html)  | 
|  2.0.1  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/system-log-forwarder-component.html)  | 
|  2.0.0  |  初始版本。  | 

# Systems Manager 代理程式
<a name="systems-manager-agent-component"></a>

Agent AWS Systems Manager 元件 (`aws.greengrass.SystemsManagerAgent`) 會安裝 Systems Manager Agent，因此您可以使用 Systems Manager 管理核心裝置。Systems Manager 是一項 AWS 服務，可讓您用來檢視和控制 上的基礎設施 AWS，包括 Amazon EC2 執行個體、內部部署伺服器和虛擬機器 VMs)，以及邊緣裝置。Systems Manager 可讓您檢視操作資料、自動化操作任務，以及維護安全性和合規性。如需詳細資訊，請參閱*AWS Systems Manager 《 使用者指南*》中的[什麼是 AWS Systems Manager？](https://docs.aws.amazon.com/systems-manager/latest/userguide/what-is-systems-manager.html)以及[關於 Systems Manager 代理](https://docs.aws.amazon.com/systems-manager/latest/userguide/prereqs-ssm-agent.html)程式。

<a name="about-systems-manager-capabilities"></a>Systems Manager 工具和功能稱為*功能*。Greengrass 核心裝置支援所有 Systems Manager 功能。如需這些功能以及如何使用 Systems Manager 管理核心裝置的詳細資訊，請參閱*AWS Systems Manager 《 使用者指南*》中的 [Systems Manager 功能](https://docs.aws.amazon.com/systems-manager/latest/userguide/features.html)。

**Topics**
+ [版本](#systems-manager-agent-component-versions)
+ [類型](#systems-manager-agent-component-type)
+ [作業系統](#systems-manager-agent-component-os-support)
+ [要求](#systems-manager-agent-component-requirements)
+ [相依性](#systems-manager-agent-component-dependencies)
+ [Configuration](#systems-manager-agent-component-configuration)
+ [本機日誌檔案](#systems-manager-agent-component-log-file)
+ [另請參閱](#systems-manager-agent-component-see-also)
+ [變更記錄](#systems-manager-agent-component-changelog)

## 版本
<a name="systems-manager-agent-component-versions"></a>

此元件具有下列版本：
+ 1.3.x
+ 1.2.x
+ 1.1.x
+ 1.0.x

## 類型
<a name="systems-manager-agent-component-type"></a>

<a name="public-component-type-generic"></a>此<a name="public-component-type-generic-phrase"></a>元件是一般元件 (`aws.greengrass.generic`)。[Greengrass 核](greengrass-nucleus-component.md)會執行元件的生命週期指令碼。

<a name="public-component-type-more-information"></a>如需詳細資訊，請參閱[元件類型](develop-greengrass-components.md#component-types)。

## 作業系統
<a name="systems-manager-agent-component-os-support"></a>

此元件只能在 Linux 核心裝置上安裝。

## 要求
<a name="systems-manager-agent-component-requirements"></a>

此元件有下列需求：
+ 在 64 位元 Linux 平台上執行的 Greengrass 核心裝置：Armv8 (AArch64) 或 x86\$164。
+ 您必須擁有 Systems Manager 可以擔任的 AWS Identity and Access Management (IAM) 服務角色。此角色必須包含 [AmazonSSMManagedInstanceCore](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore) 受管政策或定義同等許可的自訂政策。如需詳細資訊，請參閱[《 使用者指南》中的為邊緣裝置建立 IAM 服務角色](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-setting-up-edge-devices.html#systems-manager-setting-up-edge-devices-service-role)。 *AWS Systems Manager *

  部署此元件時，您必須指定此角色的`SSMRegistrationRole`組態參數名稱。
+ [Greengrass 裝置角色](device-service-role.md)必須允許 `ssm:AddTagsToResource`和 `ssm:RegisterManagedInstance`動作。裝置角色也必須允許符合先前需求的 IAM 服務角色的 `iam:PassRole`動作。下列範例 IAM 政策會授予這些許可。

  ```
  {
    "Version": "2012-10-17",		 	 	 
    "Statement": [
      {
        "Action": [
          "iam:PassRole"
        ],
        "Effect": "Allow",
        "Resource": [
          "arn:aws:iam::account-id:role/SSMServiceRole"
        ]
      },
      {
        "Action": [
          "ssm:AddTagsToResource",
          "ssm:RegisterManagedInstance"
        ],
        "Effect": "Allow",
        "Resource": "*"
      }
    ]
  }
  ```

### 端點和連接埠
<a name="systems-manager-agent-component-endpoints"></a>

除了基本操作所需的端點和連接埠之外，此元件還必須能夠對下列端點和連接埠執行傳出請求。如需詳細資訊，請參閱[允許透過代理或防火牆的裝置流量](allow-device-traffic.md)。


| Endpoint | 連線埠 | 必要 | 說明 | 
| --- | --- | --- | --- | 
|  `ec2messages.region.amazonaws.com`  | 443 | 是 |  在 中與 Systems Manager 服務通訊 AWS 雲端。  | 
|  `ssm.region.amazonaws.com`  | 443 | 是 |  將核心裝置註冊為 Systems Manager 受管節點。  | 
|  `ssmmessages.region.amazonaws.com`  | 443 | 是 |  在 中與 Systems Manager 的功能 Session Manager 通訊 AWS 雲端。  | 

如需詳細資訊，請參閱*AWS Systems Manager 《 使用者指南*》中的[參考：ec2messages、ssmmessages 和其他 API 呼叫](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-setting-up-messageAPIs.html)。

## 相依性
<a name="systems-manager-agent-component-dependencies"></a>

當您部署元件時， AWS IoT Greengrass 也會部署其相依性的相容版本。這表示您必須符合元件及其所有相依性的要求，才能成功部署元件。本節列出此元件[發行版本的](#systems-manager-agent-component-changelog)相依性，以及為每個相依性定義元件版本的語意版本限制。您也可以在 [AWS IoT Greengrass 主控台](https://console.aws.amazon.com//greengrass)中檢視每個版本元件的相依性。在元件詳細資訊頁面上，尋找**相依性**清單。

下表列出此元件 1.0.0 到 1.3.0 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [權杖交換服務](token-exchange-service-component.md) |  >=2.0.0 <3.0.0 | 硬式 | 

如需元件相依性的詳細資訊，請參閱[元件配方參考](component-recipe-reference.md#recipe-reference-component-dependencies)。

## Configuration
<a name="systems-manager-agent-component-configuration"></a>

此元件提供下列組態參數，您可以在部署元件時自訂這些參數。

`SSMRegistrationRole`  
Systems Manager 可擔任的 IAM 服務角色，其中包含 [AmazonSSMManagedInstanceCore](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore) 受管政策或定義同等許可的自訂政策。如需詳細資訊，請參閱[《 使用者指南》中的為邊緣裝置建立 IAM 服務角色](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-setting-up-edge-devices-service-role.html)。 *AWS Systems Manager *

`SSMOverrideExistingRegistration`  
（選用） 如果核心裝置已執行以混合啟用註冊的 Systems Manager Agent，您可以覆寫裝置現有的 Systems Manager Agent 註冊。將此選項設定為 `true`，以使用此元件提供的 Systems Manager Agent 將核心裝置註冊為受管節點。  
此選項僅適用於使用混合啟用註冊的裝置。如果核心裝置在已安裝 Systems Manager Agent 且已設定執行個體描述檔角色的 Amazon EC2 執行個體上執行，Amazon EC2 執行個體的現有受管節點 ID 會以 開頭`i-`。安裝 Systems Manager 代理程式元件時，Systems Manager 代理程式會註冊新的受管節點，其 ID 開頭為 `mi-`，而不是 `i-`。然後，您可以使用 ID 開頭為 的受管節點`mi-`，透過 Systems Manager 管理核心裝置。
預設：`false`

`SSMResourceTags`  
（選用） 要新增至 Systems Manager 受管節點的標籤，此元件會為核心裝置建立。您可以使用這些標籤，透過 Systems Manager 管理核心裝置的群組。例如，您可以在具有您指定之標籤的所有裝置上執行命令。  
指定清單，其中每個標籤都是具有 `Key`和 的物件`Value`。例如， 的下列值會`SSMResourceTags`指示此元件在核心裝置的受管節點**richard-roe**上將**Owner**標籤設定為 。  

```
[
  {
    "Key": "Owner",
    "Value": "richard-roe"
  }
]
```
如果受管節點已存在且 `SSMOverrideExistingRegistration`為 ，此元件會忽略這些標籤`false`。

**Example 範例：組態合併更新**  
下列範例組態指定 使用名為 的服務角色`SSMServiceRole`，以允許核心裝置註冊並與 Systems Manager 通訊。  

```
{
  "SSMRegistrationRole": "SSMServiceRole",
  "SSMOverrideExistingRegistration": false,
  "SSMResourceTags": [
    {
      "Key": "Owner",
      "Value": "richard-roe"
    },
    {
      "Key": "Team",
      "Value": "solar"
    }
  ]
}
```

## 本機日誌檔案
<a name="systems-manager-agent-component-log-file"></a>

Systems Manager Agent 軟體會將日誌寫入 Greengrass 根資料夾以外的資料夾。如需詳細資訊，請參閱*AWS Systems Manager 《 使用者指南*》中的[檢視 Systems Manager Agent 日誌](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-agent-logs.html)。

Systems Manager Agent 元件使用 shell 指令碼來安裝、啟動和停止 Systems Manager Agent。您可以在下列日誌檔案中找到這些指令碼的輸出。

```
/greengrass/v2/logs/aws.greengrass.SystemsManagerAgent.log
```

**檢視此元件的日誌**
+ 在核心裝置上執行下列命令，以即時檢視此元件的日誌檔案。`/greengrass/v2` 將 取代為 AWS IoT Greengrass 根資料夾的路徑。

  ```
  sudo tail -f /greengrass/v2/logs/aws.greengrass.SystemsManagerAgent.log
  ```

## 另請參閱
<a name="systems-manager-agent-component-see-also"></a>
+ [使用 管理 Greengrass 核心裝置 AWS Systems Manager](manage-with-systems-manager.md)
+ 《AWS Systems Manager 使用者指南》**中的[什麼是 AWS Systems Manager？](https://docs.aws.amazon.com/systems-manager/latest/userguide/what-is-systems-manager.html)
+ 《 *AWS Systems Manager 使用者指南*》中的[關於 Systems Manager Agent](https://docs.aws.amazon.com/systems-manager/latest/userguide/prereqs-ssm-agent.html) 

## 變更記錄
<a name="systems-manager-agent-component-changelog"></a>

下表說明每個版本元件的變更。


|  **版本**  |  **變更**  | 
| --- | --- | 
|  1.3.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/systems-manager-agent-component.html)  | 
|  1.2.4  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/systems-manager-agent-component.html)  | 
|  1.2.3  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/systems-manager-agent-component.html)  | 
|  1.1.0  |  此版本包含錯誤修正和改善。  | 
|  1.0.0  |  初始版本。  | 

# 字符交換服務
<a name="token-exchange-service-component"></a>

字符交換服務元件 (`aws.greengrass.TokenExchangeService`) 提供 AWS 登入資料，可用來與自訂元件中的 AWS 服務互動。

字符交換服務會以本機伺服器的形式執行。此本機伺服器會使用您在 [Greengrass 核心核元件](greengrass-nucleus-component.md)中設定 AWS IoT 的角色別名，連線至 AWS IoT 登入資料提供者。元件提供兩個環境變數，`AWS_CONTAINER_CREDENTIALS_FULL_URI`以及 `AWS_CONTAINER_AUTHORIZATION_TOKEN`。 會`AWS_CONTAINER_CREDENTIALS_FULL_URI`定義此本機伺服器的 URI。當元件建立 AWS SDK 用戶端時，用戶端會辨識此 URI 環境變數，並使用 中的字符`AWS_CONTAINER_AUTHORIZATION_TOKEN`來連線至字符交換服務並擷取 AWS 憑證。這可讓 Greengrass 核心裝置呼叫 AWS 服務操作。如需如何在自訂元件中使用此元件的詳細資訊，請參閱[與 AWS 服務互動](interact-with-aws-services.md)。

**重要**  <a name="token-exchange-service-aws-sdk-requirement"></a>
以這種方式取得 AWS 登入資料的支援已於 2016 年 7 月 13 日新增至 AWS SDKs。您的元件必須使用在該日期或之後建立的 AWS SDK 版本。如需詳細資訊，請參閱《*Amazon Elastic Container Service 開發人員指南*》中的[使用支援的 AWS SDK](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html#task-iam-roles-minimum-sdk)。

**注意**  
使用 AWS 預設登入資料鏈結的元件如果存在，可能會探索並使用其他登入資料來源。在 Amazon Elastic Container Service (Amazon ECS) 容器憑證中`AWS_CONTAINER_CREDENTIALS_RELATIVE_URI`，將優先於 `AWS_CONTAINER_CREDENTIALS_FULL_URI`，這表示字符交換服務憑證可能無法在 Amazon Elastic Container Service (Amazon ECS) 中運作。如需詳細資訊，請參閱[標準化憑證提供者](https://docs.aws.amazon.com/sdkref/latest/guide/standardized-credentials.html) 

**Topics**
+ [版本](#token-exchange-service-component-versions)
+ [Type](#token-exchange-service-component-type)
+ [作業系統](#token-exchange-service-component-os-support)
+ [相依性](#token-exchange-service-component-dependencies)
+ [Configuration](#token-exchange-service-component-configuration)
+ [本機日誌檔案](#token-exchange-service-component-log-file)
+ [變更記錄](#token-exchange-service-component-changelog)

## 版本
<a name="token-exchange-service-component-versions"></a>

此元件具有下列版本：
+ 2.0.x

## Type
<a name="token-exchange-service-component-type"></a>

<a name="public-component-type-generic"></a>此<a name="public-component-type-generic-phrase"></a>元件是一般元件 (`aws.greengrass.generic`)。[Greengrass 核](greengrass-nucleus-component.md)會執行元件的生命週期指令碼。

<a name="public-component-type-more-information"></a>如需詳細資訊，請參閱[元件類型](develop-greengrass-components.md#component-types)。

## 作業系統
<a name="token-exchange-service-component-os-support"></a>

此元件可以安裝在執行下列作業系統的核心裝置上：
+ Linux
+ Windows

## 相依性
<a name="token-exchange-service-component-dependencies"></a>

此元件沒有任何相依性。

## Configuration
<a name="token-exchange-service-component-configuration"></a>

此元件提供下列組態參數，您可以在部署元件時自訂這些參數。

`port`  
用於字符交換服務連線的連接埠。字符交換服務會在連接埠組態變更後重新啟動。

`credentialRetryInSec`  
當 Token Exchange Service 遇到登入資料請求錯誤時，以秒為單位指定重試間隔。    
`clientError`  
用戶端錯誤 (4xx HTTP 狀態碼） 的重試間隔，以秒為單位。  
預設：`120`  
有效值：`10` 至 `42900`  
`serverError`  
伺服器錯誤的重試間隔，以秒為單位 (5xx HTTP 狀態碼）。  
預設：`60`  
有效值：`10` 至 `42900`  
`unknownError`  
未知錯誤 （連線錯誤和 4xx 和 5xx 範圍以外的 HTTP 狀態碼） 的重試間隔，以秒為單位。  
預設：`300`  
有效值：`10` 至 `42900`

**Example 範例：組態合併更新**  

```
{
   "port": 2020,
   "credentialRetryInSec": {
    "clientError": 30,
    "serverError": 45,
    "unknownError": 60
   }
}
```

## 本機日誌檔案
<a name="token-exchange-service-component-log-file"></a>

此元件使用與 [Greengrass 核](greengrass-nucleus-component.md)元件相同的日誌檔案。

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

```
/greengrass/v2/logs/greengrass.log
```

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

```
C:\greengrass\v2\logs\greengrass.log
```

------

**檢視此元件的日誌**
+ 在核心裝置上執行下列命令，以即時檢視此元件的日誌檔案。將 `/greengrass/v2`或 *C：\$1greengrass\$1v2* 取代為 AWS IoT Greengrass 根資料夾的路徑。

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

  ```
  sudo tail -f /greengrass/v2/logs/greengrass.log
  ```

------
#### [ Windows (PowerShell) ]

  ```
  Get-Content C:\greengrass\v2\logs\greengrass.log -Tail 10 -Wait
  ```

------

## 變更記錄
<a name="token-exchange-service-component-changelog"></a>

下表說明每個版本元件的變更。


|  **版本**  |  **變更**  | 
| --- | --- | 
|  2.0.3  |  初始版本。  | 

# IoT SiteWise OPC UA 收集器
<a name="iotsitewise-opcua-collector-component"></a>

IoT SiteWise OPC UA 收集器元件 (`aws.iot.SiteWiseEdgeCollectorOpcua`) 可讓 AWS IoT SiteWise 閘道從本機 OPC UA 伺服器收集資料。

使用此元件， AWS IoT SiteWise 閘道可以連接到多個 OPC UA 伺服器。如需 AWS IoT SiteWise 閘道的詳細資訊，請參閱*AWS IoT SiteWise 《 使用者指南*》中的[AWS IoT SiteWise 在邊緣使用](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/gateways-ggv2.html) 。

**Topics**
+ [版本](#iotsitewise-opcua-collector-component-versions)
+ [類型](#iotsitewise-opcua-collector-component-type)
+ [作業系統](#iotsitewise-opcua-collector-component-os-support)
+ [要求](#iotsitewise-opcua-collector-component-requirements)
+ [相依性](#iotsitewise-opcua-collector-component-dependencies)
+ [Configuration](#iotsitewise-opcua-collector-component-configuration)
+ [輸入資料](#iotsitewise-opcua-collector-component-input-data)
+ [輸出資料](#iotsitewise-opcua-collector-component-output-data)
+ [本機日誌檔案](#iotsitewise-opcua-collector-component-log-file)
+ [授權](#iotsitewise-opcua-collector-component-licenses)
+ [變更記錄](#iotsitewise-opcua-collector-component-changelog)
+ [另請參閱](#iotsitewise-opcua-collector-component-see-also)

## 版本
<a name="iotsitewise-opcua-collector-component-versions"></a>

此元件具有下列版本：
+ 3.1.x 版本
+ 3.0.x
+ 2.6.x
+ 2.5.x
+ 2.4.x 版本
+ 2.3.x 版本
+ 2.2.x 版本
+ 2.1.x
+ 2.0.x

## 類型
<a name="iotsitewise-opcua-collector-component-type"></a>

<a name="public-component-type-generic"></a>此<a name="public-component-type-generic-phrase"></a>元件是一般元件 (`aws.greengrass.generic`)。[Greengrass 核](greengrass-nucleus-component.md)會執行元件的生命週期指令碼。

<a name="public-component-type-more-information"></a>如需詳細資訊，請參閱[元件類型](develop-greengrass-components.md#component-types)。

## 作業系統
<a name="iotsitewise-opcua-collector-component-os-support"></a>

此元件可以安裝在執行下列作業系統的核心裝置上：
+ Linux
+ Windows

## 要求
<a name="iotsitewise-opcua-collector-component-requirements"></a>

此元件有下列需求：
+ Greengrass 核心裝置必須在下列其中一個平台上執行：
  + os：Ubuntu 20.04 或更新版本

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

    架構：x86\$164 (AMD64) 或 ARMv8 (Aarch64)
  + os：Amazon Linux 2

    架構：x86\$164 (AMD64) 或 ARMv8 (Aarch64)
  + os：Debian 11

    架構：x86\$164 (AMD64) 或 ARMv8 (Aarch64)
  + os：Windows Server 2019 或更新版本

    架構：x86\$164 (AMD64)
+ Greengrass 核心裝置必須允許輸出網路連線到 OPC UA 伺服器。

## 相依性
<a name="iotsitewise-opcua-collector-component-dependencies"></a>

當您部署元件時， AWS IoT Greengrass 也會部署其相依性的相容版本。這表示您必須符合元件及其所有相依性的要求，才能成功部署元件。本節列出此元件[發行版本的](#iotsitewise-opcua-collector-component-changelog)相依性，以及為每個相依性定義元件版本的語意版本限制。您也可以在 [AWS IoT Greengrass 主控台](https://console.aws.amazon.com//greengrass)中檢視每個版本元件的相依性。在元件詳細資訊頁面上，尋找**相依性**清單。

下表列出此元件所有版本的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.3.0 <3.0.0 | 硬式 | 
| [串流管理員](stream-manager-component.md) | >2.0.10<3.0.0 | 硬式 | 
| [秘密管理員](secret-manager-component.md) | >=2.0.8 <3.0.0 | 硬式 | 

如需元件相依性的詳細資訊，請參閱[元件配方參考](component-recipe-reference.md#recipe-reference-component-dependencies)。

## Configuration
<a name="iotsitewise-opcua-collector-component-configuration"></a>

此元件沒有任何組態參數。

您可以使用 AWS IoT SiteWise 主控台或 API 來設定 IoT SiteWise OPC UA 收集器元件。如需詳細資訊，請參閱*AWS IoT SiteWise 《 使用者指南*》中的[步驟 4：新增資料來源 - 選用](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/create-gateway-ggv2.html#add-data-sources-console)。

## 輸入資料
<a name="iotsitewise-opcua-collector-component-input-data"></a>

此元件僅接受下列格式的資料，其他所有項目都會遭到忽略和捨棄。下表將 OPC UA 資料類型映射至其 SiteWise 對等項目。


|  **SiteWise 資料類型**  |  **OPC UA 資料類型**  |  **Description**  | 
| --- | --- | --- | 
|  `STRING`  |  `String` `Guid` `XmlElement`  |  長度上限為 1024 位元組的字串。  | 
|  `INTEGER`  |  `SByte` `Byte` `Int16` `UInt16` `Int32` `UInt32`\$1 `Int64`\$1  |  帶正負號的 32 位元整數，範圍為 `-2,147,483,648 to 2,147,483,647` 。  | 
|  `DOUBLE`  |  `UInt32`\$1 `Int64`\$1 `Float` `Double`  |  範圍為 `–10^100 to 10^100`和`IEEE 754`雙精度的浮點數。  | 
|  `BOOLEAN`  |  `Boolean`  |  `true` 或 `false`  | 

\$1 對於 OPC UA 資料類型 `UInt32`和 `Int64`，`INTEGER`如果 SiteWise 能夠代表其值，則其 SiteWise 資料類型將是 ，否則將是 `DOUBLE`。

## 輸出資料
<a name="iotsitewise-opcua-collector-component-output-data"></a>



此元件會將`BatchPutAssetPropertyValue`訊息寫入 AWS IoT Greengrass 串流管理員。如需詳細資訊，請參閱《AWS IoT SiteWise API 參考》**中的 [BatchPutAssetPropertyValue](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_BatchPutAssetPropertyValue.html)。

## 本機日誌檔案
<a name="iotsitewise-opcua-collector-component-log-file"></a>

此元件使用以下日誌檔案。

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

```
/greengrass/v2/logs/aws.iot.SiteWiseEdgeCollectorOpcua.log
```

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

```
C:\greengrass\v2\logs\aws.iot.SiteWiseEdgeCollectorOpcua.log
```

------

**檢視此元件的日誌**
+ 在核心裝置上執行下列命令，以即時檢視此元件的日誌檔案。將 `/greengrass/v2`或 *C：\$1greengrass\$1v2* 取代為 AWS IoT Greengrass 根資料夾的路徑。

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

  ```
  sudo tail -f /greengrass/v2/logs/aws.iot.SiteWiseEdgeCollectorOpcua.log
  ```

------
#### [ Windows (PowerShell) ]

  ```
  Get-Content C:\greengrass\v2\logs\aws.iot.SiteWiseEdgeCollectorOpcua.log -Tail 10 -Wait
  ```

------

## 授權
<a name="iotsitewise-opcua-collector-component-licenses"></a>

<a name="component-core-software-license"></a>此元件根據 [Greengrass 核心軟體授權合約](https://greengrass-release-license.s3.us-west-2.amazonaws.com/greengrass-license-v1.pdf)發行。

## 變更記錄
<a name="iotsitewise-opcua-collector-component-changelog"></a>

下表說明每個版本元件的變更。


|  **版本**  |  **變更**  | 
| --- | --- | 
| 3.1.0 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/iotsitewise-opcua-collector-component.html)  | 
| 3.0.3 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/iotsitewise-opcua-collector-component.html)  | 
| 3.0.2 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/iotsitewise-opcua-collector-component.html)  | 
| 3.0.1 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/iotsitewise-opcua-collector-component.html)  | 
| 3.0.0 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/iotsitewise-opcua-collector-component.html)  | 
| 2.6.0 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/iotsitewise-opcua-collector-component.html)  | 
| 2.5.1 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/iotsitewise-opcua-collector-component.html)  | 
| 2.5.0 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/iotsitewise-opcua-collector-component.html)  | 
|  2.4.2  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/iotsitewise-opcua-collector-component.html) | 
|  2.4.1  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/iotsitewise-opcua-collector-component.html) | 
|  2.4.0  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/iotsitewise-opcua-collector-component.html)  | 
|  2.3.0  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/iotsitewise-opcua-collector-component.html) | 
|  2.2.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/iotsitewise-opcua-collector-component.html) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/iotsitewise-opcua-collector-component.html)  | 
|  2.1.3  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/iotsitewise-opcua-collector-component.html) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/iotsitewise-opcua-collector-component.html)  | 
|  2.1.1  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/iotsitewise-opcua-collector-component.html)  | 
|  2.0.3  |  錯誤修正和改進。  | 
|  2.0.2  |  與邊緣同步資產優先順序的錯誤修正和改進。  | 
|  2.0.1  |  初始版本。  | 

## 另請參閱
<a name="iotsitewise-opcua-collector-component-see-also"></a>
+ *AWS IoT SiteWise 《 使用者指南*》中的[什麼是 AWS IoT SiteWise？](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/what-is-sitewise.html)。

# IoT SiteWise OPC UA 資料來源模擬器
<a name="iotsitewise-opcua-data-source-simulator-component"></a>

IoT SiteWise OPC UA 資料來源模擬器元件 (`aws.iot.SiteWiseEdgeOpcuaDataSourceSimulator`) 會啟動產生範例資料的本機 OPC UA 伺服器。使用此 OPC UA 伺服器模擬 AWS IoT SiteWise 閘道上 [IoT SiteWise OPC UA 收集器元件](iotsitewise-opcua-collector-component.md)讀取的資料來源。然後，您可以使用此範例資料來探索 AWS IoT SiteWise 功能。如需 AWS IoT SiteWise 閘道的詳細資訊，請參閱*AWS IoT SiteWise 《 使用者指南*》中的[AWS IoT SiteWise 在邊緣使用](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/gateways-ggv2.html) 。

**Topics**
+ [版本](#iotsitewise-opcua-data-source-simulator-component-versions)
+ [類型](#iotsitewise-opcua-data-source-simulator-component-type)
+ [作業系統](#iotsitewise-opcua-data-source-simulator-component-os-support)
+ [要求](#iotsitewise-opcua-data-source-simulator-component-requirements)
+ [相依性](#iotsitewise-opcua-data-source-simulator-component-dependencies)
+ [Configuration](#iotsitewise-opcua-data-source-simulator-component-configuration)
+ [本機日誌檔案](#iotsitewise-opcua-data-source-simulator-component-log-file)
+ [變更記錄](#iotsitewise-opcua-data-source-simulator-component-changelog)
+ [另請參閱](#iotsitewise-opcua-data-source-simulator-component-see-also)

## 版本
<a name="iotsitewise-opcua-data-source-simulator-component-versions"></a>

此元件具有下列版本：
+ 1.0.x

## 類型
<a name="iotsitewise-opcua-data-source-simulator-component-type"></a>

<a name="public-component-type-generic"></a>此<a name="public-component-type-generic-phrase"></a>元件是一般元件 (`aws.greengrass.generic`)。[Greengrass 核](greengrass-nucleus-component.md)會執行元件的生命週期指令碼。

<a name="public-component-type-more-information"></a>如需詳細資訊，請參閱[元件類型](develop-greengrass-components.md#component-types)。

## 作業系統
<a name="iotsitewise-opcua-data-source-simulator-component-os-support"></a>

此元件可以安裝在執行下列作業系統的核心裝置上：
+ Linux
+ Windows

## 要求
<a name="iotsitewise-opcua-data-source-simulator-component-requirements"></a>

此元件有下列需求：
+ Greengrass 核心裝置必須能夠在本機主機上使用連接埠 4840。此元件的本機 OPC UA 伺服器會在此連接埠執行。

## 相依性
<a name="iotsitewise-opcua-data-source-simulator-component-dependencies"></a>

當您部署元件時， AWS IoT Greengrass 也會部署其相依性的相容版本。這表示您必須符合元件及其所有相依性的要求，才能成功部署元件。本節列出此元件[發行版本的](#iotsitewise-opcua-data-source-simulator-component-changelog)相依性，以及為每個相依性定義元件版本的語意版本限制。您也可以在 [AWS IoT Greengrass 主控台](https://console.aws.amazon.com//greengrass)中檢視每個版本元件的相依性。在元件詳細資訊頁面上，尋找**相依性**清單。

下表列出此元件所有版本的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.3.0 <3.0.0 | 硬式 | 

如需元件相依性的詳細資訊，請參閱[元件配方參考](component-recipe-reference.md#recipe-reference-component-dependencies)。

## Configuration
<a name="iotsitewise-opcua-data-source-simulator-component-configuration"></a>

此元件沒有任何組態參數。

## 本機日誌檔案
<a name="iotsitewise-opcua-data-source-simulator-component-log-file"></a>

此元件使用以下日誌檔案。

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

```
/greengrass/v2/logs/aws.iot.SiteWiseEdgeOpcuaDataSourceSimulator.log
```

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

```
C:\greengrass\v2\logs\aws.iot.SiteWiseEdgeOpcuaDataSourceSimulator.log
```

------

**檢視此元件的日誌**
+ 在核心裝置上執行下列命令，以即時檢視此元件的日誌檔案。將 `/greengrass/v2`或 *C：\$1greengrass\$1v2* 取代為 AWS IoT Greengrass 根資料夾的路徑。

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

  ```
  sudo tail -f /greengrass/v2/logs/aws.iot.SiteWiseEdgeOpcuaDataSourceSimulator.log
  ```

------
#### [ Windows (PowerShell) ]

  ```
  Get-Content C:\greengrass\v2\logs\aws.iot.SiteWiseEdgeOpcuaDataSourceSimulator.log -Tail 10 -Wait
  ```

------

## 變更記錄
<a name="iotsitewise-opcua-data-source-simulator-component-changelog"></a>

下表說明每個版本元件的變更。


|  **版本**  |  **變更**  | 
| --- | --- | 
|  1.0.0  |  初始版本。 新增對 Windows Server 2016 或更新版本的支援。  | 

## 另請參閱
<a name="iotsitewise-opcua-data-source-simulator-component-see-also"></a>
+ *AWS IoT SiteWise 《 使用者指南*》中的[什麼是 AWS IoT SiteWise？](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/what-is-sitewise.html)。

# IoT SiteWise 發佈者
<a name="iotsitewise-publisher-component"></a>

IoT SiteWise 發佈者元件 (`aws.iot.SiteWiseEdgePublisher`) 可讓 AWS IoT SiteWise 閘道將資料從邊緣匯出至 AWS 雲端。

如需 AWS IoT SiteWise 閘道的詳細資訊，請參閱*AWS IoT SiteWise 《 使用者指南*》中的[AWS IoT SiteWise 在邊緣使用](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/gateways-ggv2.html) 。

**Topics**
+ [版本](#iotsitewise-publisher-component-versions)
+ [Type](#iotsitewise-publisher-component-type)
+ [作業系統](#iotsitewise-publisher-component-os-support)
+ [要求](#iotsitewise-publisher-component-requirements)
+ [相依性](#iotsitewise-publisher-component-dependencies)
+ [Configuration](#iotsitewise-publisher-component-configuration)
+ [輸入資料](#iotsitewise-publisher-component-input-data)
+ [本機日誌檔案](#iotsitewise-publisher-component-log-file)
+ [故障診斷和偵錯](#iotsitewise-publisher-component-debug)
+ [授權](#iotsitewise-publisher-component-licenses)
+ [變更記錄](#iotsitewise-publisher-component-changelog)
+ [另請參閱](#iotsitewise-publisher-component-see-also)

## 版本
<a name="iotsitewise-publisher-component-versions"></a>

此元件具有下列版本：
+ 4.1.x
+ 4.0.x
+ 3.2.x
+ 3.1.x 版本
+ 3.0.x
+ 2.4.x 版本
+ 2.3.x 版本
+ 2.2.x 版本
+ 2.1.x
+ 2.0.x

## Type
<a name="iotsitewise-publisher-component-type"></a>

<a name="public-component-type-generic"></a>此<a name="public-component-type-generic-phrase"></a>元件是一般元件 (`aws.greengrass.generic`)。[Greengrass 核](greengrass-nucleus-component.md)會執行元件的生命週期指令碼。

<a name="public-component-type-more-information"></a>如需詳細資訊，請參閱[元件類型](develop-greengrass-components.md#component-types)。

## 作業系統
<a name="iotsitewise-publisher-component-os-support"></a>

此元件可以安裝在執行下列作業系統的核心裝置上：
+ Linux
+ Windows

## 要求
<a name="iotsitewise-publisher-component-requirements"></a>

此元件有下列需求：
+ Greengrass 核心裝置必須在下列其中一個平台上執行：
  + os：Ubuntu 18.04 或更新版本

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

    架構：x86\$164 (AMD64) 或 ARMv8 (Aarch64)
  + os：Amazon Linux 2

    架構：x86\$164 (AMD64) 或 ARMv8 (Aarch64)
  + os：Debian 11

    架構：x86\$164 (AMD64) 或 ARMv8 (Aarch64)
  + os：Windows Server 2019 或更新版本

    架構：x86\$164 (AMD64)
+ Greengrass 核心裝置必須連線至網際網路。
+ Greengrass 核心裝置必須獲得授權才能執行 `iotsitewise:BatchPutAssetPropertyValue`動作。如需詳細資訊，請參閱[授權核心裝置以與服務互動 AWS](https://docs.aws.amazon.com/greengrass/v2/developerguide/device-service-role.html)。  
**Example 許可政策**  

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

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Action": "iotsitewise:BatchPutAssetPropertyValue",
              "Resource": "*"
          }
      ]
  }
  ```

------

### 端點和連接埠
<a name="iotsitewise-publisher-component-endpoints"></a>

除了基本操作所需的端點和連接埠之外，此元件還必須能夠對下列端點和連接埠執行傳出請求。如需詳細資訊，請參閱[允許透過代理或防火牆的裝置流量](allow-device-traffic.md)。


| Endpoint | 站點 | 必要 | Description | 
| --- | --- | --- | --- | 
|  `data.iotsitewise.region.amazonaws.com`  | 443 | 是 |  將資料發佈至 AWS IoT SiteWise。  | 

## 相依性
<a name="iotsitewise-publisher-component-dependencies"></a>

當您部署元件時， AWS IoT Greengrass 也會部署其相依性的相容版本。這表示您必須符合元件及其所有相依性的要求，才能成功部署元件。本節列出此元件[發行版本的](#iotsitewise-publisher-component-changelog)相依性，以及為每個相依性定義元件版本的語意版本限制。您也可以在 [AWS IoT Greengrass 主控台](https://console.aws.amazon.com//greengrass)中檢視每個版本元件的相依性。在元件詳細資訊頁面上，尋找**相依性**清單。

下表列出此元件 2.0.x 至 2.2.x 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [Greengrass 核](greengrass-nucleus-component.md) | >=2.3.0<3.0.0 | 硬式 | 
| [串流管理員](stream-manager-component.md) | >=2.0.10<3.0.0 | 硬式 | 

如需元件相依性的詳細資訊，請參閱[元件配方參考](component-recipe-reference.md#recipe-reference-component-dependencies)。

## Configuration
<a name="iotsitewise-publisher-component-configuration"></a>

此元件沒有任何組態參數。

您可以使用 AWS IoT SiteWise 主控台或 API 來設定 IoT SiteWise 發佈者元件。如需詳細資訊，請參閱*AWS IoT SiteWise 《 使用者指南*》中的[步驟 3：設定發佈者 - 選用](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/create-gateway-ggv2.html#configure-publisher)。

## 輸入資料
<a name="iotsitewise-publisher-component-input-data"></a>



此元件會從 AWS IoT Greengrass 串流管理員讀取`PutAssetPropertyValueEntry`訊息。如需詳細資訊，請參閱 *AWS IoT SiteWise API 參考*中的 [PutAssetPropertyValueEntry](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_PutAssetPropertyValueEntry.html)。

## 本機日誌檔案
<a name="iotsitewise-publisher-component-log-file"></a>

此元件使用以下日誌檔案。

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

```
/greengrass/v2/logs/aws.iot.SiteWiseEdgePublisher.log
```

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

```
C:\greengrass\v2\logs\aws.iot.SiteWiseEdgePublisher.log
```

------

**檢視此元件的日誌**
+ 在核心裝置上執行下列命令，以即時檢視此元件的日誌檔案。將 `/greengrass/v2`或 *C：\$1greengrass\$1v2* 取代為 AWS IoT Greengrass 根資料夾的路徑。

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

  ```
  sudo tail -f /greengrass/v2/logs/aws.iot.SiteWiseEdgePublisher.log
  ```

------
#### [ Windows (PowerShell) ]

  ```
  Get-Content C:\greengrass\v2\logs\aws.iot.SiteWiseEdgePublisher.log -Tail 10 -Wait
  ```

------

## 故障診斷和偵錯
<a name="iotsitewise-publisher-component-debug"></a>

此元件包含新的事件日誌，協助客戶識別和修正問題。日誌檔案與本機日誌檔案分開，位於下列位置。將 `/greengrass/v2`或 *C：\$1greengrass\$1v2* 取代為 AWS IoT Greengrass 根資料夾的路徑。

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

```
/greengrass/v2/work/aws.iot.SiteWiseEdgePublisher/logs/IotSiteWisePublisherEvents.log
```

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

```
C:\greengrass\v2\work\aws.iot.SiteWiseEdgePublisher\logs\IotSiteWisePublisherEvents.log
```

------

此日誌包含詳細資訊和故障診斷指示。故障診斷資訊與診斷一起提供，並描述如何修正問題，有時還包含進一步資訊的連結。診斷資訊包括下列項目：
+ 嚴重性等級
+ 時間戳記
+ 其他事件特定資訊

**Example 範例日誌**  

```
accountBeingThrottled:
  Summary: Data upload speed slowed due to quota limits
  Level: WARN
  Timestamp: '2023-06-09T21:30:24.654Z'
  Description: The IoT SiteWise Publisher is limited to the "Rate of data points ingested"
    quota for a customers account. See the associated documentation and associated
    metric for the number of requests that were limited for more information. Note
    that this may be temporary and not require any change, although if the issue continues
    you may need to request an increase for the mentioned quota.
  FurtherInformation:
  - https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html
  - https://docs.aws.amazon.com/iot-sitewise/latest/userguide/troubleshooting-gateway.html#gateway-issue-data-streams
  AssociatedMetrics:
  - Name: TotalErrorCount
    Description: The total number of errors of this type that occurred.
    Value: 327724.0
  AssociatedData:
  - Name: AggregatePropertyAliases
    Description: The aggregated property aliases of the throttled data.
    FileLocation: /greengrass/v2/work/aws.iot.SiteWiseEdgePublisher/./logs/data/AggregatePropertyAliases_1686346224654.log
```

## 授權
<a name="iotsitewise-publisher-component-licenses"></a>

<a name="component-core-software-license"></a>此元件根據 [Greengrass 核心軟體授權合約](https://greengrass-release-license.s3.us-west-2.amazonaws.com/greengrass-license-v1.pdf)發行。

## 變更記錄
<a name="iotsitewise-publisher-component-changelog"></a>

下表說明每個版本元件的變更。


|  **版本**  |  **變更**  | 
| --- | --- | 
| 4.1.4 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/iotsitewise-publisher-component.html)  | 
| 4.1.3 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/iotsitewise-publisher-component.html)  | 
| 4.1.2 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/iotsitewise-publisher-component.html)  | 
| 4.1.1 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/iotsitewise-publisher-component.html)  | 
| 4.1.0 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/iotsitewise-publisher-component.html) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/iotsitewise-publisher-component.html)  | 
|  4.0.3  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/iotsitewise-publisher-component.html)  | 
|  4.0.2  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/iotsitewise-publisher-component.html)  | 
|  4.0.1  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/iotsitewise-publisher-component.html)  | 
|  4.0.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/iotsitewise-publisher-component.html)  | 
|  3.2.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/iotsitewise-publisher-component.html)  | 
|  3.1.4  |   3.1.4 版已於 2025 年 2 月 20 日終止。此版本的改善功能可在此元件的較新版本中使用。  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/iotsitewise-publisher-component.html)  | 
|  3.1.3  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/iotsitewise-publisher-component.html)  | 
|  3.1.2  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/iotsitewise-publisher-component.html)  | 
|  3.1.1  |   3.1.1 版已於 2024 年 3 月 12 日終止。此版本的改善功能可在此元件的較新版本中使用。  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/iotsitewise-publisher-component.html)  | 
|  3.1.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/iotsitewise-publisher-component.html)  | 
|  3.0.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/iotsitewise-publisher-component.html)  | 
|  2.4.1  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/iotsitewise-publisher-component.html)  | 
|  2.4.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/iotsitewise-publisher-component.html)  | 
|  2.3.3  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/iotsitewise-publisher-component.html)  | 
|  2.3.2  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/iotsitewise-publisher-component.html)  | 
|  2.3.1  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/iotsitewise-publisher-component.html)  | 
|  2.2.3  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/iotsitewise-publisher-component.html)  | 
|  2.2.2  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/iotsitewise-publisher-component.html)  | 
|  2.2.1  |   此版本不支援 HTTP 代理組態。2.2.2 版和更新版本重新推出此功能的支援。  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/iotsitewise-publisher-component.html)  | 
|  2.2.0  |   此版本不支援 HTTP 代理組態。2.2.2 版和更新版本重新推出此功能的支援。  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/iotsitewise-publisher-component.html)  | 
|  2.1.4  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/iotsitewise-publisher-component.html)  | 
|  2.1.3  |   此版本不再提供，但美國東部 （俄亥俄）、加拿大 （中部） 和 AWS GovCloud （美國東部） 區域除外。此元件版本需要執行 Java 版本 11 或更高版本。此版本的改善功能可在此元件的較新版本中使用。  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/iotsitewise-publisher-component.html)  | 
|  2.1.2  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/iotsitewise-publisher-component.html)  | 
|  2.1.1  |  錯誤修正和改善。  | 
|  2.1.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/iotsitewise-publisher-component.html)  | 
|  2.0.2  |  錯誤修正和改善。  | 
|  2.0.1  |  初始版本。  | 

## 另請參閱
<a name="iotsitewise-publisher-component-see-also"></a>
+ *AWS IoT SiteWise 《 使用者指南*》中的[什麼是 AWS IoT SiteWise？](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/what-is-sitewise.html)。

# IoT SiteWise 處理器
<a name="iotsitewise-processor-component"></a>

IoT SiteWise 處理器元件 (`aws.iot.SiteWiseEdgeProcessor`) 可讓 AWS IoT SiteWise Classic 串流、V2 閘道在邊緣處理資料。

透過此元件， AWS IoT SiteWise 閘道可以使用資產模型和資產來處理閘道裝置上的資料。如需 AWS IoT SiteWise 閘道的詳細資訊，請參閱*AWS IoT SiteWise 《 使用者指南*》中的[AWS IoT SiteWise 在邊緣使用](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/gateways-ggv2.html) 。

**注意**  
資料處理套件 (DPP) 功能自 2025 年 11 月 7 日起將不再開放給新客戶使用。如果您想要使用 DPP，請在該日期之前註冊。現有客戶可以繼續正常使用該服務。如需詳細資訊，請參閱*AWS IoT SiteWise 《 使用者指南*》中的[資料處理套件可用性變更](https://docs.aws.amazon.com/iot-sitewise/latest/appguide/iotsitewise-dpp-availability-change.html)。

**Topics**
+ [版本](#iotsitewise-processor-component-versions)
+ [Type](#iotsitewise-processor-component-type)
+ [作業系統](#iotsitewise-processor-component-os-support)
+ [要求](#iotsitewise-processor-component-requirements)
+ [相依性](#iotsitewise-processor-component-dependencies)
+ [Configuration](#iotsitewise-processor-component-configuration)
+ [本機日誌檔案](#iotsitewise-processor-component-log-file)
+ [授權](#iotsitewise-processor-component-licenses)
+ [變更記錄](#iotsitewise-processor-component-changelog)
+ [另請參閱](#iotsitewise-processor-component-see-also)

## 版本
<a name="iotsitewise-processor-component-versions"></a>

此元件具有下列版本：
+ 3.5.x
+ 3.4.x
+ 3.3.x
+ 3.2.x
+ 3.1.x 版本
+ 3.0.x
+ 2.2.x 版本
+ 2.1.x
+ 2.0.x

## Type
<a name="iotsitewise-processor-component-type"></a>

<a name="public-component-type-generic"></a>此<a name="public-component-type-generic-phrase"></a>元件是一般元件 (`aws.greengrass.generic`)。[Greengrass 核](greengrass-nucleus-component.md)會執行元件的生命週期指令碼。

<a name="public-component-type-more-information"></a>如需詳細資訊，請參閱[元件類型](develop-greengrass-components.md#component-types)。

## 作業系統
<a name="iotsitewise-processor-component-os-support"></a>

此元件可以安裝在執行下列作業系統的核心裝置上：
+ Linux
+ Windows

## 要求
<a name="iotsitewise-processor-component-requirements"></a>

此元件有下列需求：
+ Greengrass 核心裝置必須在下列其中一個平台上執行：
  + os：Ubuntu 20.04 或更新版本

    架構：x86\$164 (AMD64)
  + os：Red Hat Enterprise Linux (RHEL) 8

    架構：x86\$164 (AMD64)
  + os：Amazon Linux 2

    架構：x86\$164 (AMD64)
  + os：Windows Server 2019 或更新版本

    架構：x86\$164 (AMD64)
  + os：Debian 11 (Bullseye) 或更新版本

    架構：x86\$164 (AMD64)
+ Greengrass 核心裝置必須允許連接埠 443 上的傳入流量。
+ Greengrass 核心裝置必須允許連接埠 443 和 8883 上的傳出流量。
+ 下列連接埠保留供 使用 AWS IoT SiteWise：80、443、3001、4569、4572、8000、8081、8082、8084、8085、8086、8445、9000、9500、11080 和 50010。使用保留連接埠處理流量可能會導致連線終止。
**注意**  
只有此元件的 2.0.15 版和更新版本才需要連接埠 8087。
+ [Greengrass 裝置角色](https://docs.aws.amazon.com/greengrass/v2/developerguide/device-service-role.html)必須具有允許您在 AWS IoT Greengrass V2 裝置上使用 AWS IoT SiteWise 閘道的許可。如需詳細資訊，請參閱*AWS IoT SiteWise 《 使用者指南*》中的[需求](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/configure-gateway-ggv2.html#gateway-requirements)。

### 端點和連接埠
<a name="iotsitewise-processor-component-endpoints"></a>

除了基本操作所需的端點和連接埠之外，此元件還必須能夠對下列端點和連接埠執行傳出請求。如需詳細資訊，請參閱[允許透過代理或防火牆的裝置流量](allow-device-traffic.md)。


| Endpoint | 站點 | 必要 | Description | 
| --- | --- | --- | --- | 
|  `model.iotsitewise.region.amazonaws.com`  | 443 | 是 |  取得 AWS IoT SiteWise 資產和資產模型的相關資訊。  | 
|  `edge.iotsitewise.region.amazonaws.com`  | 443 | 是 |  取得核心裝置的 AWS IoT SiteWise 閘道組態的相關資訊。  | 
|  `ecr.region.amazonaws.com`  | 443 | 是 |  從 Amazon Elastic Container Registry 下載 AWS IoT SiteWise Edge 閘道 Docker 映像。  | 
|  `iot.region.amazonaws.com`  | 443 | 是 |  為您的 取得裝置端點 AWS 帳戶。  | 
|  `sts.region.amazonaws.com`  | 443 | 是 |  取得 的 ID AWS 帳戶。  | 
|  `monitor.iotsitewise.region.amazonaws.com`  | 443 | 否 |  如果您在核心裝置上存取 AWS IoT SiteWise Monitor 入口網站，則為必要項目。  | 

## 相依性
<a name="iotsitewise-processor-component-dependencies"></a>

當您部署元件時， AWS IoT Greengrass 也會部署其相依性的相容版本。這表示您必須符合元件及其所有相依性的要求，才能成功部署元件。本節列出此元件[發行版本的](#iotsitewise-processor-component-changelog)相依性，以及為每個相依性定義元件版本的語意版本限制。您也可以在 [AWS IoT Greengrass 主控台](https://console.aws.amazon.com//greengrass)中檢視每個版本元件的相依性。在元件詳細資訊頁面上，尋找**相依性**清單。

下表列出此元件 2.0.x 至 2.1.x 版的相依性。


| 相依性 | 相容版本 | 相依性類型 | 
| --- | --- | --- | 
| [權杖交換服務](token-exchange-service-component.md) | >=2.0.3 <3.0.0 | 硬式 | 
| [串流管理員](stream-manager-component.md) | >=2.0.10 <3.0.0 | 硬式 | 
| [Greengrass CLI](greengrass-cli-component.md) | >=2.3.0 <3.0.0 | 硬式 | 

如需元件相依性的詳細資訊，請參閱[元件配方參考](component-recipe-reference.md#recipe-reference-component-dependencies)。

## Configuration
<a name="iotsitewise-processor-component-configuration"></a>

此元件沒有任何組態參數。

## 本機日誌檔案
<a name="iotsitewise-processor-component-log-file"></a>

此元件使用以下日誌檔案。

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

```
/greengrass/v2/logs/aws.iot.SiteWiseEdgeProcessor.log
```

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

```
C:\greengrass\v2\logs\aws.iot.SiteWiseEdgeProcessor.log
```

------

**檢視此元件的日誌**
+ 在核心裝置上執行下列命令，以即時檢視此元件的日誌檔案。將 `/greengrass/v2`或 *C：\$1greengrass\$1v2* 取代為 AWS IoT Greengrass 根資料夾的路徑。

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

  ```
  sudo tail -f /greengrass/v2/logs/aws.iot.SiteWiseEdgeProcessor.log
  ```

------
#### [ Windows (PowerShell) ]

  ```
  Get-Content C:\greengrass\v2\logs\aws.iot.SiteWiseEdgeProcessor.log -Tail 10 -Wait
  ```

------

## 授權
<a name="iotsitewise-processor-component-licenses"></a>

此元件包含下列第三方軟體/授權：

### 第三方授權
<a name="w2ab1c24b8d120c25b5b1b1"></a>
+ Apache-2.0
+ MIT
+ BSD-2-Clause
+ BSD-3-Clause
+ CDDL-1.0
+ CDDL-1.1
+ ISC
+ Zlib
+ GPL-3.0-with-GCC-exception
+ 公有網域
+ Python-2.0
+ Unicode-DFS-2015
+ BSD-1-Clause
+ OpenSSL
+ EPL-1.0
+ EPL-2.0
+ GPL-2.0-with-classpath-exception
+ MPL-2.0
+ CC0-1.0
+ JSON

<a name="component-core-software-license"></a>此元件根據 [Greengrass 核心軟體授權合約](https://greengrass-release-license.s3.us-west-2.amazonaws.com/greengrass-license-v1.pdf)發行。

## 變更記錄
<a name="iotsitewise-processor-component-changelog"></a>

下表說明每個版本元件的變更。


|  **版本**  |  **變更**  | 
| --- | --- | 
| 3.5.1 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/iotsitewise-processor-component.html)  | 
| 3.4.0 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/iotsitewise-processor-component.html)  | 
| 3.3.1 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/iotsitewise-processor-component.html)  | 
| 3.3.0 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/iotsitewise-processor-component.html) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/iotsitewise-processor-component.html) | 
|  3.2.1  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/iotsitewise-processor-component.html)  | 
|  3.2.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/iotsitewise-processor-component.html)  | 
|  3.1.3  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/iotsitewise-processor-component.html)  | 
|  3.1.1  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/iotsitewise-processor-component.html)  | 
|  3.1.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/iotsitewise-processor-component.html)  | 
|  3.0.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/iotsitewise-processor-component.html)  | 
| 2.2.1 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/iotsitewise-processor-component.html)  | 
| 2.1.37 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/iotsitewise-processor-component.html)  | 
| 2.1.35 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/iotsitewise-processor-component.html)  | 
| 2.1.34 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/iotsitewise-processor-component.html)  | 
| 2.1.33 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/iotsitewise-processor-component.html)  | 
| 2.1.32 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/iotsitewise-processor-component.html)  | 
| 2.1.31 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/iotsitewise-processor-component.html)  | 
| 2.1.29 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/iotsitewise-processor-component.html)  | 
| 2.1.28 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/iotsitewise-processor-component.html)  | 
| 2.1.24 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/iotsitewise-processor-component.html)  | 
| 2.1.23 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/iotsitewise-processor-component.html)  | 
|  2.1.21  |   從 2.0.x 升級到 2.1.x 會導致本機資料遺失。  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/iotsitewise-processor-component.html)  | 
|  2.0.16  |  此版本包含錯誤修正和改善。  | 
|  2.0.15  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/iotsitewise-processor-component.html)  | 
|  2.0.14  |  此版本包含錯誤修正和改善。  | 
|  2.0.13  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/iotsitewise-processor-component.html)  | 
|  2.0.9  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/iotsitewise-processor-component.html)  | 
|  2.0.7  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/iotsitewise-processor-component.html)  | 
|  2.0.6  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/iotsitewise-processor-component.html)  | 
|  2.0.5  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/greengrass/v2/developerguide/iotsitewise-processor-component.html)  | 
|  2.0.2  |  初始版本。  | 

## 另請參閱
<a name="iotsitewise-processor-component-see-also"></a>
+ *AWS IoT SiteWise 《 使用者指南*》中的[什麼是 AWS IoT SiteWise？](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/what-is-sitewise.html)。