

Avviso di fine del supporto: il 7 ottobre 2026, AWS il supporto per. AWS IoT Greengrass Version 1 Dopo il 7 ottobre 2026, non potrai più accedere alle risorse. AWS IoT Greengrass V1 Per ulteriori informazioni, visita [Migrate](https://docs.aws.amazon.com/greengrass/v2/developerguide/migrate-from-v1.html) from. AWS IoT Greengrass Version 1

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Configurare le impostazioni IDT per eseguire la suite di AWS IoT Greengrass qualifiche
<a name="set-config"></a>

Prima di eseguire i test, è necessario configurare le impostazioni per le AWS credenziali e i dispositivi sul computer host.

## Configura le tue credenziali AWS
<a name="cfg-aws-gg"></a>

È necessario configurare le credenziali utente IAM nel `<device-tester-extract-location> /configs/config.json` file. Utilizza le credenziali per l'IDT per l' AWS IoT Greengrass utente creato in. [Crea e configura un Account AWS](dev-tst-prereqs.md#config-aws-account-for-idt) Puoi specificare le credenziali in uno dei due modi seguenti:
+ File delle credenziali
+ Variabili di ambiente

### Configura le AWS credenziali con un file di credenziali
<a name="config-cred-file"></a>

IDT usa lo stesso file delle credenziali di AWS CLI. Per ulteriori informazioni, consulta l'argomento relativo ai [file di configurazione e delle credenziali](https://docs.aws.amazon.com/cli/latest/userguide/cli-config-files.html).

La posizione del file delle credenziali varia in base al sistema operativo in uso:
+ macOS, Linux: `~/.aws/credentials`
+ Windows: `C:\Users\UserName\.aws\credentials`

Aggiungi AWS le tue credenziali al `credentials` file nel seguente formato:

```
[default]
aws_access_key_id = <your_access_key_id>
aws_secret_access_key = <your_secret_access_key>
```

Per configurare IDT in modo AWS IoT Greengrass che utilizzi AWS le credenziali del tuo `credentials` file, modifica il `config.json` file come segue:

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

**Nota**  
Se non usi il `default` AWS profilo, assicurati di cambiarne il nome nel file`config.json`. Per ulteriori informazioni, consulta l'articolo relativo ai [profili denominati](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html).

### Configura AWS le credenziali con variabili di ambiente
<a name="config-env-vars"></a>

Le variabili di ambiente sono variabili gestite dal sistema operativo e utilizzate dai comandi di sistema. Non vengono salvate se chiudi la sessione SSH. IDT for AWS IoT Greengrass può utilizzare le variabili di `AWS_SECRET_ACCESS_KEY` ambiente `AWS_ACCESS_KEY_ID` e per memorizzare le credenziali. AWS 

Per impostare queste variabili su Linux, macOS o Unix, utilizza **export**:

```
export AWS_ACCESS_KEY_ID=<your_access_key_id>
export AWS_SECRET_ACCESS_KEY=<your_secret_access_key>
```

Per impostare queste variabili su Windows, utilizza **set**:

```
set AWS_ACCESS_KEY_ID=<your_access_key_id>
set AWS_SECRET_ACCESS_KEY=<your_secret_access_key>
```

Per configurare IDT per utilizzare le variabili di ambiente, modifica la sezione `auth` nel file `config.json`. Ecco un esempio:

```
{
	"awsRegion": "us-west-2",
	"auth": {
		"method": "environment"
	}
}
```

## Configura dispositivo.json
<a name="device-config"></a>

Oltre alle AWS credenziali, IDT for AWS IoT Greengrass necessita di informazioni sui dispositivi su cui vengono eseguiti i test (ad esempio, indirizzo IP, informazioni di accesso, sistema operativo e architettura della CPU).

Devi fornire queste informazioni utilizzando il modello `device.json` situato in ` <device_tester_extract_location>/configs/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>"
            }
          }
        }
      }
    ]
  }
]
```

**Nota**  
Specificare `privKeyPath` solo se `method` è impostato su `pki`.  
Specificare `password` solo se `method` è impostato su `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>"
        }
      }
    ]
  }
]
```

------

Tutti i campi che includono valori sono obbligatori, come descritto di seguito:

`id`  
Un ID alfanumerico definito dall'utente che identifica in modo univoco una raccolta di dispositivi denominata un *pool di dispositivi*. I dispositivi che appartengono a un pool devono avere lo stesso hardware. Durante l'esecuzione di una suite di test, i dispositivi del pool vengono utilizzati per parallelizzare il carico di lavoro. Più dispositivi vengono utilizzati per eseguire diversi test.

`sku`  
Un valore alfanumerico che identifica in modo univoco il dispositivo sottoposto a test. Il codice SKU viene utilizzato per tenere traccia delle schede qualificate.  
Se desideri inserire la tua scheda nel AWS Partner Device Catalog, lo SKU che specifichi qui deve corrispondere allo SKU che utilizzi nel processo di pubblicazione.

`features`  
Un array contenente le caratteristiche supportate del dispositivo. Tutte le funzionalità sono obbligatorie.    
`os` e `arch`  
  
Combinazioni di sistemi operativi (OS) e architetture supportate:  
+ `linux`, `x86_64`
+ `linux`, `armv6l`
+ `linux`, `armv7l`
+ `linux`, `aarch64`
+ `ubuntu`, `x86_64`
+ `openwrt`, `armv7l`
+ `openwrt`, `aarch64`
Se utilizzi IDT per testare l' AWS IoT Greengrass esecuzione in un contenitore Docker, è supportata solo l'architettura Docker x86\$164.  
`container`  
<a name="description-container"></a>Verifica che il dispositivo soddisfi tutti i requisiti software e hardware per eseguire le funzioni Lambda in modalità contenitore su un core Greengrass.  
Il valore valido è o. `yes` `no`  
`docker`  
<a name="description-docker"></a>Verifica che il dispositivo soddisfi tutte le dipendenze tecniche richieste per utilizzare il connettore di distribuzione delle applicazioni Greengrass Docker per eseguire i contenitori  
Il valore valido è o. `yes` `no`  
`streamManagement`  
<a name="description-sm"></a>Verifica che il dispositivo soddisfi tutte le dipendenze tecniche richieste per eseguire AWS IoT Greengrass lo stream manager.  
Il valore valido è `yes` o. `no`  
`hsi`  
<a name="description-hsi"></a>Verifica che la libreria condivisa HSI fornita sia in grado di interfacciarsi con il modulo di sicurezza hardware (HSM) e implementa correttamente il PKCS \$111 richiesto. APIs La HSM e la libreria condivisa devono essere in grado di accedere a un CSR, eseguire operazioni TLS e fornire le lunghezze di chiave e l'algoritmo chiave pubblica corretti.  
Il valore valido è o. `yes` `no`  
`ml`  
<a name="description-ml"></a>Verifica che il dispositivo soddisfa tutte le dipendenze tecniche richieste per eseguire localmente l'inferenza di ML.  
Il valore valido può essere qualsiasi combinazione di `mxnet``tensorflow`,`dlr`, e `no` (ad esempio`mxnet`,`mxnet,tensorflow`,`mxnet,tensorflow,dlr`, o`no`).  
`mlLambdaContainerizationMode`  
Verifica che il dispositivo soddisfi tutte le dipendenze tecniche richieste per eseguire l'inferenza ML in modalità contenitore su un dispositivo Greengrass.  
Il valore valido è`container`, o. `process` `both`  
`processor`  
Verifica che il dispositivo soddisfi tutti i requisiti hardware per il tipo di processore specificato.  
Il valore valido è `cpu` o`gpu`.
Se non desideri utilizzare la funzionalità`container`,`docker`, `streamManager``hsi`, o, puoi impostare la `ml` funzione corrispondente `value` a`no`.  
Docker supporta solo la qualificazione delle funzionalità per `streamManagement` e. `ml`

`machineLearning`  
Opzionale. Informazioni di configurazione per i test di qualificazione ML. Per ulteriori informazioni, consulta [Configurare device.json per la qualificazione ML](#device-json-ml-qualification).

`hsm`  
Opzionale. Informazioni di configurazione per i test con un AWS IoT Greengrass Hardware Security Module (HSM). Altrimenti, la proprietà `hsm` dovrebbe essere omessa. Per ulteriori informazioni, consulta [Integrazione della sicurezza hardware](hardware-security.md).  
<a name="connectivity-protocol-ssh-only"></a>Questa proprietà si applica solo se `connectivity.protocol` è impostata su `ssh`.    
`hsm.p11Provider`  
Il percorso assoluto della libreria libdl-loadable dell'implementazione PKCS\$111.  
`hsm.slotLabel`  
L'etichetta dello slot utilizzata per identificare il modulo hardware.  
`hsm.slotUserPin`  
Il PIN utente utilizzato per autenticare il AWS IoT Greengrass core del modulo.  
`hsm.privateKeyLabel`  
L'etichetta utilizzata per identificare la chiave nel modulo hardware.  
`hsm.openSSLEngine`  
Il percorso assoluto del file `.so` del motore OpenSSL che consente di abilitare il supporto PKCS\$111 su OpenSSL. Utilizzato dall'agente di aggiornamento AWS IoT Greengrass OTA.

`devices.id`  
Un identificativo univoco definito dall'utente del dispositivo sottoposto a test.

`connectivity.protocol`  
Il protocollo di comunicazione utilizzato per comunicare con questo dispositivo. Attualmente, gli unici valori supportati sono `ssh` per i dispositivi fisici e `docker` per i contenitori Docker.

`connectivity.ip`  
L'indirizzo IP del dispositivo sottoposto a test.  
<a name="connectivity-protocol-ssh-only"></a>Questa proprietà si applica solo se `connectivity.protocol` è impostata su `ssh`.

`connectivity.containerId`  
L'ID contenitore o il nome del contenitore Docker in fase di test.  
<a name="connectivity-protocol-docker-only"></a>Questa proprietà si applica solo se `connectivity.protocol` è impostata su `docker`.

`connectivity.auth`  
Informazioni di autenticazione per la connessione.  
<a name="connectivity-protocol-ssh-only"></a>Questa proprietà si applica solo se `connectivity.protocol` è impostata su `ssh`.    
`connectivity.auth.method`  
Il metodo di autorizzazione utilizzato per accedere a un dispositivo con un determinato protocollo di connettività.  
I valori supportati sono:  
+ `pki`
+ `password`  
`connectivity.auth.credentials`  
Le credenziali utilizzate per l'autenticazione.    
`connectivity.auth.credentials.password`  
La password utilizzata per l'accesso al dispositivo da testare.  
Questo valore si applica solo se `connectivity.auth.method` è impostato su `password`.  
`connectivity.auth.credentials.privKeyPath`  
Il percorso completo alla chiave privata utilizzata per accedere al dispositivo sottoposto a test.  
Questo valore si applica solo se `connectivity.auth.method` è impostato su `pki`.  
`connectivity.auth.credentials.user`  
Il nome utente per l'accesso al dispositivo sottoposto a test.  
`connectivity.auth.credentials.privKeyPath`  
Il percorso completo della chiave privata utilizzata per accedere al dispositivo sottoposto a test.

`connectivity.port`  
Opzionale. Il numero di porta da utilizzare per le connessioni SSH.  
Il valore predefinito è 22.  
Questa proprietà si applica solo se `connectivity.protocol` è impostata su`ssh`.

`greengrassLocation`  
La posizione del software AWS IoT Greengrass Core sui tuoi dispositivi.  
Per i dispositivi fisici, questo valore viene utilizzato solo quando si utilizza un'installazione esistente di AWS IoT Greengrass. Utilizza questo attributo per comunicare a IDT di utilizzare la versione del software AWS IoT Greengrass Core installata sui dispositivi.  
Quando esegui test in un contenitore Docker dall'immagine Docker o dal Dockerfile fornito da AWS IoT Greengrass, imposta questo valore su. `/greengrass`

`kernelConfigLocation`  
Opzionale. Il percorso del file di configurazione del kernel. AWS IoT Device Tester utilizza questo file per verificare se i dispositivi hanno le funzionalità del kernel richieste abilitate. Se non specificato, IDT utilizza i seguenti percorsi per cercare il file di configurazione del kernel: and. `/proc/config.gz` `/boot/config-<kernel-version>` AWS IoT Device Tester utilizza il primo percorso che trova.

## Configurare device.json per la qualificazione ML
<a name="device-json-ml-qualification"></a>

In questa sezione vengono descritte le proprietà facoltative nel file di configurazione del dispositivo che si applicano alla qualificazione ML. Se si prevede di eseguire test per la qualificazione ML, è necessario definire le proprietà applicabili al caso d'uso.

È possibile utilizzare il modello `device-ml.json` per definire le impostazioni di configurazione per il dispositivo. Questo modello contiene le proprietà ML facoltative. È inoltre possibile utilizzare `device.json` e aggiungere le proprietà di qualificazione ML. Questi file si trovano in `<device-tester-extract-location>/configs` e comprendono le proprietà di qualificazione ML. Se si utilizza `device-ml.json`, è necessario rinominare il file in `device.json` prima di eseguire test IDT.

Per informazioni sulle proprietà di configurazione del dispositivo che non si applicano alla qualificazione ML, vedere [Configura dispositivo.json](#device-config).

 

`ml` nell'array `features`  
I framework ML supportati dalla tua scheda. <a name="idt-version-ml-qualification"></a>Questa proprietà richiede IDT v3.1.0 o versione successiva.  
+ Se la scheda supporta un solo framework, specificare il framework. Esempio:

  ```
  {
      "name": "ml",
      "value": "mxnet"
  }
  ```
+ Se la scheda supporta più framework, specificare i framework come elenco separato da virgole. Esempio:

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

`mlLambdaContainerizationMode` nell'array `features`  
La [modalità di containerizzazione](lambda-group-config.md#lambda-containerization-considerations) con cui si desidera eseguire il test. <a name="idt-version-ml-qualification"></a>Questa proprietà richiede IDT v3.1.0 o versione successiva.  
+ Scegli `process` di eseguire il codice di inferenza ML con una funzione Lambda non containerizzata. Questa opzione richiede la versione 1.10.x o successiva. AWS IoT Greengrass 
+ Scegli `container` di eseguire il codice di inferenza ML con una funzione Lambda containerizzata.
+ Scegliere `both` per eseguire il codice di inferenza di ML con entrambe le modalità. Questa opzione richiede AWS IoT Greengrass la versione 1.10.x o successiva.

`processor` nell'array `features`  
Indica l'acceleratore hardware supportato dalla scheda. <a name="idt-version-ml-qualification"></a>Questa proprietà richiede IDT v3.1.0 o versione successiva.  
+ Scegliere `cpu` se la tua scheda utilizza una CPU come processore.
+ Scegliere `gpu` se la scheda utilizza una GPU come processore.

`machineLearning`  
Opzionale. Informazioni di configurazione per i test di qualificazione ML. <a name="idt-version-ml-qualification"></a>Questa proprietà richiede IDT v3.1.0 o versione successiva.    
`dlrModelPath`  
Necessario per utilizzare il framework `dlr`. Il percorso assoluto della directory del modello compilato DLR, che deve essere denominato `resnet18`. Per ulteriori informazioni, consulta [Compilare il modello DLR](idt-ml-qualification.md#ml-qualification-dlr-compile-model).  
Di seguito è riportato un esempio di percorso su macOS: `/Users/<user>/Downloads/resnet18`.  
`environmentVariables`  
Un array di coppie chiave-valore che possono passare dinamicamente le impostazioni ai test di inferenza di ML. Facoltativo per i dispositivi CPU. È possibile utilizzare questa sezione per aggiungere variabili di ambiente specifiche del framework richieste dal tipo di dispositivo. Per informazioni su questi requisiti, vedere il sito Web ufficiale del framework o del dispositivo. Ad esempio, per eseguire test di MXNet inferenza su alcuni dispositivi, potrebbero essere necessarie le seguenti variabili di ambiente.  

```
"environmentVariables": [
    ...
    {
        "key": "PYTHONPATH",      
        "value": "$MXNET_HOME/python:$PYTHONPATH"    
    },
    {
        "key": "MXNET_HOME",
        "value": "$HOME/mxnet/"
    },
    ...
]
```
Il `value` campo potrebbe variare in base all' MXNet installazione.
Se stai testando funzioni Lambda eseguite con [containerizzazione](lambda-group-config.md#lambda-containerization-considerations) su dispositivi GPU, aggiungi le variabili di ambiente per la libreria GPU. Ciò consente alla GPU di eseguire calcoli. Per utilizzare librerie GPU diverse, vedere la documentazione ufficiale della libreria o del dispositivo.  
Configurare le seguenti chiavi se la funzione `mlLambdaContainerizationMode` è impostata su `container` o `both`.

```
"environmentVariables": [
    {
        "key": "PATH",      
        "value": "<path/to/software/bin>:$PATH"    
    },
    {
        "key": "LD_LIBRARY_PATH",      
        "value": "<path/to/ld/lib>"    
    },
    ...
]
```  
`deviceResources`  
Richiesto dai dispositivi GPU. Contiene [risorse locali](access-local-resources.md#lra-resource-types) a cui è possibile accedere tramite le funzioni Lambda. Utilizzare questa sezione per aggiungere risorse locali per dispositivi e volumi.  
+ Specificare `"type": "device"` per le risorse del dispositivo. Per i dispositivi GPU, le risorse del dispositivo devono essere file di dispositivo relativi alla GPU sotto `/dev`.
**Nota**  
La directory `/dev/shm` è un'eccezione. Può essere configurato esclusivamente come risorsa di volume.
+ Specificare `"type": "volume"` per le risorse di volume.