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.
Exécuter AWS IoT Greengrass dans un conteneur Docker avec provisionnement automatique des ressources
Ce didacticiel explique comment installer et exécuter le logiciel AWS IoT Greengrass Core dans un conteneur Docker avec des AWS ressources automatiquement provisionnées et des outils de développement locaux. Vous pouvez utiliser cet environnement de développement pour explorer les AWS IoT Greengrass fonctionnalités d'un conteneur Docker. Le logiciel nécessite des AWS informations d'identification pour fournir ces ressources et déployer les outils de développement locaux.
Si vous ne pouvez pas fournir AWS d'informations d'identification au conteneur, vous pouvez fournir les AWS ressources dont le périphérique principal a besoin pour fonctionner. Vous pouvez également déployer les outils de développement sur un appareil principal pour l'utiliser comme périphérique de développement. Cela vous permet de fournir moins d'autorisations à l'appareil lorsque vous exécutez le conteneur. Pour de plus amples informations, veuillez consulter Exécuter AWS IoT Greengrass dans un conteneur Docker avec provisionnement manuel des ressources.
Prérequis
Pour terminer ce didacticiel, vous avez besoin des éléments suivants.
-
Un Compte AWS. Si vous n'en avez pas, veuillez consulter Configurez un Compte AWS.
-
Un AWS IAM utilisateur autorisé à fournir les IAM ressources AWS IoT et les ressources nécessaires à un appareil principal Greengrass. Le programme d'installation du logiciel AWS IoT Greengrass Core utilise vos AWS informations d'identification pour provisionner automatiquement ces ressources. Pour plus d'informations sur la IAM politique minimale de provisionnement automatique des ressources, consultezPolitique IAM minimale permettant au programme d'installation de provisionner les ressources.
-
Une image AWS IoT Greengrass Docker. Vous pouvez créer une image à partir du AWS IoT Greengrass Dockerfile.
-
L'ordinateur hôte sur lequel vous exécutez le conteneur Docker doit répondre aux exigences suivantes :
-
Système d'exploitation basé sur Linux doté d'une connexion Internet.
-
Docker Engine
version 18.09 ou ultérieure. -
(Facultatif) Docker Compose
version 1.22 ou ultérieure. Docker Compose n'est requis que si vous souhaitez utiliser Docker Compose CLI pour exécuter vos images Docker.
-
Configuration de vos informations d'identification pour l' AWS
Au cours de cette étape, vous créez un fichier d'informations d'identification sur l'ordinateur hôte qui contient vos informations AWS
de sécurité. Lorsque vous exécutez l'image AWS IoT Greengrass Docker, vous devez monter le dossier contenant ce fichier d'identification /root/.aws/
dans le conteneur Docker. Le AWS IoT Greengrass programme d'installation utilise ces informations d'identification pour provisionner des ressources dans votre Compte AWS. Pour plus d'informations sur la IAM politique minimale requise par le programme d'installation pour provisionner automatiquement les ressources, consultezPolitique IAM minimale permettant au programme d'installation de provisionner les ressources.
-
Récupérez l'un des éléments suivants.
-
Informations d'identification à long terme pour un IAM utilisateur. Pour plus d'informations sur la façon de récupérer des informations d'identification à long terme, consultez la section Gestion des clés d'accès pour IAM les utilisateurs dans le Guide de IAM l'utilisateur.
-
(Recommandé) Informations d'identification temporaires pour un IAM rôle. Pour plus d'informations sur la façon de récupérer des informations d'identification temporaires, consultez la section Utilisation des informations d'identification de sécurité temporaires AWS CLI dans le guide de IAM l'utilisateur.
-
-
Créez un dossier dans lequel vous placerez votre fichier d'informations d'identification.
mkdir ./greengrass-v2-credentials
-
Utilisez un éditeur de texte pour créer un fichier de configuration nommé
credentials
dans le./greengrass-v2-credentials
dossier.Par exemple, vous pouvez exécuter la commande suivante pour utiliser GNU nano pour créer le
credentials
fichier.nano ./greengrass-v2-credentials/credentials
-
Ajoutez vos AWS informations d'identification au
credentials
fichier au format suivant.[default] aws_access_key_id =
AKIAIOSFODNN7EXAMPLE
aws_secret_access_key =wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
aws_session_token =AQoEXAMPLEH4aoAH0gNCAPy...truncated...zrkuWJOgQs8IZZaIv2BXIa2R4Olgk
Inclure uniquement
aws_session_token
pour les informations d'identification temporaires.
Important
Supprimez le fichier d'informations d'identification de l'ordinateur hôte après avoir démarré le AWS IoT Greengrass conteneur. Si vous ne supprimez pas le fichier d'informations d' AWS identification, celles-ci resteront montées dans le conteneur. Pour de plus amples informations, veuillez consulter Exécuter le logiciel AWS IoT Greengrass Core dans un conteneur.
Création d'un fichier d'environnement
Ce didacticiel utilise un fichier d'environnement pour définir les variables d'environnement qui seront transmises au programme d'installation du logiciel AWS IoT Greengrass Core dans le conteneur Docker. Vous pouvez également utiliser l'--env
argument -e
ordocker run
commande pour définir des variables d'environnement dans le conteneur Docker ou vous pouvez définir les variables dans un environment
blocdocker-compose.yml
fichier.
-
Utilisez un éditeur de texte pour créer un fichier d'environnement nommé
.env
.Par exemple, sur un système basé sur Linux, vous pouvez exécuter la commande suivante pour utiliser GNU nano afin de créer le
.env
dans le répertoire actuel.nano .env
-
Copiez le contenu suivant dans le fichier.
GGC_ROOT_PATH=
AWS_REGION=/greengrass/v2
region
PROVISION=true THING_NAME=MyGreengrassCore
THING_GROUP_NAME=MyGreengrassCoreGroup
TES_ROLE_NAME=GreengrassV2TokenExchangeRole
TES_ROLE_ALIAS_NAME=GreengrassCoreTokenExchangeRoleAlias
COMPONENT_DEFAULT_USER=ggc_user:ggc_groupRemplacez ensuite les valeurs suivantes.
-
. Le dossier racine de Greengrass que vous souhaitez utiliser pour l'installation. Vous utilisez la variable d'/greengrass/v2
GGC_ROOT
environnement pour définir cette valeur. -
region
. L' Région AWS endroit où vous avez créé les ressources. -
MyGreengrassCore
. Le nom du AWS IoT truc. Si l'objet n'existe pas, le programme d'installation le crée. Le programme d'installation télécharge les certificats pour s'authentifier en tant qu' AWS IoT objet. -
MyGreengrassCoreGroup
. Le nom du groupe AWS IoT d'objets. Si le groupe d'objets n'existe pas, le programme d'installation le crée et y ajoute l'objet. Si le groupe d'objets existe et fait l'objet d'un déploiement actif, le périphérique principal télécharge et exécute le logiciel spécifié par le déploiement. -
GreengrassV2TokenExchangeRole
. Remplacez-le par le nom du rôle d'échange de IAM jetons qui permet au périphérique principal de Greengrass d'obtenir des informations d'identification temporaires AWS . Si le rôle n'existe pas, le programme d'installation le crée, puis crée et attache une politique nomméeGreengrassV2TokenExchangeRole
Accès. Pour de plus amples informations, veuillez consulter Autoriser les appareils principaux à interagir avec les AWS services. -
GreengrassCoreTokenExchangeRoleAlias
. Alias du rôle d'échange de jetons. Si l'alias de rôle n'existe pas, le programme d'installation le crée et le pointe vers le rôle d'échange de IAM jetons que vous spécifiez. Pour plus d'informations, veuillez consulter la rubrique
Note
Vous pouvez définir la variable d'
DEPLOY_DEV_TOOLS
environnement surtrue
pour déployer le CLIcomposant Greengrass, ce qui vous permet de développer des composants personnalisés à l'intérieur du conteneur Docker. 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. -
Exécuter le logiciel AWS IoT Greengrass Core dans un conteneur
Ce didacticiel vous montre comment démarrer l'image Docker que vous avez créée dans un conteneur Docker. Vous pouvez utiliser le Docker CLI ou le Docker Compose CLI pour exécuter l'image logicielle AWS IoT Greengrass Core dans un conteneur Docker.
Étapes suivantes
AWS IoT Greengrass Le logiciel de base s'exécute désormais dans un conteneur Docker. Exécutez la commande suivante pour récupérer l'ID du conteneur en cours d'exécution.
docker ps
Vous pouvez ensuite exécuter la commande suivante pour accéder au conteneur et explorer les logiciels AWS IoT Greengrass principaux exécutés à l'intérieur du conteneur.
docker exec -it
container-id
/bin/bash
Pour plus d'informations sur la création d'un composant simple, voir Étape 4 : développer et tester un composant sur votre appareil dans Didacticiel : Commencer avec AWS IoT Greengrass V2
Note
Lorsque vous exécutez docker exec
des commandes dans le conteneur Docker, ces commandes ne sont pas enregistrées dans les journaux Docker. Pour enregistrer vos commandes dans les journaux Docker, attachez un shell interactif au conteneur Docker. Pour de plus amples informations, veuillez consulter Attachez un shell interactif au conteneur Docker.
Le fichier journal AWS IoT Greengrass Core est appelé greengrass.log
et se trouve dans
. Les fichiers journaux des composants se trouvent également dans le même répertoire. Pour copier les journaux de Greengrass dans un répertoire temporaire de l'hôte, exécutez la commande suivante :
/logs/greengrass/v2
docker cp
container-id
:/greengrass/v2/logs/tmp/logs
Si vous souhaitez conserver les journaux après la sortie ou la suppression d'un conteneur, nous vous recommandons de lier uniquement le
répertoire au répertoire des journaux temporaires sur l'hôte au lieu de monter l'intégralité du répertoire Greengrass. Pour de plus amples informations, veuillez consulter Persister les logs Greengrass en dehors du conteneur Docker.
/logs/greengrass/v2
Pour arrêter un conteneur AWS IoT Greengrass Docker en cours d'exécution, exécutez docker
stop
oudocker-compose -f docker-compose.yml stop
. Cette action est envoyée SIGTERM
au processus Greengrass et arrête tous les processus associés qui ont été lancés dans le conteneur. Le conteneur Docker est initialisé avec l'docker-init
exécutable en tant que processus PID 1, ce qui permet de supprimer les processus zombies restants. Pour plus d'informations, consultez la section Spécifier un processus d'initialisation
Pour plus d'informations sur la résolution des problèmes liés AWS IoT Greengrass à l'exécution dans un conteneur Docker, consultezRésolution des problèmes liés à AWS IoT Greengrass dans un conteneur Docker.