Solución de problemas de IDT paraAWS IoT GreengrassV2 - AWS IoT Greengrass

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.

Solución de problemas de IDT paraAWS IoT GreengrassV2

IDT paraAWS IoT GreengrassV2 escribe los errores en varias ubicaciones según el tipo de error. IDT escribe los errores en la consola, los archivos de registro y los informes de las pruebas.

¿Dónde buscar errores

Los errores de alto nivel se muestran en la consola mientras se ejecuta la prueba y, una vez finalizadas todas las pruebas, aparece un resumen de las pruebas fallidas.awsiotdevicetester_report.xmlcontiene un resumen de todos los errores que provocaron el error de una prueba. IDT almacena los archivos de registro de cada ejecución de prueba en un directorio con un UUID para la ejecución de la prueba, que se muestra en la consola durante la ejecución de la prueba.

El directorio de registros de pruebas de IDT es<device-tester-extract-location>/results/<execution-id>/logs/. Este directorio contiene los siguientes archivos que se muestran en la tabla. Esto es útil a efectos de depuración.

Archivos Descripción
test_manager.log

Los registros escritos en la consola mientras se estaba ejecutando la prueba. El resumen de los resultados al final de este archivo incluye una lista de las pruebas que no superaron.

La advertencia y los registros de errores en este archivo pueden proporcionarle información acerca de los errores que se producen.

test-group-id/test-case-id/test-name.log Registros detallados de la prueba específica en un grupo de prueba. En el caso de las pruebas que utilizan componentes de Greengrass, el archivo de registro de casos de prueba se denominagreengrass-test-run.log.
test-group-id/test-case-id/greengrass.log Registros detallados deAWS IoT GreengrassSoftware básico. IDT copia este archivo del dispositivo que se está probando cuando ejecuta las pruebas de instalaciónAWS IoT GreengrassSoftware básico del dispositivo. Para obtener más información sobre los mensajes de este archivo de registro, consulteSolución de problemas AWS IoT Greengrass V2.
test-group-id/test-case-id/component-name.log Registros detallados de los componentes de Greengrass que se implementan durante las pruebas. IDT copia los archivos de registro de los componentes del dispositivo que se está probando cuando ejecuta pruebas en las que se despliegan componentes específicos. El nombre de cada archivo de registro de componentes corresponde al nombre del componente desplegado. Para obtener más información sobre los mensajes de este archivo de registro, consulteSolución de problemas AWS IoT Greengrass V2.

Resolver IDT paraAWS IoT GreengrassErrores V2

Antes de ejecutar IDT paraAWS IoT Greengrass, coloque los archivos de configuración correctos. Si recibe errores de análisis y configuración, lo primero que debe hacer es buscar y utilizar una plantilla de configuración adecuada para su entorno.

Si continúa teniendo problemas, consulte el siguiente proceso de depuración.

Errores de resolución de alias

Al ejecutar conjuntos de pruebas personalizados, es posible que aparezca el siguiente error en la consola y en eltest_manager.log.

Couldn't resolve placeholders: couldn't do a json lookup: index out of range

Este error puede producirse cuando los alias configurados en el orquestador de pruebas de IDT no se resuelven correctamente o si los valores resueltos no están presentes en los archivos de configuración. Para resolver este error, asegúrese de quedevice.jsonyuserdata.json contienen la información correcta requerida para su conjunto de pruebas. Para obtener información sobre la configuración requerida paraAWS IoT Greengrasscalificación, consulteConfigure los ajustes de IDT para ejecutar el conjunto de AWS IoT Greengrass cualificación.

Errores de conflicto

Es posible que aparezca el siguiente error al ejecutar elAWS IoT Greengrassconjunto de cualificaciones simultáneamente en más de un dispositivo.

ConflictException: Component [com.example.IDTHelloWorld : 1.0.0] for account [account-id] already exists with state: [DEPLOYABLE] { RespMetadata: { StatusCode: 409, RequestID: “id” }, Message_: “Component [com.example.IDTHelloWorld : 1.0.0] for account [account-id] already exists with state: [DEPLOYABLE]” }

La ejecución simultánea de pruebas aún no es compatible con elAWS IoT Greengrasssuite de calificación. Ejecute el conjunto de calificaciones de forma secuencial para cada dispositivo.

Error por la imposibilidad de iniciar una prueba

Es posible que encuentres errores que apunten a fallos que se produjeron cuando la prueba intentaba comenzar. Existen varias causas posibles, por lo que debe hacer lo siguiente:

  • Asegúrese de que el nombre del grupo que aparece en el comando de ejecución realmente existe. IDT hace referencia al nombre del grupo directamente desde sudevice.jsonarchivo.

  • Asegúrese de que el dispositivo o dispositivos del grupo tienen parámetros de configuración correctos.

La imagen de calificación de Docker contiene errores

Las pruebas de calificación del administrador de aplicaciones de Docker utilizan elamazon/amazon-ec2-metadata-mockimagen del contenedor en Amazon ECR para calificar el dispositivo sometido a prueba.

Es posible que reciba el siguiente error si la imagen ya está presente en un contenedor Docker del dispositivo que se está probando.

The Docker image amazon/amazon-ec2-metadata-mock:version already exists on the device.

Si anteriormente descargó esta imagen y ejecutó elamazon/amazon-ec2-metadata-mockcontenedor de su dispositivo, asegúrese de eliminar esta imagen del dispositivo que se está probando antes de realizar las pruebas de calificación.

No se pudo leer la credencial

Al probar dispositivos Windows, es posible que encuentre elFailed to read credentialerror en elgreengrass.logarchivo si el usuario que utiliza para conectarse al dispositivo que se está probando no está configurado en el administrador de credenciales de ese dispositivo.

Para resolver este error, configure el usuario y la contraseña del usuario IDT en el administrador de credenciales del dispositivo que se está probando.

Para obtener más información, consulte Configura las credenciales de usuario para los dispositivos Windows.

Controle los errores con PreInstalled Greengrass

Mientras ejecutas IDT con PreInstalled Greengrass, si encuentra un error deGuiceoErrorInCustomProvider, compruebe si el archivouserdata.jsontiene elInstalledDirRootOnDeviceestablecido en la carpeta de instalación de Greengrass. IDT busca el archivoeffectiveConfig.yamldebajo de<InstallationDirRootOnDevice>/config/effectiveConfig.yaml.

Para obtener más información, consulte Configura las credenciales de usuario para los dispositivos Windows.

Excepción de firma no válida

Al ejecutar las pruebas de calificación de Lambda, es posible que encuentre elinvalidsignatureexceptionerror si su máquina host IDT tiene problemas de acceso a la red. Reinicie el router y vuelva a ejecutar las pruebas.

Errores de calificación del aprendizaje automático

Al ejecutar pruebas de calificación de aprendizaje automático (ML), es posible que se produzcan errores de calificación si el dispositivo no cumple con los requisitosrequerimientospara desplegar elAWS-componentes de aprendizaje automático proporcionados. Para solucionar los errores de calificación del aprendizaje automático, haga lo siguiente:

  • Busque los detalles de los errores en los registros de los componentes que se implementaron durante la ejecución de la prueba. Los registros de los componentes se encuentran en<device-tester-extract-location>/results/<execution-id>/logs/<test-group-id>directorio.

  • Añada el-Dgg.persist=installed.softwareargumento altest.jsonarchivo para el caso de prueba fallido. Eltest.jsonel archivo se encuentra en<device-tester-extract-location>/tests/GGV2Q_version directory.

Implementaciones fallidas de Open Test Framework (OTF)

Si las pruebas de OTF no completan la implementación, una causa probable podrían ser los permisos establecidos para la carpeta principal deTempResourcesDirOnDeviceyInstallationDirRootOnDevice. Para configurar los permisos de esta carpeta correctamente, ejecute el siguiente comando. Sustituyafolder-namepor el nombre de la carpeta principal.

sudo chmod 755 folder-name

Errores de procesamiento

Los errores tipográficos en una configuración de JSON pueden provocar errores de análisis. En la mayoría de los casos, el problema es resultado de omitir un paréntesis, una coma o unas comillas en el archivo JSON. IDT realiza la validación JSON e imprime información de depuración. Imprime la línea en la que se produjo el error, el número de línea y el número de la columna del error de sintaxis. Esta información debería ser suficiente para ayudarte a corregir el error, pero si sigues sin poder localizarlo, puedes realizar la validación manualmente en tu IDE, en un editor de texto como Atom o Sublime, o a través de una herramienta online como JSONlint.

Errores de permiso denegado

IDT realiza operaciones en diversos directorios y archivos en un dispositivo que se está probando. Algunas de estas operaciones requieren acceso raíz. Para automatizar estas operaciones, IDT debe ser capaz de ejecutar comandos con sudo sin escribir una contraseña.

Siga estos pasos para permitir acceso sudo sin escribir una contraseña.

nota

user y username hacen referencia al usuario SSH que utiliza IDT para acceder al dispositivo a prueba.

  1. Use sudo usermod -aG sudo <ssh-username> para añadir el usuario SSH al grupo sudo.

  2. Cierre la sesión y, a continuación, vuelva a iniciar sesión para que los cambios surtan efecto.

  3. Añada el archivo /etc/sudoers y, a continuación, agregue la siguiente línea al final del archivo: <ssh-username> ALL=(ALL) NOPASSWD: ALL

    nota

    Le recomendamos que utilice sudo visudo al editar /etc/sudoers.

Error al generar el informe de calificación

IDT admite las cuatro últimasmajor.minorversiones delAWS IoT Greengrasspaquete de cualificación V2 (GGV2Q) para generar informes de cualificación que puede enviar aAWS Partner Networkpara incluir sus dispositivos en elAWS PartnerCatálogo de dispositivos. Las versiones anteriores del paquete de cualificaciones no generan informes de cualificación.

Si tiene preguntas sobre la política de soporte, póngase en contacto conAWS Support.

Error por ausencia de un parámetro obligatorio

Cuando IDT agrega nuevas funciones, puede introducir cambios en los archivos de configuración. Utilizar un archivo de configuración antiguo podría romper la configuración. Si esto ocurre, el archivo <test_case_id>.log en /results/<execution-id>/logs enumera explícitamente todos los parámetros que faltan. IDT también valida los esquemas de los archivos de configuración JSON para comprobar que está utilizando la última versión compatible.

Excepción de seguridad en macOS

Cuando ejecutas IDT en un ordenador host macOS, se bloquea la ejecución de IDT. Para ejecutar IDT, conceda una excepción de seguridad a los ejecutables que forman parte de la funcionalidad de ejecución de IDT. Cuando aparezca el mensaje de advertencia en el equipo host, haga lo siguiente para cada uno de los ejecutables aplicables:

Para conceder una excepción de seguridad a los ejecutables de IDT

  1. En el ordenador macOS, en el menú Apple, abrePreferencias del sistema.

  2. EligeSeguridad y privacidad, luego en elGeneralpestaña, selecciona el icono de candado para realizar cambios en la configuración de seguridad.

  3. En caso de bloqueodevicetester_mac_x86-64, busca el mensaje"devicetester_mac_x86-64" was blocked from use because it is not from an identified developer.y eligePermitir de todos modos.

  4. Reanude las pruebas de IDT hasta que haya revisado todos los ejecutables involucrados.

Errores de conexión SSH

Cuando IDT no puede conectarse a un dispositivo que se está probando, registra los fallos de conexión/results/<execution-id>/logs/<test-case-id>.log. Los mensajes SSH aparecen en la parte superior de este archivo de registro porque la conexión a un dispositivo que se está probando es una de las primeras operaciones que realiza IDT.

La mayoría de las configuraciones de Windows utilizan la aplicación de terminal PuTTY para conectarse a los hosts Linux. Esta aplicación requiere que convierta los archivos de clave privada PEM estándar a un formato propietario de Windows denominado PPK. Si configura SSH en sudevice.jsonarchivo, utilice archivos PEM. Si usa un archivo PPK, IDT no puede crear una conexión SSH con elAWS IoT Greengrassdispositivo y no puede ejecutar pruebas.

A partir de la versión 4.4.0 de IDT, si no has activado el SFTP en el dispositivo que estás probando, es posible que veas el siguiente error en el archivo de registro.

SSH connection failed with EOF

Para resolver este error, habilita SFTP en tu dispositivo.

Errores de calificación del administrador de transmisiones

Al ejecutar las pruebas de calificación de Stream Manager, es posible que veas el siguiente error en elcom.aws.StreamManagerExport.logarchivo.

Failed to upload data to S3

Este error puede producirse cuando el administrador de transmisiones usa elAWScredenciales en el~/root/.aws/credentialsarchiva en tu dispositivo en lugar de utilizar las credenciales de entorno que IDT exporta al dispositivo que se está probando. Para evitar este problema, elimine elcredentialsarchiva en tu dispositivo y vuelve a ejecutar la prueba de calificación.

Errores de tiempo de espera

Puede aumentar el tiempo de espera de cada prueba especificando un multiplicador de tiempo de espera aplicado al valor predeterminado del tiempo de espera de cada prueba. Cualquier valor configurado para esta marca debe ser superior o igual a 1,0.

Para utilizar el multiplicador de tiempo de espera, utilice la marca --timeout-multiplier al ejecutar las pruebas. Por ejemplo:

./devicetester_linux run-suite --suite-id GGV2Q_1.0.0 --pool-id DevicePool1 --timeout-multiplier 2.5

Para obtener más información, ejecute run-suite --help.

Algunos errores de tiempo de espera se producen cuando los casos de prueba de IDT no se pueden completar debido a problemas de configuración. No puede resolver estos errores aumentando el multiplicador de tiempo de espera. Usa los registros de la ejecución de la prueba para solucionar los problemas de configuración subyacentes.

  • Si los registros de los componentes MQTT o Lambda contienenAccess deniedsi se producen errores, es posible que la carpeta de instalación de Greengrass no tenga los permisos de archivo correctos. Ejecute el siguiente comando para cada carpeta de la ruta de instalación que haya definido en suuserdata.jsonarchivo.

    sudo chmod 755 folder-name
  • Si los registros de Greengrass indican que la implementación de la CLI de Greengrass no está completa, haga lo siguiente:

    • Compruebe quebashestá instalado en el dispositivo que se está probando.

    • Si tuuserdata.jsonel archivo incluye elGreengrassCliVersionparámetro de configuración, elimínelo. Este parámetro está obsoleto en IDT v4.1.0 y versiones posteriores. Para obtener más información, consulte Configure userdata.json.

  • Si la prueba de despliegue de Lambda no ha tenido éxito y aparece el mensaje de error «Validar la publicación de Lambda: se ha agotado el tiempo de espera» y aparece un error en el archivo de registro de la prueba (idt-gg2-lambda-function-idt-<resource-id>.log) que diceError: Could not find or load main class com.amazonaws.greengrass.runtime.LambdaRuntime., haga lo siguiente:

    • Compruebe para qué carpeta se utilizóInstallationDirRootOnDeviceen eluserdata.jsonarchivo.

    • Asegúrese de que los permisos de usuario correctos estén configurados en su dispositivo. Para obtener más información, consultaConfigura los permisos de usuario en tu dispositivo.

Errores de comprobación de versiones

IDT emite el siguiente error cuandoAWSlas credenciales de usuario del usuario de IDT no tienen los permisos de IAM necesarios.

Failed to check version compatibility

ElAWSel usuario que no tiene los permisos de IAM necesarios.