AWS IoT Greengrass Version 1 entró en la fase de vida útil prolongada el 30 de junio de 2023. Para obtener más información, consulte la política de mantenimiento de AWS IoT Greengrass V1 Después de esta fecha, AWS IoT Greengrass V1 no se publicarán actualizaciones que proporcionen funciones, mejoras, correcciones de errores o parches de seguridad. Los dispositivos que se ejecuten AWS IoT Greengrass V1 no se verán afectados y seguirán funcionando y conectándose a la nube. Le recomendamos encarecidamente que migre a AWS IoT Greengrass Version 2, ya que añade importantes funciones nuevas y es compatible con plataformas adicionales.
Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Configure los ajustes para los ejecutores de pruebas
Para ejecutar conjuntos de pruebas personalizados, los ejecutores de pruebas deben configurar sus ajustes en función del conjunto de pruebas que desean ejecutar. Los ajustes se especifican en función de las plantillas del archivo de configuración JSON que se encuentran en la carpeta
. Si es necesario, los ejecutores de las pruebas también deben configurar las credenciales de AWS que IDT utilizará para conectarse a la nube AWS. <device-tester-extract-location>
/configs/
Como redactor de pruebas, necesitará configurar estos archivos para depurar su conjunto de pruebas. Debe proporcionar instrucciones a los ejecutores de pruebas para que puedan configurar los siguientes ajustes según sea necesario para ejecutar sus conjuntos de pruebas.
Configurar device.json
El archivo device.json
contiene información sobre los dispositivos en los que se ejecutan las pruebas (por ejemplo, dirección IP, información de acceso, sistema operativo y arquitectura de la CPU).
Los ejecutores de pruebas pueden proporcionar esta información mediante el siguiente archivo device.json
de plantilla que se encuentra en la carpeta
.<device-tester-extract-location>
/configs/
[ { "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>
", } } ] } ]
Todos los campos que contienen valores son obligatorios tal y como se describe aquí:
id
-
Un ID alfanumérico definido por el usuario que identifica de forma única una colección de dispositivos que se conoce como grupo de dispositivos. Los dispositivos que pertenecen a un grupo deben tener idéntico hardware. Al ejecutar un conjunto de pruebas, los dispositivos del grupo se utilizan para paralelizar la carga de trabajo. Se utilizan varios dispositivos para ejecutar diferentes pruebas.
sku
-
Un valor alfanumérico que identifica de forma única el dispositivo a prueba. El SKU se utiliza para realizar un seguimiento de los dispositivos cualificados.
nota
Si desea enumerar la placa en el catálogo de dispositivos de AWS Partner, el SKU que especifique aquí debe coincidir con el SKU que utilice en el proceso de publicación.
features
-
Opcional. Una matriz que contenga las características compatibles del dispositivo. Las características del dispositivo son valores definidos por el usuario que se configuran en el conjunto de pruebas. Debe proporcionar a los participantes en las pruebas información sobre los nombres y valores de las características que desee incluir en el archivo
device.json
. Por ejemplo, si quiere probar un dispositivo que funciona como servidor MQTT para otros dispositivos, puede configurar la lógica de prueba para validar los niveles admitidos específicos para una característica denominadaMQTT_QOS
. Los ejecutores de pruebas proporcionan el nombre de esta característica y establecen el valor de la función en los niveles de QOS compatibles con su dispositivo. Puede recuperar la información proporcionada desde el contexto IDT con la consultadevicePool.features
, o desde el contexto máquina de estado con la consultapool.features
.features.name
-
El nombre de la característica.
features.value
-
Los valores de las características compatibles.
features.configs
-
Los ajustes de configuración de la característica, si son necesarios.
features.config.name
-
El nombre del ajuste de configuración.
features.config.value
-
Los valores de configuración admitidos.
devices
-
Un conjunto de dispositivos en el grupo a probar. Se requiere al menos un dispositivo.
devices.id
-
Un identificador único y definido por el usuario para el dispositivo que se está probando.
connectivity.protocol
-
El protocolo de comunicación que se usará para la comunicación con este dispositivo. Cada dispositivo de un grupo debe usar el mismo protocolo.
Actualmente, los únicos valores que se admiten son
ssh
yuart
para dispositivos físicos, ydocker
para contenedores de Docker. connectivity.ip
-
La dirección IP del dispositivo que se está probando.
Esta propiedad solo se aplica si
connectivity.protocol
está establecido enssh
. connectivity.port
-
Opcional. El número de puerto a utilizar para las conexiones SSH.
El valor predeterminado es 22.
Esta propiedad solo se aplica si
connectivity.protocol
está establecido enssh
. connectivity.auth
-
Información de autenticación para la conexión.
Esta propiedad solo se aplica si
connectivity.protocol
está establecido enssh
.connectivity.auth.method
-
El método de autenticación que se utiliza para acceder a un dispositivo a través de un determinado protocolo de conectividad.
Los valores admitidos son:
-
pki
-
password
-
connectivity.auth.credentials
-
Las credenciales que se utilizan para la autenticación.
connectivity.auth.credentials.password
-
La contraseña se utiliza para iniciar sesión en el dispositivo que se va a probar.
Este valor solo se aplica si
connectivity.auth.method
está establecido enpassword
. connectivity.auth.credentials.privKeyPath
-
La ruta completa a la clave privada que se utiliza para iniciar sesión en el dispositivo que se está probando.
Este valor solo se aplica si
connectivity.auth.method
está establecido enpki
. connectivity.auth.credentials.user
-
El nombre de usuario para iniciar sesión en el dispositivo que se está probando.
connectivity.serialPort
-
Opcional. El puerto serie al que está conectado el dispositivo.
Esta propiedad solo se aplica si
connectivity.protocol
está establecido enuart
. connectivity.containerId
-
El ID de contenedor o el nombre del contenedor de Docker que se está probando.
Esta propiedad solo se aplica si
connectivity.protocol
está establecido endocker
. connectivity.containerUser
-
Opcional. El nombre del usuario a utilizar dentro del contenedor. El valor predeterminado es el usuario proporcionado en el Dockerfile.
El valor predeterminado es 22.
Esta propiedad solo se aplica si
connectivity.protocol
está establecido endocker
.
nota
Para comprobar si los ejecutores de las pruebas configuran una conexión de dispositivo incorrecta para una prueba, puede recupera
pool.Devices[0].Connectivity.Protocol
del contexto de la máquina de estados y realizar una comparación con el valor esperado en un estadoChoice
. Si se utiliza un protocolo incorrecto, imprima un mensaje con el estadoLogMessage
y haga la transición al estadoFail
.Como alternativa, puede utilizar un código de gestión de errores para informar de un fallo en la prueba si el tipo de dispositivo es incorrecto.
(Opcional) Configuración de userdata.json
El archivo userdata.json
contiene cualquier información adicional que requiera un conjunto de pruebas, pero que no esté especificada en el archivo device.json
. El formato de este archivo depende del userdata_scheme.jsonarchivo definido en el conjunto de pruebas. Si es un redactor de pruebas, asegúrese de proporcionar esta información a los usuarios que ejecutarán los conjuntos de pruebas que escriba.
(Opcional) Configuración de resource.json
El archivo resource.json
contiene información sobre los dispositivos que se utilizarán como dispositivos de recursos. Los dispositivos de recursos son dispositivos que se requieren para probar ciertas capacidades de un dispositivo que se está probando. Por ejemplo, para probar la capacidad Bluetooth de un dispositivo, puedes usar un dispositivo de recursos para comprobar si el dispositivo se puede conectar correctamente a él. Los dispositivos de recursos son opcionales y puede necesitar tantos dispositivos de recursos como necesite. Como redactor de pruebas, utiliza el archivo test.json para definir las funciones del dispositivo de recursos que se requieren para una prueba. A continuación, los ejecutores de pruebas utilizan el archivo resource.json
para proporcionar un conjunto de dispositivos de recursos que tengan las funciones necesarias. Asegúrese de proporcionar esta información a los usuarios que vayan a ejecutar los conjuntos de pruebas que escriba.
Los ejecutores de pruebas pueden proporcionar esta información mediante el siguiente archivo resource.json
de plantilla que se encuentra en la carpeta
.<device-tester-extract-location>
/configs/
[ { "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>
", } } ] } ]
Todos los campos que contienen valores son obligatorios tal y como se describe aquí:
id
-
Un ID alfanumérico definido por el usuario que identifica de forma única una colección de dispositivos que se conoce como grupo de dispositivos. Los dispositivos que pertenecen a un grupo deben tener idéntico hardware. Al ejecutar un conjunto de pruebas, los dispositivos del grupo se utilizan para paralelizar la carga de trabajo. Se utilizan varios dispositivos para ejecutar diferentes pruebas.
features
-
Opcional. Una matriz que contenga las características compatibles del dispositivo. La información requerida en este campo se define en los archivos test.json del conjunto de pruebas y determina qué pruebas se van a ejecutar y cómo se van a ejecutar. Si el conjunto de pruebas no requiere ninguna característica, este campo no es obligatorio.
features.name
-
El nombre de la característica.
features.version
-
La versión de la característica.
features.jobSlots
-
Configuración para indicar cuántas pruebas pueden utilizar el dispositivo simultáneamente. El valor predeterminado es
1
.
devices
-
Un conjunto de dispositivos en el grupo a probar. Se requiere al menos un dispositivo.
devices.id
-
Un identificador único y definido por el usuario para el dispositivo que se está probando.
connectivity.protocol
-
El protocolo de comunicación que se usará para la comunicación con este dispositivo. Cada dispositivo de un grupo debe usar el mismo protocolo.
Actualmente, los únicos valores que se admiten son
ssh
yuart
para dispositivos físicos, ydocker
para contenedores de Docker. connectivity.ip
-
La dirección IP del dispositivo que se está probando.
Esta propiedad solo se aplica si
connectivity.protocol
está establecido enssh
. connectivity.port
-
Opcional. El número de puerto a utilizar para las conexiones SSH.
El valor predeterminado es 22.
Esta propiedad solo se aplica si
connectivity.protocol
está establecido enssh
. connectivity.auth
-
Información de autenticación para la conexión.
Esta propiedad solo se aplica si
connectivity.protocol
está establecido enssh
.connectivity.auth.method
-
El método de autenticación que se utiliza para acceder a un dispositivo a través de un determinado protocolo de conectividad.
Los valores admitidos son:
-
pki
-
password
-
connectivity.auth.credentials
-
Las credenciales que se utilizan para la autenticación.
connectivity.auth.credentials.password
-
La contraseña se utiliza para iniciar sesión en el dispositivo que se va a probar.
Este valor solo se aplica si
connectivity.auth.method
está establecido enpassword
. connectivity.auth.credentials.privKeyPath
-
La ruta completa a la clave privada que se utiliza para iniciar sesión en el dispositivo que se está probando.
Este valor solo se aplica si
connectivity.auth.method
está establecido enpki
. connectivity.auth.credentials.user
-
El nombre de usuario para iniciar sesión en el dispositivo que se está probando.
connectivity.serialPort
-
Opcional. El puerto serie al que está conectado el dispositivo.
Esta propiedad solo se aplica si
connectivity.protocol
está establecido enuart
. connectivity.containerId
-
El ID de contenedor o el nombre del contenedor de Docker que se está probando.
Esta propiedad solo se aplica si
connectivity.protocol
está establecido endocker
. connectivity.containerUser
-
Opcional. El nombre del usuario a utilizar dentro del contenedor. El valor predeterminado es el usuario proporcionado en el Dockerfile.
El valor predeterminado es 22.
Esta propiedad solo se aplica si
connectivity.protocol
está establecido endocker
.
(Opcional) Configuración de config.json
El archivo config.json
contiene información de configuración para IDT. Por lo general, los ejecutores de pruebas no necesitarán modificar este archivo excepto para proporcionar sus credenciales de usuario de AWS para IDT y, opcionalmente, una región AWS. Si se proporcionan las credenciales de AWS con los permisos necesarios, AWS IoT Device Tester recopila y envía las métricas de uso a AWS. Se trata de una característica opcional y se utiliza para mejorar la funcionalidad de IDT. Para obtener más información, consulte Métricas de uso de IDT.
Los ejecutores de pruebas pueden configurar sus credenciales de AWS de una de las siguientes maneras:
-
Archivo de credenciales
IDT utiliza el mismo archivo de credenciales que la AWS CLI. Para obtener más información, consulte Archivos de configuración y credenciales.
La ubicación del archivo de credenciales varía en función del sistema operativo que utilice:
-
macOS, Linux:
~/.aws/credentials
-
Windows:
C:\Users\
UserName
\.aws\credentials
-
-
Variables de entorno
Las variables de entorno son las variables que mantiene el sistema operativo y utilizan los comandos del sistema. Las variables definidas durante una sesión de SSH no están disponibles una vez cerrada la sesión. IDT pude usar las variables de entorno
AWS_ACCESS_KEY_ID
yAWS_SECRET_ACCESS_KEY
para almacenar sus credenciales de AWS.Para establecer estas variables en Linux, MacOS, o Unix, utilice export:
export AWS_ACCESS_KEY_ID=
<your_access_key_id>
export AWS_SECRET_ACCESS_KEY=<your_secret_access_key>
Para establecer estas variables en Windows, utilice set:
set AWS_ACCESS_KEY_ID=
<your_access_key_id>
set AWS_SECRET_ACCESS_KEY=<your_secret_access_key>
Para configurar las credenciales de AWS para IDT, los ejecutores de pruebas editan la sección auth
del archivo config.json
ubicado en la carpeta
.<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>
" } } } ]
Todos los campos que contienen valores son obligatorios tal y como se describe aquí:
nota
Todas las rutas de este archivo se definen en relación con <device-tester-extract-location>
.
log.location
-
La ruta a la carpeta de registros en
<device-tester-extract-location>
. configFiles.root
-
La ruta a la carpeta que contiene los archivos de configuración.
configFiles.device
-
La ruta del archivo
device.json
. testPath
-
La ruta a la carpeta que contiene los conjuntos de pruebas.
reportPath
-
La ruta a la carpeta que contendrá los resultados de las pruebas después de que IDT ejecute un conjunto de pruebas.
awsRegion
-
Opcional. La región AWS que utilizarán los conjuntos de pruebas. Si no se establece, los conjuntos de pruebas utilizarán la región predeterminada especificada en cada conjunto de pruebas.
auth.method
-
El método que utiliza IDT para recuperar las credenciales de AWS. Los valores admitidos son
file
para recuperar las credenciales de un archivo de credenciales yenvironment
para recuperar las credenciales mediante variables de entorno. auth.credentials.profile
-
El perfil de credenciales que se va a utilizar del archivo de credenciales. Esta propiedad solo se aplica si
auth.method
está establecido enfile
.