AWS IoT Greengrass Version 1 は、2023 年 6 月 30 日に延長ライフフェーズに入りました。詳細については、「AWS IoT Greengrass V1 メンテナンスポリシー」を参照してください。この日以降、 AWS IoT Greengrass V1 は機能、機能強化、バグ修正、またはセキュリティパッチを提供する更新をリリースしません。で実行されるデバイスは中断 AWS IoT Greengrass V1 されず、引き続き運用され、クラウドに接続されます。への移行 AWS IoT Greengrass Version 2を強くお勧めします。これにより、重要な新機能が追加され、追加のプラットフォーム がサポートされます。
翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS IoT Greengrass 認定スイートを実行するための IDT 設定
テストを実行する前に、AWS 認証情報およびデバイスをホストコンピュータに設定する必要があります。
AWS 認証情報を設定する
IAM ユーザー認証情報を
ファイルで設定する必要があります。「を作成して設定する AWS アカウント」で作成した IDT for AWS IoT Greengrass ユーザーの認証情報を使用します。以下のいずれかの方法で認証情報を指定できます。<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>
credentials
ファイルの AWS 認証情報を使用するように IDT for AWS IoT Greengrass を設定するには、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
、tensorflow
、dlr
、およびno
の任意の組み合わせです (例:mxnet
、mxnet,tensorflow
、mxnet,tensorflow,dlr
、またはno
)。 mlLambdaContainerizationMode
-
コンテナモードの Greengrass デバイスで ML 推論を実行するための技術的依存関係要件をデバイスがすべて満たしていることを検証します。
有効な値は
container
、process
、またはboth
です。 processor
-
指定したプロセッサタイプのハードウェア要件をデバイスがすべて満たしていることを検証します。
有効な値は
cpu
またはgpu
です。
注記
container
、docker
、streamManager
、hsi
、またはml
機能を使用しない場合は、対応するvalue
をno
に設定できます。Docker は、
streamManagement
とml
の機能認定のみをサポートしています。 machineLearning
-
オプション。ML 認定テストの設定情報。詳細については、「ML 認定のための device.json の設定」を参照してください。
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 での PKCS#11 のサポートを有効にするための、OpenSSL エンジンの
.so
ファイルへの絶対パス。AWS IoT Greengrass OTA 更新エージェントによって使用されます。
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 の使用時にのみ使用します。この属性を使用して、デバイスにインストール済みのバージョンの AWS IoT Greengrass Core ソフトウェアを使用するよう IDT に指示します。
AWS IoT Greengrass に用意されている Docker イメージまたは Dockerfile から Docker コンテナでテストを実行する場合は、この値を
/greengrass
に設定します。 kernelConfigLocation
-
オプション。カーネル設定ファイルへのパス。AWS IoTDevice Tester は、このファイルを使用してデバイスで必要なカーネル機能が有効にされているかどうかを確認します。指定しない場合、IDT は
/proc/config.gz
と/boot/config-
のパスを使用して、カーネル設定ファイルを検索します。AWS IoTDevice Tester は、検出した最初のパスを使用します。<kernel-version>
ML 認定のための device.json の設定
このセクションでは、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 以降が必要です。
-
対象のボードでサポートされるフレームワークが 1 つだけの場合は、そのフレームワークを指定します。例:
{ "name": "ml", "value": "mxnet" }
-
対象のボードで複数のフレームワークがサポートされている場合は、フレームワークをカンマで区切って指定します。例:
{ "name": "ml", "value": "mxnet,tensorflow" }
-
features
配列内のmlLambdaContainerizationMode
-
テストに使用するコンテナ化モード。このプロパティには IDT v3.1.0 以降が必要です。
-
コンテナ化されていない Lambda 関数を使用して ML 推論コードを実行するには、
process
を選択します。このオプションを使用するには、AWS IoT Greengrass v1.10.x 以降が必要です。 -
コンテナ化された Lambda 関数を使用して ML 推論コードを実行するには、
container
を選択します。 -
両方のモードで ML 推論コードを実行するには、
both
を選択します。このオプションを使用するには、AWS IoT Greengrass v1.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"
を指定します。
-