Créez l'image du AWS IoT Greengrass conteneur à partir d'un Dockerfile - AWS IoT Greengrass

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Créez l'image du AWS IoT Greengrass conteneur à partir d'un Dockerfile

AWSfournit un Dockerfile que vous pouvez télécharger et utiliser pour exécuter le logiciel AWS IoT Greengrass Core dans un conteneur Docker. Les Dockerfiles contiennent le code source permettant de créer des images de AWS IoT Greengrass conteneurs.

Avant de créer une image de AWS IoT Greengrass conteneur, vous devez configurer votre Dockerfile pour sélectionner la version du logiciel AWS IoT Greengrass Core que vous souhaitez installer. Vous pouvez également configurer des variables d'environnement pour choisir le mode de provisionnement des ressources lors de l'installation et personnaliser d'autres options d'installation. Cette section décrit comment configurer et créer une image AWS IoT Greengrass Docker à partir d'un Dockerfile.

Téléchargez le package Dockerfile

Vous pouvez télécharger le package AWS IoT Greengrass Dockerfile à l'adresse suivante : GitHub

Référentiel Docker AWS Greengrass

Après avoir téléchargé le package, extrayez le contenu download-directory/aws-greengrass-docker-nucleus-version dans le dossier de votre ordinateur. Le Dockerfile utilise une ancienne version de Greengrass. Vous devez mettre à jour le fichier pour utiliser la version de Greengrass que vous souhaitez.

Spécifiez la version du logiciel AWS IoT Greengrass Core

Utilisez l'argument build suivant dans le Dockerfile pour spécifier la version du logiciel AWS IoT Greengrass Core que vous souhaitez utiliser dans l'image AWS IoT Greengrass Docker. Par défaut, le Dockerfile utilise la dernière version du logiciel AWS IoT Greengrass Core.

GREENGRASS_RELEASE_VERSION

Version du logiciel AWS IoT Greengrass Core. Par défaut, le Dockerfile télécharge la dernière version disponible du noyau Greengrass. Définissez la valeur sur la version du noyau que vous souhaitez télécharger.

Définir les variables d'environnement

Les variables d'environnement vous permettent de personnaliser la façon dont le logiciel AWS IoT Greengrass Core est installé dans le conteneur Docker. Vous pouvez définir des variables d'environnement pour votre image AWS IoT Greengrass Docker de différentes manières.

  • Pour utiliser les mêmes variables d'environnement pour créer plusieurs images, définissez les variables d'environnement directement dans le Dockerfile.

  • Si vous avez l'docker runhabitude de démarrer votre conteneur, transmettez des variables d'environnement en tant qu'arguments dans la commande ou définissez des variables d'environnement dans un fichier de variables d'environnement, puis transmettez le fichier en argument. Pour plus d'informations sur la définition des variables d'environnement dans Docker, consultez les variables d'environnement dans la documentation Docker.

  • Si vous avez l'docker-compose uphabitude de démarrer votre conteneur, définissez les variables d'environnement dans un fichier de variables d'environnement, puis transmettez le fichier en argument. Pour plus d'informations sur la définition des variables d'environnement dans Compose, consultez la documentation Docker.

Vous pouvez configurer les variables d'environnement suivantes pour l'image AWS IoT Greengrass Docker.

Note

Ne modifiez pas la TINI_KILL_PROCESS_GROUP variable dans le Dockerfile. Cette variable permet le transfert SIGTERM vers tous les PID du groupe PID afin que le logiciel AWS IoT Greengrass Core puisse s'arrêter correctement lorsque le conteneur Docker est arrêté.

GGC_ROOT_PATH

(Facultatif) Le chemin d'accès au dossier du conteneur à utiliser comme racine pour le logiciel AWS IoT Greengrass Core.

Par défaut : /greengrass/v2

PROVISION

(Facultatif) Détermine si le AWS IoT Greengrass Core fournit AWS des ressources.

Par défaut: false

AWS_REGION

(Facultatif) Le Région AWS logiciel AWS IoT Greengrass Core utilise pour récupérer ou créer les AWS ressources requises.

Par défaut: us-east-1.

THING_NAME

(Facultatif) Le nom de l'AWS IoTobjet que vous enregistrez en tant que périphérique principal. Si l'objet portant ce nom n'existe pas dans votre ordinateurCompte AWS, c'est le logiciel AWS IoT Greengrass Core qui le crée.

Vous devez spécifier PROVISION=true pour appliquer cet argument.

Par défaut : GreengrassV2IotThing_ plus un UUID aléatoire.

THING_GROUP_NAME

(Facultatif) Le nom du groupe d'objets auquel vous ajoutez ce périphérique principal est. AWS IoT Si un déploiement cible ce groupe d'objets, celui-ci et les autres appareils principaux de ce groupe reçoivent ce déploiement lorsqu'ils se connectent à ce groupeAWS IoT Greengrass. AWS IoT Si le groupe d'objets portant ce nom n'existe pas dans votre Compte AWS répertoire, le logiciel AWS IoT Greengrass Core le crée.

Vous devez spécifier PROVISION=true pour appliquer cet argument.

TES_ROLE_NAME

(Facultatif) Nom du rôle IAM à utiliser pour obtenir des AWS informations d'identification permettant à l'appareil principal de Greengrass d'interagir avec les AWS services. Si le rôle portant ce nom n'existe pas dans votre répertoireCompte AWS, le logiciel AWS IoT Greengrass Core le crée avec la GreengrassV2TokenExchangeRoleAccess politique. Ce rôle n'a pas accès à vos compartiments S3 dans lesquels vous hébergez des artefacts de composants. Vous devez donc ajouter des autorisations aux compartiments et objets S3 de vos artefacts lorsque vous créez un composant. Pour plus d’informations, consultez Autoriser les appareils principaux à interagir avec les AWS services.

Par défaut: GreengrassV2TokenExchangeRole

TES_ROLE_ALIAS_NAME

(Facultatif) Le nom de l'alias de AWS IoT rôle qui pointe vers le rôle IAM qui fournit les AWS informations d'identification pour le périphérique principal de Greengrass. Si l'alias de rôle portant ce nom n'existe pas dans votre répertoireCompte AWS, le logiciel AWS IoT Greengrass Core le crée et le pointe vers le rôle IAM que vous spécifiez.

Par défaut : GreengrassV2TokenExchangeRoleAlias

COMPONENT_DEFAULT_USER

(Facultatif) Le nom ou l'ID de l'utilisateur et du groupe du système que le logiciel AWS IoT Greengrass Core utilise pour exécuter les composants. Spécifiez l'utilisateur et le groupe, séparés par deux points. Le groupe est facultatif. Par exemple, vous définissez ggc_user:ggc_group ou ggc_user.

  • Si vous exécutez en tant que root, l'utilisateur et le groupe définis par le fichier de configuration sont utilisés par défaut. Si le fichier de configuration ne définit pas d'utilisateur ni de groupe, la valeur par défaut est. ggc_user:ggc_group S'ils ggc_group existent ggc_user ou non, le logiciel les crée.

  • Si vous l'exécutez en tant qu'utilisateur non root, le logiciel AWS IoT Greengrass Core utilise cet utilisateur pour exécuter les composants.

  • Si vous ne spécifiez aucun groupe, le logiciel AWS IoT Greengrass Core utilise le groupe principal de l'utilisateur du système.

Pour plus d’informations, consultez Configurer l'utilisateur qui exécute les composants.

DEPLOY_DEV_TOOLS

Définit s'il faut télécharger et déployer le composant Greengrass CLI dans l'image du conteneur. Vous pouvez utiliser la CLI Greengrass pour développer et déboguer des composants localement.

Important

Nous vous recommandons d'utiliser ce composant uniquement dans les environnements de développement, et non dans les environnements de production. Ce composant permet d'accéder à des informations et à des opérations dont vous n'avez généralement pas besoin dans un environnement de production. Respectez le principe du moindre privilège en déployant ce composant uniquement sur les appareils principaux là où vous en avez besoin.

Par défaut : false

INIT_CONFIG

(Facultatif) Le chemin d'accès au fichier de configuration à utiliser pour installer le logiciel AWS IoT Greengrass Core. Vous pouvez utiliser cette option pour configurer de nouveaux appareils principaux Greengrass avec une configuration de noyau spécifique, ou pour spécifier des ressources provisionnées manuellement, par exemple. Vous devez monter votre fichier de configuration sur le chemin que vous spécifiez dans cet argument.

TRUSTED_PLUGIN

Cette fonctionnalité est disponible pour les versions 2.4.0 et ultérieures du composant Greengrass nucleus.

(Facultatif) Le chemin d'accès à un fichier JAR à charger en tant que plugin sécurisé. Utilisez cette option pour fournir des fichiers JAR de plug-in de provisionnement, par exemple pour les installer avec le provisionnement de flotte ou le provisionnement personnalisé.

THING_POLICY_NAME

Cette fonctionnalité est disponible pour les versions 2.4.0 et ultérieures du composant Greengrass nucleus.

(Facultatif) Nom de la AWS IoT politique à associer au certificat d'AWS IoTobjet de ce périphérique principal. Si la AWS IoT politique portant ce nom n'existe pas dans votre ordinateur, Compte AWS le logiciel AWS IoT Greengrass Core la crée.

Vous devez spécifier PROVISION=true pour appliquer cet argument.

Note

Le logiciel AWS IoT Greengrass Core crée une AWS IoT politique permissive par défaut. Vous pouvez limiter cette politique ou créer une politique personnalisée dans laquelle vous limitez les autorisations pour votre cas d'utilisation. Pour plus d’informations, consultez AWS IoTPolitique minimale pour les appareils AWS IoT Greengrass V2 principaux.

Spécifiez les dépendances à installer

L'instruction RUN du AWS IoT Greengrass Dockerfile prépare l'environnement du conteneur pour exécuter le programme d'installation du logiciel AWS IoT Greengrass Core. Vous pouvez personnaliser les dépendances installées avant que le programme d'installation du logiciel AWS IoT Greengrass Core ne s'exécute dans le conteneur Docker.

Construisez l'AWS IoT Greengrassimage

Utilisez le AWS IoT Greengrass Dockerfile pour créer une image de AWS IoT Greengrass conteneur. Vous pouvez utiliser la CLI Docker ou la CLI Docker Compose pour créer l'image et démarrer le conteneur. Vous pouvez également utiliser la CLI Docker pour créer l'image, puis utiliser Docker Compose pour démarrer votre conteneur à partir de cette image.

Docker
  1. Sur la machine hôte, exécutez la commande suivante pour passer au répertoire contenant le Dockerfile configuré.

    cd download-directory/aws-greengrass-docker-nucleus-version
  2. Exécutez la commande suivante pour créer l'image du AWS IoT Greengrass conteneur à partir du Dockerfile.

    sudo docker build -t "platform/aws-iot-greengrass:nucleus-version" ./
Docker Compose
  1. Sur la machine hôte, exécutez la commande suivante pour passer au répertoire contenant le Dockerfile et le fichier Compose.

    cd download-directory/aws-greengrass-docker-nucleus-version
  2. Exécutez la commande suivante pour utiliser le fichier Compose pour créer l'image du AWS IoT Greengrass conteneur.

    docker-compose -f docker-compose.yml build

Vous avez créé avec succès l'image du AWS IoT Greengrass conteneur. Le logiciel AWS IoT Greengrass Core est installé sur l'image Docker. Vous pouvez désormais exécuter le logiciel AWS IoT Greengrass Core dans un conteneur Docker.