

サポート終了通知: 2026 年 10 月 7 日、 AWS はサポートを終了します AWS IoT Greengrass Version 1。2026 年 10 月 7 日以降、 AWS IoT Greengrass V1 リソースにアクセスできなくなります。詳細については、[「 からの移行 AWS IoT Greengrass Version 1](https://docs.aws.amazon.com/greengrass/v2/developerguide/migrate-from-v1.html)」を参照してください。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 認定スイートを実行するように IDT AWS IoT Greengrass 設定を構成する
<a name="set-config"></a>

テストを実行する前に、ホストコンピュータの AWS 認証情報とデバイスの設定を構成する必要があります。

## AWS 認証情報を設定する
<a name="cfg-aws-gg"></a>

IAM ユーザー認証情報を `<device-tester-extract-location> /configs/config.json` ファイルで設定する必要があります。で作成した AWS IoT Greengrass ユーザーの IDT の認証情報を使用します[の作成と設定 AWS アカウント](dev-tst-prereqs.md#config-aws-account-for-idt)。以下のいずれかの方法で認証情報を指定できます。
+ 認証情報ファイル
+ 環境変数

### AWS 認証情報ファイルを使用して認証情報を設定する
<a name="config-cred-file"></a>

IDT では、 AWS CLIと同じ認証情報ファイルが使用されます。詳細については、「[設定ファイルと認証情報ファイル](https://docs.aws.amazon.com/cli/latest/userguide/cli-config-files.html)」を参照してください。

認証情報ファイルの場所は、使用しているオペレーティングシステムによって異なります。
+ 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 認証情報を使用する AWS IoT Greengrass ように IDT for を設定するには、次のように`config.json`ファイルを編集します。

```
{
	"awsRegion": "us-west-2",
	"auth": {
		"method": "file",
		"credentials": {
			"profile": "default"
		}
	}
}
```

**注記**  
`default` AWS プロファイルを使用しない場合は、 `config.json`ファイルのプロファイル名を必ず変更してください。詳細については、「[名前付きプロファイル](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html)」を参照してください。

### 環境変数を使用して AWS 認証情報を設定する
<a name="config-env-vars"></a>

環境変数は、オペレーティングシステムによって維持され、システムコマンドによって使用される変数です。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 の設定
<a name="device-config"></a>

 AWS 認証情報に加えて、IDT for には、テストが実行されるデバイスに関する情報 (IP アドレス、ログイン情報、オペレーティングシステム、CPU アーキテクチャなど) AWS IoT Greengrass が必要です。

これらの情報を指定するには、` <device_tester_extract_location>/configs/device.json` にある `device.json` テンプレートを使用する必要があります。

------
#### [ Physical device ]

```
[
  {
    "id": "<pool-id>",
    "sku": "<sku>",
    "features": [
      {
        "name": "os",
        "value": "linux | ubuntu | openwrt"
      },
      {
        "name": "arch",
        "value": "x86_64 | armv6l | armv7l | aarch64"
      },
      {
        "name": "container",
        "value": "yes | no"
      },
      {
        "name": "docker",
        "value": "yes | no"
      },
      {
        "name": "streamManagement",
        "value": "yes | no"
      },
      {
        "name": "hsi",
        "value": "yes | no"
      },
      {
        "name": "ml",
        "value": "mxnet | tensorflow | dlr | mxnet,dlr,tensorflow | no"
      },
      *********** Remove the section below if the device is not qualifying for ML **************,
      {
        "name": "mlLambdaContainerizationMode",
        "value": "container | process | both"
      },
      {
        "name": "processor",
        "value": "cpu | gpu"
      },
      ******************************************************************************************
    ],
    *********** Remove the section below if the device is not qualifying for HSI ***************
    "hsm": {
      "p11Provider": "/path/to/pkcs11ProviderLibrary",
      "slotLabel": "<slot_label>",
      "slotUserPin": "<slot_pin>",
      "privateKeyLabel": "<key_label>",
      "openSSLEngine": "/path/to/openssl/engine"
    },
    ********************************************************************************************
    *********** Remove the section below if the device is not qualifying for ML ****************
    "machineLearning": {
      "dlrModelPath": "/path/to/compiled/dlr/model",
      "environmentVariables": [
        {
          "key": "<environment-variable-name>",
          "value": "<Path:$PATH>"
        }
      ],
      "deviceResources": [
        {
          "name": "<resource-name>",
          "path": "<resource-path>",
          "type": "device | volume"
        }
      ]
    },
    ******************************************************************************************
    "kernelConfigLocation": "",
    "greengrassLocation": "",
    "devices": [
      {
        "id": "<device-id>",
        "connectivity": {
          "protocol": "ssh",
          "ip": "<ip-address>",
          "port": 22,
          "auth": {
            "method": "pki | password",
            "credentials": {
              "user": "<user-name>",
              "privKeyPath": "/path/to/private/key",
              "password": "<password>"
            }
          }
        }
      }
    ]
  }
]
```

**注記**  
`method` が `pki` に設定されている場合のみ `privKeyPath` を指定します。  
`method` が `password` に設定されている場合のみ `password` を指定します。

------
#### [ Docker container ]

```
[
  {
    "id": "<pool-id>",
    "sku": "<sku>",
    "features": [
      {
        "name": "os",
        "value": "linux | ubuntu | openwrt"
      },
      {
        "name": "arch",
        "value": "x86_64"
      },
      {
        "name": "container",
        "value": "no"
      },
      {
        "name": "docker",
        "value": "no"
      },
      {
        "name": "streamManagement",
        "value": "yes | no"
      },
      {
        "name": "hsi",
        "value": "no"
      },
      {
        "name": "ml",
        "value": "mxnet | tensorflow | dlr | mxnet,dlr,tensorflow | no"
      },
      *********** Remove the section below if the device is not qualifying for ML **************,
      {
        "name": "mlLambdaContainerizationMode",
        "value": "process"
      },
      {
        "name": "processor",
        "value": "cpu | gpu"
      },
      ******************************************************************************************
    ],
    *********** Remove the section below if the device is not qualifying for ML ****************
    "machineLearning": {
      "dlrModelPath": "/path/to/compiled/dlr/model",
      "environmentVariables": [
        {
          "key": "<environment-variable-name>",
          "value": "<Path:$PATH>"
        }
      ],
      "deviceResources": [
        {
          "name": "<resource-name>",
          "path": "<resource-path>",
          "type": "device | volume"
        }
      ]
    },
    ******************************************************************************************
    "kernelConfigLocation": "",
    "greengrassLocation": "",
    "devices": [
      {
        "id": "<device-id>",
        "connectivity": {
          "protocol": "docker",
          "containerId": "<container-name | container-id>",
          "containerUser": "<user>"
        }
      }
    ]
  }
]
```

------

以下に説明するように、値が含まれているすべてのフィールドは必須です。

`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\$164 Docker アーキテクチャのみがサポートされます。  
`container`  
<a name="description-container"></a>デバイスが Greengrass コアのコンテナモードで Lambda 関数を実行するためのすべてのソフトウェア要件とハードウェア要件を満たしているかどうかを検証します。  
有効な値は `yes` または `no` です。  
`docker`  
<a name="description-docker"></a>Greengrass Docker アプリケーションデプロイコネクタを使用してコンテナを実行するために必要なすべての技術的依存関係をデバイスが満たしていることを検証します。  
有効な値は `yes` または `no` です。  
`streamManagement`  
<a name="description-sm"></a>デバイスが AWS IoT Greengrass ストリームマネージャーを実行するために必要な技術的な依存関係をすべて満たしていることを検証します。  
有効な値は `yes` または `no` です。  
`hsi`  
<a name="description-hsi"></a>提供された HSI 共有ライブラリがハードウェアセキュリティモジュール (HSM) とやり取りでき、必要な PKCS\$111 API を正しく実装することを検証します。HSM および共有ライブラリは、CSR に署名し、TLS オペレーションを実行して、正しいキー長と公開キーアルゴリズムを提供できる必要があります。  
有効な値は `yes` または `no` です。  
`ml`  
<a name="description-ml"></a>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 の設定](#device-json-ml-qualification)」を参照してください。

`hsm`  
オプション。 AWS IoT Greengrass ハードウェアセキュリティモジュール (HSM) でテストするための設定情報。それ以外の場合は、`hsm` プロパティを省略する必要があります。詳細については、「[ハードウェアセキュリティ統合](hardware-security.md)」を参照してください。  
<a name="connectivity-protocol-ssh-only"></a>このプロパティは、`connectivity.protocol` が `ssh` に設定されている場合にのみ適用されます。    
`hsm.p11Provider`  
PKCS\$111 実装の libdl-loadable ライブラリへの絶対パス。  
`hsm.slotLabel`  
ハードウェアモジュールを識別するために使用されるスロットラベル。  
`hsm.slotUserPin`  
モジュールへの AWS IoT Greengrass コアの認証に使用されるユーザー PIN。  
`hsm.privateKeyLabel`  
ハードウェアモジュールでキーを識別するために使用されるラベル。  
`hsm.openSSLEngine`  
OpenSSL での PKCS\$111 のサポートを有効にするための、OpenSSL エンジンの `.so` ファイルへの絶対パス。 AWS IoT Greengrass OTA 更新エージェントによって使用されます。

`devices.id`  
テスト対象のデバイスのユーザー定義の一意の識別子。

`connectivity.protocol`  
このデバイスと通信するために使用される通信プロトコル。現在、サポートされている値は、物理デバイス用の `ssh` と Docker コンテナ用の `docker` のみです。

`connectivity.ip`  
テスト対象のデバイスの IP アドレス。  
<a name="connectivity-protocol-ssh-only"></a>このプロパティは、`connectivity.protocol` が `ssh` に設定されている場合にのみ適用されます。

`connectivity.containerId`  
テスト対象の Docker コンテナのコンテナ ID または名前。  
<a name="connectivity-protocol-docker-only"></a>このプロパティは、`connectivity.protocol` が `docker` に設定されている場合にのみ適用されます。

`connectivity.auth`  
接続の認証情報。  
<a name="connectivity-protocol-ssh-only"></a>このプロパティは、`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 に指示します。  
が提供する Docker イメージまたは Dockerfile から Docker コンテナでテストを実行する場合は AWS IoT Greengrass、この値を に設定します`/greengrass`。

`kernelConfigLocation`  
オプション。カーネル設定ファイルへのパス。 AWS IoT Device Tester はこのファイルを使用して、デバイスに必要なカーネル機能が有効になっているかどうかを確認します。指定しない場合、IDT は次のパスを使用してカーネル設定ファイルを検索します: `/proc/config.gz`および `/boot/config-<kernel-version>`。 AWS IoT Device Tester は、検出した最初のパスを使用します。

## ML 認定のための device.json の設定
<a name="device-json-ml-qualification"></a>

このセクションでは、ML 認定に適用されるデバイス設定ファイルのオプションプロパティについて説明します。ML 認定のテストを実行する場合は、ユースケースに適したプロパティを定義する必要があります。

`device-ml.json` テンプレートを使用して、デバイスの構成設定を定義できます。このテンプレートには、オプションの ML プロパティが含まれています。また、`device.json` を使用して ML 修飾プロパティを追加することもできます。これらのファイルは `<device-tester-extract-location>/configs` にあり、これらには ML 認定プロパティが含まれています。`device-ml.json` を使用する場合は、IDT テストを実行する前に、ファイルの名前を `device.json` に変更する必要があります。

ML 認定に適用されないデバイス設定プロパティについては、「[device.json の設定](#device-config)」を参照してください。

 

`features` 配列内の `ml`  
ボードがサポートする ML フレームワーク。<a name="idt-version-ml-qualification"></a>このプロパティには IDT v3.1.0 以降が必要です。  
+ 対象のボードでサポートされるフレームワークが 1 つだけの場合は、そのフレームワークを指定します。例:

  ```
  {
      "name": "ml",
      "value": "mxnet"
  }
  ```
+ 対象のボードで複数のフレームワークがサポートされている場合は、フレームワークをカンマで区切って指定します。例:

  ```
  {
      "name": "ml",
      "value": "mxnet,tensorflow"
  }
  ```

`features` 配列内の `mlLambdaContainerizationMode`  
テストに使用する[コンテナ化モード](lambda-group-config.md#lambda-containerization-considerations)。<a name="idt-version-ml-qualification"></a>このプロパティには 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`  
対象のボードがサポートするハードウェアアクセラレーターを示します。<a name="idt-version-ml-qualification"></a>このプロパティには IDT v3.1.0 以降が必要です。  
+ 対象のボードがプロセッサとして CPU を使用する場合は `cpu` を選択します。
+ 対象のボードがプロセッサとして GPU を使用する場合は `gpu` を選択します。

`machineLearning`  
オプション。ML 認定テストの設定情報。<a name="idt-version-ml-qualification"></a>このプロパティには IDT v3.1.0 以降が必要です。    
`dlrModelPath`  
`dlr` フレームワークを使用するために必要です。DLR コンパイル済みモデルディレクトリへの絶対パス。`resnet18` を指定する必要があります。詳細については、「[DLR モデルのコンパイル](idt-ml-qualification.md#ml-qualification-dlr-compile-model)」を参照してください。  
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-group-config.md#lambda-containerization-considerations)によって実行される 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 関数からアクセス可能な[ローカルリソース](access-local-resources.md#lra-resource-types)が含まれています。このセクションを使用して、ローカルデバイスとボリュームリソースを追加します。  
+ デバイスリソースの場合は、`"type": "device"` を指定します。GPU デバイスの場合、デバイスリソースは、`/dev` 以下にある GPU 関連デバイスファイルである必要があります。
**注記**  
`/dev/shm` ディレクトリは例外です。これは、ボリュームリソースとしてのみ設定できます。
+ ボリュームリソースの場合は、`"type": "volume"` を指定します。