支援終止通知:2026 年 10 月 7 日 AWS 將停止 的支援 AWS IoT Greengrass Version 1。2026 年 10 月 7 日之後,您將無法再存取 AWS IoT Greengrass V1 資源。如需詳細資訊,請造訪從 遷移 AWS IoT Greengrass Version 1。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
設定 IDT AWS IoT Greengrass 設定以執行資格套件
執行測試之前,您必須在主機電腦上設定 AWS 登入資料和裝置的設定。
設定您的 AWS 登入資料
您必須在 檔案中設定 IAM 使用者登入資料。使用在 中建立之 IDT for AWS IoT Greengrass 使用者的登入資料建立和設定 AWS 帳戶。您可以使用下列兩種方式的其中之一指定登入資料:<device-tester-extract-location> /configs/config.json
-
憑證檔案
-
環境變數
IDT 會使用與 AWS CLI相同的登入資料檔案。如需詳細資訊,請參閱組態與登入資料檔案。
登入資料檔案的位置會有所不同,取決於您使用的作業系統:
-
macOS, Linux:
~/.aws/credentials -
Windows:
C:\Users\UserName\.aws\credentials
以下列格式將您的 AWS 登入資料新增至 credentials 檔案:
[default] aws_access_key_id =<your_access_key_id>aws_secret_access_key =<your_secret_access_key>
若要 AWS IoT Greengrass 將 IDT for 設定為使用 credentials 檔案中的 AWS 登入資料,請編輯 config.json 檔案,如下所示:
{ "awsRegion": "us-west-2", "auth": { "method": "file", "credentials": { "profile": "default" } } }
注意
如果您不使用default AWS 設定檔,請務必變更config.json檔案中的設定檔名稱。如需詳細資訊,請參閱具名描述檔。
環境變數是由作業系統維護且由系統命令使用的變數。如果您關閉 SSH 工作階段,則不會儲存它們。IDT for AWS IoT Greengrass 可以使用 AWS_ACCESS_KEY_ID和 AWS_SECRET_ACCESS_KEY 環境變數來存放您的 AWS 登入資料。
若要在 Linux、macOS 或 Unix 上設定這些變數,請使用 export:
export AWS_ACCESS_KEY_ID=<your_access_key_id>export AWS_SECRET_ACCESS_KEY=<your_secret_access_key>
若要在 Windows 上設定這些變數,請使用 set:
set AWS_ACCESS_KEY_ID=<your_access_key_id>set AWS_SECRET_ACCESS_KEY=<your_secret_access_key>
若要設定 IDT 來使用環境變數,請在 config.json 檔案中編輯 auth 區段。請見此處範例:
{ "awsRegion": "us-west-2", "auth": { "method": "environment" } }
設定 device.json
除了 AWS 登入資料之外,IDT for AWS IoT Greengrass 還需要測試執行所在裝置的相關資訊 (例如 IP 地址、登入資訊、作業系統和 CPU 架構)。
您必須使用位於 中的
<device_tester_extract_location>/configs/device.jsondevice.json 範本提供此資訊:
如下所述,包含值的所有欄位皆為必要:
id-
使用者定義的英數字元 ID,可唯一識別裝置的集合,稱為「裝置集區」。屬於同一個集區的裝置必須有相同的硬體。當您執行測試套件,集區中的裝置會用來將工作負載平行化。多個裝置用來執行不同的測試。
sku-
可唯一識別測試裝置的英數字元值。SKU 用來追蹤合格的主機板。
注意
如果您想要在 AWS Partner Device Catalog 中列出您的電路板,您在此處指定的 SKU 必須符合您在列出程序中使用的 SKU。
features-
包含裝置支援功能的陣列。所有功能都是必要的。
os和arch-
支援的作業系統 (OS) 和架構組合:
-
linux,x86_64 -
linux,armv6l -
linux,armv7l -
linux,aarch64 -
ubuntu,x86_64 -
openwrt,armv7l -
openwrt,aarch64
注意
如果您使用 IDT 來測試在 Docker 容器中 AWS IoT Greengrass 執行,則僅支援 x86_64 Docker 架構。
-
container-
驗證裝置是否符合在 Greengrass 核心上以容器模式執行 Lambda 函數的所有軟體和硬體需求。
有效值為
yes或no。 docker-
驗證裝置是否符合所有必要的技術相依性,以使用 Greengrass Docker 應用程式部署連接器來執行容器
有效值為
yes或no。 streamManagement-
驗證裝置是否符合執行 AWS IoT Greengrass 串流管理員所需的所有技術相依性。
有效值為
yes或no。 hsi-
驗證提供的 HSI 共用程式庫是否可以與硬體安全模組 (HSM) 溝通,並正確實作所需的 PKCS#11 API。HSM 和共用程式庫必須能夠簽署 CSR、執行 TLS 操作並提供正確的金鑰長度和公開金鑰演算法。
有效值為
yes或no。 ml-
驗證裝置符合所有必要的技術相依性,以便在本機執行 ML 推論。
有效值可以是
mxnet、dlr、tensorflow和 的任意組合no(例如mxnet、mxnet,tensorflow,dlr、mxnet,tensorflow或no)。 mlLambdaContainerizationMode-
驗證裝置是否符合在 Greengrass 裝置上以容器模式執行 ML 推論所需的所有技術相依性。
有效值為
container、process或both。 processor-
驗證裝置是否符合指定處理器類型的所有硬體需求。
有效值為
cpu或gpu。
注意
如果您不想使用
container、docker、hsi、streamManager或ml功能,您可以將對應的 設定為valueno。Docker 僅支援
streamManagement和 的功能資格ml。 machineLearning-
選用。ML 資格測試的組態資訊。如需詳細資訊,請參閱設定 device.json 以取得 ML 資格。
hsm-
選用。使用 AWS IoT Greengrass 硬體安全模組 (HSM) 進行測試的組態資訊。否則,應省略
hsm屬性。如需詳細資訊,請參閱硬體安全整合。只有當
connectivity.protocol設為ssh時,才會套用此屬性。hsm.p11Provider-
PKCS#11 實作的 libdl-loadable 程式庫的絕對路徑。
hsm.slotLabel-
用於識別硬體模組的插槽標籤。
hsm.slotUserPin-
用來向模組驗證 AWS IoT Greengrass 核心的使用者 PIN 碼。
hsm.privateKeyLabel-
用於識別硬體模組中之金鑰的標籤。
hsm.openSSLEngine-
OpenSSL 引擎
.so檔案的絕對路徑,此檔案可在 OpenSSL 上啟用 PKCS#11 支援。由 OTA AWS IoT Greengrass 更新代理程式使用。
devices.id-
使用者定義的唯一識別符,用於識別要測試的裝置。
connectivity.protocol-
用來與此裝置通訊的通訊協定。目前,唯一支援的值是實體裝置的
ssh,以及 Docker 容器的docker。 connectivity.ip-
要測試之裝置的 IP 位址。
只有當
connectivity.protocol設為ssh時,才會套用此屬性。 connectivity.containerId-
要測試之 Docker 容器的容器 ID 或名稱。
只有當
connectivity.protocol設為docker時,才會套用此屬性。 connectivity.auth-
連線的驗證資訊。
只有當
connectivity.protocol設為ssh時,才會套用此屬性。connectivity.auth.method-
用來透過指定的連線通訊協定存取裝置的驗證方法。
支援的值如下:
-
pki -
password
-
connectivity.auth.credentials-
用於驗證的燈入資料。
connectivity.auth.credentials.password-
用於登入要測試裝置的密碼。
只有當
connectivity.auth.method設為password時,才會套用此值。 connectivity.auth.credentials.privKeyPath-
用來登入待測裝置之私有金鑰的完整路徑。
只有當
connectivity.auth.method設為pki時,才會套用此值。 connectivity.auth.credentials.user-
登入要測試之裝置的使用者名稱。
connectivity.auth.credentials.privKeyPath-
用來登入要測試之裝置的私有金鑰的完整路徑。
connectivity.port-
選用。用於 SSH 連線的連接埠號碼。
預設值為 22。
此屬性只有在
connectivity.protocol設定為 時才適用ssh。 greengrassLocation-
您裝置上 AWS IoT Greengrass Core 軟體的位置。
對於實體裝置,只有在您使用 的現有安裝時,才會使用此值 AWS IoT Greengrass。使用此屬性指示 IDT 使用安裝在您裝置上的 AWS IoT Greengrass Core 軟體版本。
從 提供的 Docker 映像或 Dockerfile 在 Docker 容器中執行測試時 AWS IoT Greengrass,請將此值設定為
/greengrass。 kernelConfigLocation-
選用。核心組態檔案的路徑。 AWS IoT Device Tester 使用此檔案來檢查裝置是否已啟用必要的核心功能。如果未指定,IDT 會使用下列路徑來搜尋核心組態檔案:
/proc/config.gz和/boot/config-。 AWS IoT Device Tester 會使用其找到的第一個路徑。<kernel-version>
設定 device.json 以取得 ML 資格
本節說明裝置組態檔案中適用於 ML 資格的選用屬性。如果您計劃針對 ML 資格執行測試,則必須定義適用於您的使用案例的屬性。
您可以使用 device-ml.json 範本來定義裝置的組態設定。此範本包含選用的 ML 屬性。您也可以使用 device.json 並新增 ML 資格屬性。這些檔案位於 中,並包含 ML 資格屬性。如果您使用 <device-tester-extract-location>/configsdevice-ml.json,您必須在執行 IDT 測試之前將檔案重新命名為 device.json。
如需不適用於 ML 資格之裝置組態屬性的相關資訊,請參閱 設定 device.json。
features陣列中的ml-
您的主機板支援的 ML 框架。此屬性需要 IDT v3.1.0 或更新版本。
-
如果您的主機板只支援一個框架,請指定該框架。例如:
{ "name": "ml", "value": "mxnet" } -
如果您的主機板支援多個框架,請以逗號分隔的清單指定框架。例如:
{ "name": "ml", "value": "mxnet,tensorflow" }
-
features陣列中的mlLambdaContainerizationMode-
您想要測試的容器化模式。此屬性需要 IDT v3.1.0 或更新版本。
-
選擇使用非容器化 Lambda 函數
process執行 ML 推論程式碼。此選項需要 v1 AWS IoT Greengrass .10.x 或更新版本。 -
選擇使用容器化 Lambda 函數
container執行 ML 推論程式碼。 -
選擇
both以兩種模式執行 ML 推論程式碼。此選項需要 v1 AWS IoT Greengrass .10.x 或更新版本。
-
features陣列中的processor-
指出主機板支援的硬體加速器。此屬性需要 IDT v3.1.0 或更新版本。
-
如果您的主機板使用 CPU 做為處理器,請選擇
cpu。 -
如果您的主機板使用 GPU 做為處理器,請選擇
gpu。
-
machineLearning-
選用。ML 資格測試的組態資訊。此屬性需要 IDT v3.1.0 或更新版本。
dlrModelPath-
使用
dlr框架時需要。DLR 編譯模型目錄的絕對路徑,必須命名為resnet18。如需詳細資訊,請參閱編譯 DLR 模型。注意
以下是 macOS 上的範例路徑:
/Users/。<user>/Downloads/resnet18 environmentVariables-
鍵值組的陣列,可以動態地將設定傳遞給 ML 推論測試。對於 CPU 裝置為選用。您可以使用此區段來新增裝置類型所需的框架特定環境變數。如需這些需求的相關資訊,請參閱框架或裝置的官方網站。例如,若要在某些裝置上執行 MxNet 推論測試,可能需要下列環境變數。
"environmentVariables": [ ... { "key": "PYTHONPATH", "value": "$MXNET_HOME/python:$PYTHONPATH" }, { "key": "MXNET_HOME", "value": "$HOME/mxnet/" }, ... ]注意
value欄位可能會根據您的 MxNet 安裝而有所不同。如果您要測試在 GPU 裝置上使用容器化執行的 Lambda 函數,請新增 GPU 程式庫的環境變數。這使得 GPU 可以執行計算。若要使用不同的 GPU 程式庫,請參閱程式庫或裝置的官方文件。
注意
如果
mlLambdaContainerizationMode功能設定為container或both,請設定下列鍵。"environmentVariables": [ { "key": "PATH", "value": "<path/to/software/bin>:$PATH" }, { "key": "LD_LIBRARY_PATH", "value": "<path/to/ld/lib>" }, ... ] deviceResources-
GPU 裝置所需。包含可由 Lambda 函數存取的本機資源。使用此區段可新增本機裝置和磁碟區資源。
-
對於裝置資源,請指定
"type": "device"。對於 GPU 裝置,裝置資源應該是/dev下的 GPU 相關裝置檔案。注意
/dev/shm目錄是例外狀況。它僅能設為磁碟區資源。 -
對於磁碟區資源,請指定
"type": "volume"。
-