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 de IDT para ejecutar el conjunto de cualificación de AWS IoT Greengrass
Antes de ejecutar las pruebas, debe ajustar la configuración de las credenciales de AWS y los dispositivos en su equipo host.
Configuración de sus credenciales de AWS
Debe configurar sus credenciales de usuario de IAM en el archivo
. Utilice las credenciales de IDT para el usuario de AWS IoT Greengrass creado en Cree y configure un Cuenta de AWS. Puede especificar sus credenciales de una de las dos formas siguientes:<device-tester-extract-location>
/configs/config.json
-
Archivo de credenciales
-
Variables de entorno
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
Añada sus credenciales de AWS al archivo de credentials
con el siguiente formato:
[default] aws_access_key_id =
<your_access_key_id>
aws_secret_access_key =<your_secret_access_key>
Para configurar IDT para AWS IoT Greengrass con el fin de usar las credenciales de AWS desde su archivo de credentials
, edite su archivo config.json
tal y como se indica a continuación:
{ "awsRegion": "us-west-2", "auth": { "method": "file", "credentials": { "profile": "default" } } }
nota
Si no utiliza el perfil default
de AWS asegúrese de cambiar el nombre de perfil en su archivo config.json
. Para obtener más información, consulte Perfiles con nombre.
Las variables de entorno son las variables que mantiene el sistema operativo y utilizan los comandos del sistema. No se guardan si cierra la sesión de SSH. IDT para AWS IoT Greengrass puede utilizar las variables de entorno AWS_ACCESS_KEY_ID
y AWS_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 IDT para utilizar las variables de entorno, edite la sección auth
de su archivo config.json
. A continuación se muestra un ejemplo:
{ "awsRegion": "us-west-2", "auth": { "method": "environment" } }
Configurar device.json
Además de las credenciales de AWS, IDT para AWS IoT Greengrass requiere información acerca de los dispositivos en los que se ejecutan pruebas (por ejemplo, dirección IP, información de inicio de sesión, sistema operativo y arquitectura de CPU).
Debe proporcionar esta información utilizando la plantilla device.json
ubicada en
:
<device_tester_extract_location>
/configs/device.json
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 placas cualificadas.
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
-
Una matriz que contenga las características compatibles del dispositivo. Todas las características son obligatorias.
os
yarch
-
Combinaciones de sistemas operativos (SO) compatibles:
-
linux
,x86_64
-
linux
,armv6l
-
linux
,armv7l
-
linux
,aarch64
-
ubuntu
,x86_64
-
openwrt
,armv7l
-
openwrt
,aarch64
nota
Si usa IDT para probar la ejecución de AWS IoT Greengrass en un contenedor de Docker, solo se admite la arquitectura Docker x86_64.
-
container
-
Valida que el dispositivo cumple todos los requisitos de software y hardware para ejecutar funciones de Lambda en modo contenedor en un núcleo de Greengrass.
El valor válido es
yes
ono
. docker
-
Valida que el dispositivo cumple todas las dependencias técnicas necesarias para utilizar el conector de implementación de aplicaciones de Greengrass Docker para ejecutar contenedores.
El valor válido es
yes
ono
. streamManagement
-
Valida que el dispositivo cumple todas las dependencias técnicas necesarias para ejecutar el administrador de transmisiones de AWS IoT Greengrass.
El valor válido es
yes
ono
. hsi
-
Verifica que la biblioteca compartida de HSI proporcionada pueda interactuar con el módulo de seguridad de hardware (HSM) y se implementan correctamente las API de PKCS#11 necesarias. La biblioteca HSM y compartida debe poder firmar una CSR, realizar las operaciones de TLS y proporcionar las longitudes de clave y el algoritmo de clave pública correctos.
El valor válido es
yes
ono
. ml
-
Valida que el dispositivo cumpla todas las dependencias técnicas necesarias para realizar la inferencia de ML localmente.
El valor válido puede ser cualquier combinación de
mxnet
,tensorflow
,dlr
yno
(por ejemplo,mxnet
,mxnet,tensorflow
,mxnet,tensorflow,dlr
ono
). mlLambdaContainerizationMode
-
Valida que el dispositivo cumple todas las dependencias técnicas necesarias para realizar la inferencia ML en modo contenedor en un dispositivo Greengrass.
El valor válido es
container
,process
oboth
. processor
-
Valida que el dispositivo cumpla con todos los requisitos de hardware del tipo de procesador especificado.
El valor válido es
cpu
ogpu
.
nota
Si no quiere utilizar la característica
container
,docker
,streamManager
,hsi
oml
, puede establecer el valor correspondientevalue
ano
.Docker solo admite la calificación de características para
streamManagement
yml
. machineLearning
-
Opcional. Información de configuración para pruebas de cualificación ML. Para obtener más información, consulte Configurar device.json para cualificación de ML.
hsm
-
Opcional. Contiene información de configuración para realizar pruebas con un módulo de seguridad de hardware (HSM) de AWS IoT Greengrass. De lo contrario, la propiedad
hsm
debe omitirse. Para obtener más información, consulte Integración de la seguridad de hardware.Esta propiedad solo se aplica si
connectivity.protocol
está establecido enssh
.hsm.p11Provider
-
La ruta absoluta a la biblioteca que puede cargar libdl de la implementación de PKCS#11.
hsm.slotLabel
-
La etiqueta de ranura que se utiliza para identificar el módulo de hardware.
hsm.slotUserPin
-
El PIN de usuario que se utiliza para autenticar el núcleo AWS IoT Greengrass en el módulo.
hsm.privateKeyLabel
-
Es la etiqueta que se utiliza para identificar la clave en el módulo de hardware.
hsm.openSSLEngine
-
La ruta absoluta al archivo
.so
del motor de OpenSSL que habilita la compatibilidad con PKCS#11 en OpenSSL. La utiliza el agente de actualización OTA de AWS IoT Greengrass.
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. Actualmente, los únicos valores que se admiten son
ssh
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.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.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.auth.credentials.privKeyPath
-
La ruta completa a la clave privada que se utiliza para iniciar sesión en el dispositivo que se está probando.
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
. greengrassLocation
-
La ubicación del software AWS IoT Greengrass Core en sus dispositivos.
En los dispositivos físicos, este valor solo se utiliza cuando se utiliza una instalación existente de AWS IoT Greengrass. Utilice este atributo para indicar a IDT que utilice la versión del software AWS IoT Greengrass Core instalado en sus dispositivos.
Al ejecutar pruebas en un contenedor de Docker a partir de una imagen de Docker o un Dockerfile proporcionado por AWS IoT Greengrass, establezca este valor en
/greengrass
. kernelConfigLocation
-
Opcional. La ruta al archivo de configuración del kernel. AWS IoT Device Tester utiliza este archivo para comprobar si los dispositivos tienen habilitadas las características de kernel requeridas. Si no se especifica, IDT utiliza las siguientes rutas para buscar el archivo de configuración de kernel:
/proc/config.gz
y/boot/config-
. AWS IoT Device Tester utiliza la primera ruta que encuentra.<kernel-version>
Configurar device.json para cualificación de ML
En esta sección se describen las propiedades opcionales del archivo de configuración del dispositivo que se aplican a la cualificación de ML. Si tiene previsto ejecutar pruebas para la cualificación de ML, debe definir las propiedades que se aplican a su caso de uso.
Puede utilizar la plantilla device-ml.json
para definir los ajustes de configuración del dispositivo. Esta plantilla contiene las propiedades de ML opcionales. También puede usar device.json
y agregar las propiedades de cualificación de ML. Estos archivos se encuentran en
e incluyen propiedades de cualificación de ML. Si utiliza <device-tester-extract-location>
/configsdevice-ml.json
, debe cambiar el nombre del archivo a device.json
antes de ejecutar pruebas de IDT.
Para obtener información acerca de las propiedades de configuración de dispositivos que no se aplican a la cualificación de ML, consulte Configurar device.json.
ml
en la matrizfeatures
-
Los marcos de ML que admite la placa. Esta propiedad requiere IDT v3.1.0 o una versión posterior.
-
Si la placa solo admite un marco, especifíquelo. Por ejemplo:
{ "name": "ml", "value": "mxnet" }
-
Si la placa admite varios marcos, especifique los marcos como lista separada por comas. Por ejemplo:
{ "name": "ml", "value": "mxnet,tensorflow" }
-
mlLambdaContainerizationMode
en la matrizfeatures
-
El modo de creación de contenedores con el que desea probar. Esta propiedad requiere IDT v3.1.0 o una versión posterior.
-
Elija
process
para ejecutar el código de inferencia de ML con una función de Lambda no en contenedor. Esta opción requiere AWS IoT Greengrass v1.10.x o posterior. -
Elija
container
para ejecutar el código de inferencia ML con una función de Lambda en contenedor. -
Elija
both
para ejecutar el código de inferencia ML con ambos modos. Esta opción requiere AWS IoT Greengrass v1.10.x o posterior.
-
processor
en la matrizfeatures
-
Indica el acelerador de hardware compatible con la placa. Esta propiedad requiere IDT v3.1.0 o una versión posterior.
-
Elija
cpu
si la placa utiliza una CPU como procesador. -
Elija
gpu
si la placa utiliza una GPU como procesador.
-
machineLearning
-
Opcional. Información de configuración para pruebas de cualificación ML. Esta propiedad requiere IDT v3.1.0 o una versión posterior.
dlrModelPath
-
Necesario para usar el marco
dlr
. La ruta absoluta al directorio de modelo compilado DLR, que debe haberse denominadoresnet18
. Para obtener más información, consulte Compilar el modelo DLR.nota
A continuación, se muestra una ruta de ejemplo en macOS:
/Users/
.<user>
/Downloads/resnet18 environmentVariables
-
Una matriz de pares clave-valor que puede pasar dinámicamente la configuración a las pruebas de inferencia de ML. Opcional para dispositivos de CPU. Puede usar esta sección para agregar variables de entorno específicas del marco requeridas por el tipo de dispositivo. Para obtener información sobre estos requisitos, consulte el sitio web oficial del marco o el dispositivo. Por ejemplo, para ejecutar pruebas de inferencia de MXNet en algunos dispositivos, pueden ser necesarias las siguientes variables de entorno.
"environmentVariables": [ ... { "key": "PYTHONPATH", "value": "$MXNET_HOME/python:$PYTHONPATH" }, { "key": "MXNET_HOME", "value": "$HOME/mxnet/" }, ... ]
nota
El campo
value
puede variar en función de la instalación de MXNet.Si está probando funciones de Lambda que se ejecutan con creación de contenedores en dispositivos GPU, agregue variables de entorno para la biblioteca de GPU. Esto permite que la GPU realice cálculos. Para utilizar diferentes bibliotecas de GPU, consulte la documentación oficial de la biblioteca o dispositivo.
nota
Configure las siguientes claves si la característica
mlLambdaContainerizationMode
está establecida encontainer
oboth
."environmentVariables": [ { "key": "PATH", "value": "
<path/to/software/bin>
:$PATH" }, { "key": "LD_LIBRARY_PATH", "value": "<path/to/ld/lib>
" }, ... ] deviceResources
-
Requerido por los dispositivos de GPU. Contiene recursos locales a los que se puede acceder mediante funciones de Lambda. Utilice esta sección para agregar recursos de volumen y dispositivos locales.
-
Para recursos de dispositivo, especifique
"type": "device"
. Para los dispositivos GPU, los recursos del dispositivo deben ser archivos de dispositivo relacionados con la GPU bajo/dev
.nota
El directorio
/dev/shm
es una excepción. Se puede configurar solo como un recurso de volumen. -
Para recursos de volumen, especifique
"type": "volume"
.
-