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を強くお勧めします。これにより、重要な新機能が追加され、追加のプラットフォーム がサポートされます。
翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
テストの実行者向けの設定の構成
カスタムテストスイートを実行するには、テストの実行者は、実行するテストスイートに基づいて設定を構成する必要があります。設定は、
フォルダにある JSON 設定ファイルテンプレートに基づいて指定します。必要に応じて、テストの実行者は、IDT が AWS クラウドへの接続に使用する AWS 認証情報も設定する必要があります。<device-tester-extract-location>
/configs/
テストを作成するユーザーは、テストスイートをデバッグするために、以下に示すファイルの設定が必要になります。また、テストスイートを実行するために必要な以下の設定を構成できるように、テストの実行者に指示を提供する必要があります。
device.json の設定
device.json
ファイルには、テストが実行されるデバイスに関する情報 (IP アドレス、ログイン情報、オペレーティングシステム、CPU アーキテクチャなど) が含まれています。
テストの実行者は、
フォルダにある次のテンプレート <device-tester-extract-location>
/configs/device.json
ファイルを使用してこの情報を指定できます。
[ { "id": "
<pool-id>
", "sku": "<pool-sku>
", "features": [ { "name": "<feature-name>
", "value": "<feature-value>
", "configs": [ { "name": "<config-name>
", "value":"<config-value>
" } ], } ], "devices": [ { "id": "<device-id>
", "connectivity": { "protocol": "ssh | uart | docker", // ssh "ip": "<ip-address>
", "port":<port-number>
, "auth": { "method": "pki | password", "credentials": { "user": "<user-name>
", // pki "privKeyPath": "/path/to/private/key
", // password "password": "<password>
", } }, // uart "serialPort": "<serial-port>
", // docker "containerId": "<container-id>
", "containerUser": "<container-user-name>
", } } ] } ]
以下に説明するように、値が含まれているすべてのフィールドは必須です。
id
-
デバイスプールと呼ばれるデバイスのコレクションを一意に識別するユーザー定義の英数字の ID。プールに属するデバイスには、同一のハードウェアが必要です。テストスイートを実行する場合、プールのデバイスを使用してワークロードを並列化します。複数のデバイスを使用して異なるテストを実行します。
sku
-
テスト対象デバイスを一意に識別する英数字の値。SKU は、認定されたデバイスの追跡に使用されます。
注記
AWS Partner Device Catalog にボードを出品する場合は、ここで指定する SKU と出品プロセスで使用する SKU が一致しなければなりません。
features
-
オプション。デバイスでサポートされている機能を含む配列。デバイス機能は、テストスイートに設定するユーザー定義の値です。テストの実行者に、
device.json
ファイルに含める機能名および値に関する情報を提供する必要があります。例えば、他のデバイスの MQTT サーバーとして機能するデバイスをテストする場合は、MQTT_QOS
という名前の機能に対する特定のサポートレベルを検証するようにテストロジックを設定します。テストの実行者は、この機能名を指定し、デバイスによってサポートされる QOS レベルにその機能値を設定します。指定された情報は、devicePool.features
クエリを使用して IDT コンテキストから、またはpool.features
クエリを使用してステートマシンコンテキストから取得できます。features.name
-
機能の名前。
features.value
-
サポートされている機能値。
features.configs
-
機能の構成設定 (必要な場合)。
features.config.name
-
構成設定の名前。
features.config.value
-
サポートされている設定値。
devices
-
テスト対象のプール内のデバイスの配列。少なくとも 1 つのデバイスが必要です。
devices.id
-
テスト対象のデバイスのユーザー定義の一意の識別子。
connectivity.protocol
-
このデバイスと通信するために使用される通信プロトコル。プール内の各デバイスは、同じプロトコルを使用する必要があります。
現在、サポートされている値は、物理デバイス用の
ssh
およびuart
と、Docker コンテナ用のdocker
のみです。 connectivity.ip
-
テスト対象のデバイスの IP アドレス。
このプロパティは、
connectivity.protocol
がssh
に設定されている場合にのみ適用されます。 connectivity.port
-
オプション。SSH 接続に使用するポート番号。
デフォルト値は 22 です。
このプロパティは、
connectivity.protocol
がssh
に設定されている場合にのみ適用されます。 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.serialPort
-
オプション。デバイスが接続されているシリアルポート。
このプロパティは、
connectivity.protocol
がuart
に設定されている場合にのみ適用されます。 connectivity.containerId
-
テスト対象の Docker コンテナのコンテナ ID または名前。
このプロパティは、
connectivity.protocol
がdocker
に設定されている場合にのみ適用されます。 connectivity.containerUser
-
オプション。コンテナ内のユーザー名。デフォルト値は Dockerfile で指定されたユーザーです。
デフォルト値は 22 です。
このプロパティは、
connectivity.protocol
がdocker
に設定されている場合にのみ適用されます。
注記
テストの実行者がテストに対して誤ったデバイス接続を構成しているかどうかを確認するには、ステートマシンコンテキストから
pool.Devices[0].Connectivity.Protocol
を取得し、この値をChoice
ステート内の予想値と比較します。正しくないプロトコルが使用されている場合は、LogMessage
ステートを使用してメッセージを出力し、Fail
ステートに移行します。または、エラー処理コードを使用して、誤ったデバイスタイプによるテスト失敗をレポートすることもできます。
(オプション) userdata.json の設定
userdata.json
ファイルには、device.json
ファイルには指定されていない、テストスイートに必要とされる追加情報が含まれています。このファイルの形式は、テストスイートに定義されている userdata_scheme.json ファイルによって異なります。テストを作成するユーザーは、作成したテストスイートを実行するユーザーにこの情報を提供してください。
(オプション) resource.json の設定
resource.json
ファイルには、リソースデバイスとして使用されるすべてのデバイスに関する情報が含まれています。リソースデバイスは、テスト対象のデバイスの特定の機能をテストするために必要なデバイスです。例えば、デバイスの Bluetooth 機能をテストするには、リソースデバイスを使用して、デバイスがリソースデバイスに正常に接続できるかどうかをテストできます。リソースデバイスはオプションで、必要な数だけリソースデバイスを要求できます。テストを作成するユーザーは、test.json ファイル を使用して、テストに必要なリソースデバイスの機能を定義します。テストの実行者は、resource.json
ファイルを使用して、必要な機能を持つリソースデバイスのプールを指定します。作成したテストスイートを実行するユーザーに、以下の情報を提供してください。
テストの実行者は、
フォルダにある次のテンプレート <device-tester-extract-location>
/configs/resource.json
ファイルを使用してこの情報を指定できます。
[ { "id": "
<pool-id>
", "features": [ { "name": "<feature-name>
", "version": "<feature-value>
", "jobSlots":<job-slots>
} ], "devices": [ { "id": "<device-id>
", "connectivity": { "protocol": "ssh | uart | docker", // ssh "ip": "<ip-address>
", "port":<port-number>
, "auth": { "method": "pki | password", "credentials": { "user": "<user-name>
", // pki "privKeyPath": "/path/to/private/key
", // password "password": "<password>
", } }, // uart "serialPort": "<serial-port>
", // docker "containerId": "<container-id>
", "containerUser": "<container-user-name>
", } } ] } ]
以下に説明するように、値が含まれているすべてのフィールドは必須です。
id
-
デバイスプールと呼ばれるデバイスのコレクションを一意に識別するユーザー定義の英数字の ID。プールに属するデバイスには、同一のハードウェアが必要です。テストスイートを実行する場合、プールのデバイスを使用してワークロードを並列化します。複数のデバイスを使用して異なるテストを実行します。
features
-
オプション。デバイスでサポートされている機能を含む配列。このフィールドに必要な情報は、テストスイートの test.json ファイル に定義されています。この情報によって、実行するテストと、テストの実行方法が決まります。テストスイートに機能が必要ない場合は、このフィールドは必須ではありません。
features.name
-
機能の名前。
features.version
-
機能バージョン。
features.jobSlots
-
デバイスを同時に使用できるテストの数を示すための設定。デフォルト値は
1
です。
devices
-
テスト対象のプール内のデバイスの配列。少なくとも 1 つのデバイスが必要です。
devices.id
-
テスト対象のデバイスのユーザー定義の一意の識別子。
connectivity.protocol
-
このデバイスと通信するために使用される通信プロトコル。プール内の各デバイスは、同じプロトコルを使用する必要があります。
現在、サポートされている値は、物理デバイス用の
ssh
およびuart
と、Docker コンテナ用のdocker
のみです。 connectivity.ip
-
テスト対象のデバイスの IP アドレス。
このプロパティは、
connectivity.protocol
がssh
に設定されている場合にのみ適用されます。 connectivity.port
-
オプション。SSH 接続に使用するポート番号。
デフォルト値は 22 です。
このプロパティは、
connectivity.protocol
がssh
に設定されている場合にのみ適用されます。 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.serialPort
-
オプション。デバイスが接続されているシリアルポート。
このプロパティは、
connectivity.protocol
がuart
に設定されている場合にのみ適用されます。 connectivity.containerId
-
テスト対象の Docker コンテナのコンテナ ID または名前。
このプロパティは、
connectivity.protocol
がdocker
に設定されている場合にのみ適用されます。 connectivity.containerUser
-
オプション。コンテナ内のユーザー名。デフォルト値は Dockerfile で指定されたユーザーです。
デフォルト値は 22 です。
このプロパティは、
connectivity.protocol
がdocker
に設定されている場合にのみ適用されます。
(オプション) config.json の設定
config.json
ファイルには、IDT 向けの設定情報が含まれています。通常、テストの実行者は、IDT 用の AWS ユーザー認証情報、AWS リージョン (オプション) を指定することを除き、このファイルを変更する必要はありません。必要なアクセス許可が付与される AWS 認証情報が指定されると、AWS IoT Device Tester は使用状況メトリクスを収集して AWS に送信します。これはオプトイン機能で、IDT 機能を改善するために使用されます。詳細については、IDT 使用状況メトリクス を参照してください。
テストの実行者は、以下のいずれかの方法で AWS 認証情報を入手します。
-
認証情報ファイル
IDT では、AWS CLI と同じ認証情報ファイルが使用されます。詳細については、「設定ファイルと認証情報ファイル」を参照してください。
認証情報ファイルの場所は、使用しているオペレーティングシステムによって異なります。
-
macOS、Linux:
~/.aws/credentials
-
Windows:
C:\Users\
UserName
\.aws\credentials
-
-
環境変数
環境変数は、オペレーティングシステムによって維持され、システムコマンドによって使用される変数です。SSH セッション中に定義された変数は、そのセッションの終了後は使用できません。IDT は、環境変数の
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 用の AWS 認証情報を設定するには、テストの実行者は、auth
フォルダにある config.json
ファイルの
セクションを編集します。<device-tester-extract-location>
/configs/
{ "log": { "location": "
logs
" }, "configFiles": { "root": "configs
", "device": "configs/device.json
" }, "testPath": "tests
", "reportPath": "results
", "awsRegion": "<region>
", "auth": { "method": "file | environment", "credentials": { "profile": "<profile-name>
" } } } ]
以下に説明するように、値が含まれているすべてのフィールドは必須です。
注記
このファイル内のすべてのパスは、<device-tester-extract-location>
に関連して定義されています。
log.location
-
<device-tester-extract-location>
のログフォルダへのパス。 configFiles.root
-
設定ファイルが含まれるフォルダへのパス。
configFiles.device
-
device.json
ファイルへのパス。 testPath
-
テストスイートが含まれるフォルダへのパス。
reportPath
-
IDT がテストスイートを実行した後にテスト結果が含まれるフォルダへのパス。
awsRegion
-
オプション。テストスイートが使用する AWS リージョン。設定されない場合、テストスイートは各テストスイートに指定されているデフォルトのリージョンを使用します。
auth.method
-
IDT が AWS 認証情報の取得に使用する方法。サポートされる値は、
file
(認証情報ファイルから認証情報を取得) とenvironment
(環境変数を使用して認証情報を取得) です。 auth.credentials.profile
-
認証情報ファイルから使用する認証情報プロファイル。このプロパティは、
auth.method
がfile
に設定されている場合にのみ適用されます。