Creación de la imagen del contenedor de AWS IoT Greengrass a partir de un Dockerfile - 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.

Creación de la imagen del contenedor de AWS IoT Greengrass a partir de un Dockerfile

AWS proporciona un Dockerfile que puede descargar y usar para ejecutar el software AWS IoT Greengrass Core en un contenedor de Docker. Los Dockerfile contienen código de origen para crear imágenes de contenedor de AWS IoT Greengrass.

Antes de crear una imagen de contenedor de AWS IoT Greengrass, debe configurar su Dockerfile para seleccionar la versión del software AWS IoT Greengrass Core que desea instalar. También puede configurar las variables de entorno para elegir cómo aprovisionar los recursos durante la instalación y personalizar otras opciones de instalación. En esta sección, se describe cómo configurar y crear una imagen de Docker de AWS IoT Greengrass a partir de un Dockerfile.

Descarga del paquete Dockerfile

Puede descargar el paquete Dockerfile de AWS IoT Greengrass desde GitHub:

Repositorio Docker de AWS Greengrass

Tras descargar el paquete, extraiga el contenido a la carpeta download-directory/aws-greengrass-docker-nucleus-version de su computadora. El Dockerfile usa una versión anterior de Greengrass. Debe actualizar el archivo para usar la versión de Greengrass que desee.

Especificación de la versión del software AWS IoT Greengrass Core

Use el siguiente argumento de compilación en el Dockerfile para especificar la versión del software AWS IoT Greengrass Core que desea usar en la imagen de Docker de AWS IoT Greengrass. De forma predeterminada, el Dockerfile usa la versión más reciente del software AWS IoT Greengrass Core.

GREENGRASS_RELEASE_VERSION

La versión del software AWS IoT Greengrass Core. De forma predeterminada, el Dockerfile descarga la última versión disponible del núcleo de Greengrass. Establezca el valor en la versión del núcleo que quiere descargar.

Configuración de las variables de entorno

Las variables de entorno le permiten personalizar la forma en que se instala el software AWS IoT Greengrass Core en el contenedor de Docker. Puede configurar las variables de entorno para la imagen de Docker de AWS IoT Greengrass de varias maneras.

  • Para usar las mismas variables de entorno para crear varias imágenes, configure las variables de entorno directamente en el Dockerfile.

  • Si usa docker run para iniciar el contenedor, pase variables de entorno como argumentos en el comando o establezca las variables de entorno en un archivo de variables de entorno y, a continuación, pase el archivo como un argumento. Para obtener más información sobre cómo configurar las variables de entorno en Docker, consulte las variables de entorno en la documentación de Docker.

  • Si usa docker-compose up para iniciar su contenedor, configure las variables de entorno en un archivo de variables de entorno y, a continuación, pase el archivo como un argumento. Para obtener más información sobre cómo configurar las variables de entorno en Compose, consulte la documentación de Docker.

Puede configurar las siguientes variables de entorno para la imagen de Docker de AWS IoT Greengrass.

nota

No modifique la variable TINI_KILL_PROCESS_GROUP en el Dockerfile. Esta variable permite reenviar SIGTERM a todos los PID en el grupo de PID para que el software AWS IoT Greengrass Core se cierre correctamente cuando el contenedor de Docker se detenga.

GGC_ROOT_PATH

(Opcional) La ruta a la carpeta dentro del contenedor que se usará como raíz del software AWS IoT Greengrass Core.

Valor predeterminado: /greengrass/v2

PROVISION

(Opcional) Determina si AWS IoT Greengrass Core aprovisiona recursos de AWS.

Valor predeterminado: false

AWS_REGION

(Opcional) La Región de AWS que el software AWS IoT Greengrass Core usa para recuperar o crear los recursos de AWS necesarios.

Valor predeterminado: us-east-1.

THING_NAME

(Opcional) El nombre del objeto AWS IoT que registra como este dispositivo principal. Si el objeto con este nombre no existe en su Cuenta de AWS, la creará el software AWS IoT Greengrass Core.

Debe especificar PROVISION=true si desea aplicar este argumento.

Valor predeterminado: GreengrassV2IotThing_ más un UUID asignado al azar.

THING_GROUP_NAME

(Opcional) El nombre del grupo de objetos AWS IoT al que se agrega este dispositivo principal de AWS IoT. Si una implementación se dirige a este grupo objetos, este y otros dispositivos principales de ese grupo reciben esa implementación cuando se conectan a AWS IoT Greengrass. Si el grupo de objetos con este nombre no existe en su Cuenta de AWS, el software AWS IoT Greengrass Core lo crea.

Debe especificar PROVISION=true si desea aplicar este argumento.

TES_ROLE_NAME

(Opcional) El nombre del rol de IAM que se usa para adquirir las credenciales de AWS que permiten al dispositivo principal de Greengrass interactuar con los servicios de AWS. Si el rol con este nombre no existe en su Cuenta de AWS, el software AWS IoT Greengrass Core lo crea con la política GreengrassV2TokenExchangeRoleAccess. Este rol no tiene acceso a los buckets de S3 donde aloja los artefactos de los componentes. Por lo tanto, debe agregar permisos a los buckets y objetos de S3 de sus artefactos al crear un componente. Para obtener más información, consulte Autorización de los dispositivos principales para interactuar con los servicios de AWS.

Valor predeterminado: GreengrassV2TokenExchangeRole

TES_ROLE_ALIAS_NAME

(Opcional) El nombre del alias del rol de AWS IoT que apunta al rol de IAM que proporciona las credenciales de AWS para el dispositivo principal de Greengrass. Si el alias del rol con este nombre no existe en su Cuenta de AWS, el software AWS IoT Greengrass Core lo crea y lo dirige al rol de IAM que especifique.

Valor predeterminado: GreengrassV2TokenExchangeRoleAlias

COMPONENT_DEFAULT_USER

(Opcional) El nombre o el ID del usuario y el grupo del sistema que usa el software AWS IoT Greengrass Core para ejecutar los componentes. Especifique el usuario y el grupo, separados por dos puntos. El grupo es opcional. Por ejemplo, puede especificar ggc_user:ggc_group o ggc_user.

  • Si se ejecuta como raíz, el usuario y el grupo que defina el archivo de configuración son de forma predeterminada. Si el archivo de configuración no define un usuario ni un grupo, el valor predeterminado es ggc_user:ggc_group. Si no existen ggc_user o ggc_group, el software los crea.

  • Si se ejecuta como un usuario no raíz, el software AWS IoT Greengrass Core usa ese usuario para ejecutar los componentes.

  • Si no especifica un grupo, el software AWS IoT Greengrass Core usa el grupo principal del usuario del sistema.

Para obtener más información, consulte Configuración del usuario que ejecuta los componentes.

DEPLOY_DEV_TOOLS

Define si se debe descargar e implementar el componente de la CLI de Greengrass en la imagen del contenedor. Puede usar la CLI de Greengrass para desarrollar y depurar componentes localmente.

importante

Se recomienda usar este componente solo en entornos de desarrollo y no en entornos de producción. Este componente brinda acceso a información y operaciones que, por lo general, no necesitará en un entorno de producción. Siga el principio de privilegio mínimo al implementar este componente solo en los dispositivos principales donde lo necesite.

Predeterminado: false

INIT_CONFIG

(Opcional) La ruta al archivo de configuración que se usa para instalar el software AWS IoT Greengrass Core. Puede usar esta opción para configurar nuevos dispositivos principales de Greengrass con una configuración de núcleo específica o para especificar recursos aprovisionados manualmente, por ejemplo. Debe montar el archivo de configuración en la ruta que especifique en este argumento.

TRUSTED_PLUGIN

Esta característica está disponible para la versión 2.4.0 y versiones posteriores del componente núcleo de Greengrass.

(Opcional) La ruta a un archivo JAR para cargarlo como un complemento de confianza. Use esta opción para aprovisionar archivos JAR, como instalar con el aprovisionamiento de flota o el aprovisionamiento personalizado.

THING_POLICY_NAME

Esta característica está disponible para la versión 2.4.0 y versiones posteriores del componente núcleo de Greengrass.

(Opcional) El nombre de la política de AWS IoT que se debe adjuntar al certificado del objeto AWS IoT de este dispositivo principal. Si la política de AWS IoT con este nombre no existe en su Cuenta de AWS, el software AWS IoT Greengrass Core la creará.

Debe especificar PROVISION=true si desea aplicar este argumento.

nota

El software AWS IoT Greengrass Core crea una política de AWS IoT permisiva de forma predeterminada. Puede limitar el alcance de esta política o crear una política personalizada en la que restrinja los permisos según su caso de uso. Para obtener más información, consulte AWS IoT Política mínima para los dispositivos AWS IoT Greengrass V2 principales.

Especificación de las dependencias que desea instalar

La instrucción RUN del Dockerfile de AWS IoT Greengrass prepara el entorno del contenedor para ejecutar el instalador del software AWS IoT Greengrass Core. Puede personalizar las dependencias que se instalan antes de que el instalador del software AWS IoT Greengrass Core se ejecute en el contenedor de Docker.

Compilación de la imagen de AWS IoT Greengrass

Use el Dockerfile de AWS IoT Greengrass para crear una imagen de contenedor de AWS IoT Greengrass. Puede usar la CLI de Docker o la CLI de Docker Compose para crear la imagen e iniciar el contenedor. También puede usar la CLI de Docker para crear la imagen y, a continuación, usar Docker Compose para iniciar el contenedor a partir de esa imagen.

Docker
  1. En la máquina host, ejecute el siguiente comando para cambiar al directorio que contiene el Dockerfile configurado.

    cd download-directory/aws-greengrass-docker-nucleus-version
  2. Ejecute el siguiente comando para crear la imagen del contenedor de AWS IoT Greengrass del Dockerfile.

    sudo docker build -t "platform/aws-iot-greengrass:nucleus-version" ./
Docker Compose
  1. En la máquina host, ejecute el siguiente comando para cambiar al directorio que contiene el Dockerfile y el archivo Compose.

    cd download-directory/aws-greengrass-docker-nucleus-version
  2. Ejecute el siguiente comando para usar el archivo Compose para crear la imagen del contenedor de AWS IoT Greengrass.

    docker-compose -f docker-compose.yml build

Ha creado la imagen del contenedor de AWS IoT Greengrass correctamente. La imagen de Docker tiene el software AWS IoT Greengrass Core instalado. Ahora puede ejecutar el software AWS IoT Greengrass Core en un contenedor de Docker.