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.
AWS IoT Greengrass proporciona una imagen de Docker y un Dockerfile que facilitan la ejecución del software AWS IoT Greengrass principal en un contenedor de Docker. Tras configurar el AWS IoT Greengrass contenedor, puede ejecutar pruebas de IDT. Actualmente, solo se admiten arquitecturas Docker x86_64 para ejecutar IDT AWS IoT Greengrass.
Esta función requiere IDT v2.3.0 o posterior.
El proceso de configuración del contenedor de Docker para ejecutar las pruebas de IDT depende de si se utiliza la imagen de Docker o el Dockerfile que proporciona. AWS IoT Greengrass
Uso de la imagen de Docker. La imagen de Docker tiene el software principal y las dependencias instalados AWS IoT Greengrass .
Utilice el archivo Dockerfile. El Dockerfile contiene el código fuente que puede usar para crear imágenes de contenedores personalizadas. AWS IoT Greengrass La imagen se puede modificar para ejecutarla en arquitecturas de plataforma distintas o para reducir su tamaño.
nota
AWS IoT Greengrass no proporciona Dockerfiles ni imágenes de Docker para AWS IoT Greengrass la versión 1.11.1 del software principal. Para ejecutar pruebas de IDT en tus propias imágenes de contenedor personalizadas, tu imagen debe incluir las dependencias definidas en el Dockerfile proporcionado por. AWS IoT Greengrass
Las siguientes funciones no están disponibles cuando se ejecuta AWS IoT Greengrass en un contenedor de Docker:
Conectores que se ejecutan en el modo Contenedor de Greengrass. Para ejecutar un conector en un contenedor de Docker, el conector debe ejecutarse en modo Sin contenedor. Para buscar conectores compatibles con el modo Sin contenedor, consulte conectores de Greengrass proporcionados por AWS. Algunos de estos conectores tienen un parámetro de modo de aislamiento que debe establecer en Sin contenedor.
Dispositivos locales y recursos de volumen. Las funciones de Lambda definidas por el usuario que se ejecutan en el contenedor de Docker deben obtener acceso directamente a los dispositivos y volúmenes del dispositivo principal.
Configura la imagen de Docker proporcionada por AWS IoT Greengrass
Siga estos pasos para configurar la imagen de AWS IoT Greengrass Docker para ejecutar las pruebas de IDT.
Requisitos previos
Antes de empezar este tutorial, debe hacer lo siguiente.
-
Debe instalar el software y las versiones siguientes en su ordenador host en función de la versión AWS Command Line Interface (AWS CLI) que elija.
-
Docker
, versión 18.09 o superior. Es posible que las versiones anteriores también funcionen, pero recomendamos la 18.09 o una versión posterior. -
AWS CLI versión 2.0.0 o posterior.
-
Para instalar la AWS CLI versión 2, consulte Instalación de la AWS CLI versión 2.
-
Para configurar el AWS CLI, consulte Configuración del AWS CLI.
nota
Para actualizar a una AWS CLI versión 2 posterior en un equipo con Windows, debe repetir el proceso de instalación de MSI.
-
-
Para acceder a los recursos de Amazon Elastic Container Registry (Amazon ECR), debe conceder el siguiente permiso.
-
Amazon ECR exige que los usuarios concedan el
ecr:GetAuthorizationToken
permiso mediante una política AWS Identity and Access Management (IAM) antes de poder autenticarse en un registro y enviar o extraer imágenes de un repositorio de Amazon ECR. Para obtener más información, consulte los ejemplos de políticas de repositorios de Amazon ECR y el Acceso a un repositorio de Amazon ECR en la Guía del usuario de Amazon Elastic Container Registry.
-
Descargar la imagen de Docker y configurar el contenedor. Puede descargar la imagen preinstalada de Docker Hub
o Amazon Elastic Container Registry(Amazon ECR) y ejecutarla en plataformas de Windows, macOS y Linux (x86_64). Para descargar la imagen de Docker de Amazon ECR, complete todos los pasos de Paso 1: Obtenga la imagen del AWS IoT Greengrass contenedor de Amazon ECR. A continuación, vuelva a este tema para continuar con la configuración.
-
Solo usuarios de Linux: asegúrese de que el usuario que ejecuta IDT tiene permiso para ejecutar comandos Docker. Para obtener más información, consulte Manage Docker as a non-root user
en la documentación de Docker. -
Para ejecutar el AWS IoT Greengrass contenedor, utilice el comando correspondiente a su sistema operativo:
docker run --rm --init -it -d --name aws-iot-greengrass \ -p 8883:8883 \ -v
<host-path-to-kernel-config-file>
:<container-path>
\<image-repository>
:<tag>
-
<host-path-to-kernel-config-file>
Sustitúyalo por la ruta al archivo de configuración del núcleo en el host y<container-path>
por la ruta en la que está montado el volumen en el contenedor.El archivo de configuración del kernel en el host generalmente se encuentra en
/proc/config.gz
o/boot/config-
. Puede correr<kernel-release-date>
uname -r
para encontrar el<kernel-release-date>
valor.Ejemplo: para montar el archivo de configuración desde
/boot/config-
<kernel-release-date>
-v /boot/config-4.15.0-74-generic:/boot/config-4.15.0-74-generic \
Ejemplo: para montar el archivo de configuración desde
proc/config.gz
-v /proc/config.gz:/proc/config.gz \
-
Reemplace
<image-repository>
:<tag>
en el comando por el nombre del repositorio y la etiqueta de la imagen de destino.Ejemplo: para apuntar a la última versión del software AWS IoT Greengrass Core
216483018798.dkr.ecr.us-west-2.amazonaws.com/aws-iot-greengrass:latest
Para obtener la lista de imágenes de AWS IoT Greengrass Docker, ejecute el siguiente comando.
aws ecr list-images --region us-west-2 --registry-id 216483018798 --repository-name aws-iot-greengrass
importante
Cuando realices pruebas con IDT, no incluyas el
--entrypoint /greengrass-entrypoint.sh \
argumento que se usa para ejecutar la imagen para uso general AWS IoT Greengrass . -
Siguiente paso: configure AWS las credenciales y el device.json archivo.
Configure el dockerfile proporcionado por AWS IoT Greengrass
Siga estos pasos para configurar la imagen de Docker creada a partir del AWS IoT Greengrass Dockerfile para ejecutar las pruebas de IDT.
Desde AWS IoT Greengrass Software Docker, descargue el paquete Dockerfile en su equipo host y extráigalo.
Abra
README.md
. Los tres pasos siguientes hacen referencia a las secciones de este archivo.Asegúrese de que cumpla los requisitos de la sección Requisitos previos.
Solo para usuarios de Linux: complete los pasos Habilitar la protección de enlaces simbólicos y enlaces duros y Habilitar el reenvío de red. IPv4
Para crear la imagen de Docker, complete todos los pasos del Paso 1. Cree la imagen de Docker AWS IoT Greengrass . A continuación, vuelva a este tema para continuar con la configuración.
-
Para ejecutar el AWS IoT Greengrass contenedor, utilice el comando correspondiente a su sistema operativo:
docker run --rm --init -it -d --name aws-iot-greengrass \ -p 8883:8883 \ -v
<host-path-to-kernel-config-file>
:<container-path>
\<image-repository>
:<tag>
-
<host-path-to-kernel-config-file>
Sustitúyalo por la ruta al archivo de configuración del núcleo en el host y<container-path>
por la ruta en la que está montado el volumen en el contenedor.El archivo de configuración del kernel en el host generalmente se encuentra en
/proc/config.gz
o/boot/config-
. Puede correr<kernel-release-date>
uname -r
para encontrar el<kernel-release-date>
valor.Ejemplo: para montar el archivo de configuración desde
/boot/config-
<kernel-release-date>
-v /boot/config-4.15.0-74-generic:/boot/config-4.15.0-74-generic \
Ejemplo: para montar el archivo de configuración desde
proc/config.gz
-v /proc/config.gz:/proc/config.gz \
-
Reemplace
<image-repository>
:<tag>
en el comando por el nombre del repositorio y la etiqueta de la imagen de destino.Ejemplo: para apuntar a la última versión del software AWS IoT Greengrass Core
216483018798.dkr.ecr.us-west-2.amazonaws.com/aws-iot-greengrass:latest
Para obtener la lista de imágenes de AWS IoT Greengrass Docker, ejecute el siguiente comando.
aws ecr list-images --region us-west-2 --registry-id 216483018798 --repository-name aws-iot-greengrass
importante
Cuando realices pruebas con IDT, no incluyas el
--entrypoint /greengrass-entrypoint.sh \
argumento que se usa para ejecutar la imagen para uso general AWS IoT Greengrass . -
Siguiente paso: configure AWS las credenciales y el device.json archivo.
Solución de problemas con la configuración de su contenedor Docker para IDT para AWS IoT Greengrass
Utilice la siguiente información para solucionar problemas relacionados con la ejecución de un contenedor Docker para que IDT lo pruebe. AWS IoT Greengrass
ADVERTENCIA: Error al cargar configfile:/home/user/.docker/config.json - stat /home//<user>/.docker/config.json: permiso denegado
Si obtiene este error al ejecutar comandos de docker
en Linux, ejecute el siguiente comando. Sustituya <user>
el siguiente comando por el usuario que ejecuta IDT.
sudo chown
<user>
:<user>
/home/<user>
/.docker -R sudo chmod g+rwx /home/<user>
/.docker -R