AWS IoT Greengrass Version 1 est entré dans la phase de durée de vie prolongée le 30 juin 2023. Pour plus d'informations, consultez la politique de AWS IoT Greengrass V1 maintenance. Après cette date, AWS IoT Greengrass V1 ne publiera pas de mises à jour fournissant des fonctionnalités, des améliorations, des corrections de bogues ou des correctifs de sécurité. Les appareils qui fonctionnent AWS IoT Greengrass V1 sous tension ne seront pas perturbés et continueront à fonctionner et à se connecter au cloud. Nous vous recommandons vivement de migrer vers AWS IoT Greengrass Version 2, qui ajoute de nouvelles fonctionnalités importantes et prend en charge des plateformes supplémentaires.
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.
Déploiement de groupes AWS IoT Greengrass sur un noyau AWS IoT Greengrass Core
Utilisez AWS IoT Greengrass des groupes pour organiser les entités dans votre environnement périphérique. Vous pouvez également utiliser des groupes pour contrôler la manière dont les entités du groupe interagissent entre elles et avec leAWS Cloud. Par exemple, seules les fonctions Lambda du groupe sont déployées pour être exécutées localement, et seuls les appareils du groupe peuvent communiquer via le serveur MQTT local.
Un groupe doit inclure un noyau, appareil AWS IoT qui exécute le logiciel AWS IoT Greengrass Core. Le noyau agit comme une passerelle périphérique et fournit des fonctionnalités AWS IoT Core dans l'environnement périphérique. En fonction des besoins de votre entreprise, vous pouvez également ajouter les entités suivantes à un groupe :
-
Appareils clients. Représenté en tant qu'objets dans le registre AWS IoT. Ces appareils doivent exécuter FreeRTOS ou utiliser AWS IoTle Device SDK AWS IoT Greengrass ou l'API Discovery pour obtenir des informations de connexion pour le noyau. Seuls les appareils clients membres du groupe peuvent se connecter au cœur.
Fonctions Lambda. Applications sans serveur définies par l'utilisateur qui exécutent du code sur le cœur. Les fonctions Lambda sont créées AWS Lambda et référencées à partir d'un groupe Greengrass. Pour plus d’informations, consultez Exécuter les fonctions Lambda sur le noyau AWS IoT Greengrass.
Connecteurs. Applications sans serveur prédéfinies qui exécutent du code sur le cœur. Les connecteurs peuvent fournir une intégration intégrée à l'infrastructure localeAWS, aux protocoles des appareils et à d'autres services cloud. Pour plus d’informations, consultez Intégrer à des services et protocoles à l'aide de connecteurs Greengrass.
Abonnements. Définit les éditeurs, les abonnés et les rubriques MQTT (ou sujets) qui sont autorisés pour la communication MQTT.
Ressources. Références aux appareils et volumes locaux, aux modèles d'apprentissage automatique et aux secrets, utilisés pour le contrôle d'accès par les fonctions et connecteurs Greengrass Lambda.
Journaux. Configurations de journalisation pour les composants AWS IoT Greengrass du système et les fonctions Lambda. Pour plus d’informations, consultez Surveillance avec les journaux AWS IoT Greengrass.
Vous gérez votre groupe Greengrass dans le, AWS Cloud puis vous le déployez sur un noyau. Le déploiement copie la configuration du groupe dans le fichier group.json
sur l'appareil principal. Ce fichier se trouve dans le dossier
.greengrass-root
/ggc/deployments/group
![Définition cloud du groupe Greengrass déployé sur un appareil principal.](images/group-deploy.png)
Note
Au cours d'un déploiement, le processus de démon Greengrass sur l'appareil principal s'arrête, puis redémarre.
Déploiement de groupes depuis la AWS IoT console
Vous pouvez déployer un groupe et gérer ses déploiements depuis la page de configuration du groupe dans la AWS IoT console.
Note
Pour ouvrir cette page dans la console, choisissez Greengrass devices, Groups (V1), puis sous Greengrass groups, choisissez votre groupe.
- Pour déployer la version actuelle du groupe
-
-
Sur la page de configuration du groupe, choisissez Deploy.
-
- Pour afficher l'historique de déploiement du groupe
-
L'historique de déploiement d'un groupe inclut la date et l'heure, la version du groupe et l'état de chaque tentative de déploiement.
-
Sur la page de configuration du groupe, choisissez l'onglet Déploiements.
-
Pour obtenir plus d'informations sur un déploiement, y compris les messages d'erreur, choisissez Déploiements depuis la AWS IoT console, sous Appareils Greengrass.
-
- Pour redéployer un déploiement de groupe
-
Vous pouvez souhaiter redéployer un déploiement si le déploiement actuel échoue ou revenir à une autre version de groupe.
-
Sur la AWS IoT console, choisissez Greengrass devices, puis Groups (V1).
-
Choisissez l'onglet Déploiements.
-
Choisissez le déploiement que vous souhaitez redéployer, puis Redéployer.
-
- Pour réinitialiser les déploiements de groupe
-
Vous pouvez souhaiter réinitialiser les déploiements de groupe pour déplacer ou supprimer un groupe ou supprimer des informations de déploiement. Pour plus d’informations, consultez Réinitialiser les déploiements.
-
Sur la AWS IoT console, choisissez Greengrass devices, puis Groups (V1).
-
Choisissez l'onglet Déploiements.
-
Choisissez le déploiement que vous souhaitez réinitialiser, puis sélectionnez Réinitialiser les déploiements.
-
Déploiement de groupes avec l'API AWS IoT Greengrass
L'API AWS IoT Greengrass fournit les actions suivantes pour déployer des groupes AWS IoT Greengrass et gérer des déploiements de groupe. Vous pouvez appeler ces actions à partir de l'AWS CLI, de l’API AWS IoT Greengrass ou du kit de développement SDK AWS.
Action | Description |
---|---|
Crée un déploiement Vous pouvez souhaiter redéployer un déploiement si le déploiement actuel échoue. Ou vous pouvez souhaiter redéployer pour revenir à une autre version de groupe. |
|
Renvoie le statut d'un déploiement : Vous pouvez configurer les EventBridge événements Amazon pour recevoir des notifications de déploiement. Pour plus d’informations, consultez Obtention des notifications de déploiement. |
|
Renvoie l'historique de déploiement pour le groupe. |
|
Réinitialise les déploiements pour le groupe. Vous pouvez souhaiter réinitialiser les déploiements de groupe pour déplacer ou supprimer un groupe ou supprimer des informations de déploiement. Pour plus d’informations, consultez Réinitialiser les déploiements. |
Note
Pour plus d'informations sur les opérations de déploiement en bloc, consultez Créer des déploiements en bloc pour des groupes.
Obtention de l'ID de groupe
L'ID de groupe est couramment utilisé dans les actions API. Vous pouvez utiliser cette ListGroupsaction pour trouver l'identifiant du groupe cible dans votre liste de groupes. Par exemple, dans le AWS CLI, utilisez la commande list-groups
.
aws greengrass list-groups
Vous pouvez également inclure l'option query
pour filtrer les résultats. Par exemple :
Pour obtenir le groupe créé le plus récemment :
aws greengrass list-groups --query "reverse(sort_by(Groups, &CreationTimestamp))[0]"
-
Pour obtenir un groupe par son nom :
aws greengrass list-groups --query "Groups[?Name=='
MyGroup
']"Les noms de groupe ne devant pas nécessairement être uniques, plusieurs groupes peuvent être renvoyés.
Voici un exemple de réponse list-groups
: Les informations relatives à chaque groupe comprennent l'ID du groupe (dans la propriété Id
) et l'ID de la version de groupe la plus récente (dans la propriété LatestVersion
). Pour obtenir d'autres identifiants de version pour un groupe, utilisez l'ID de groupe avec ListGroupVersions.
Note
Vous pouvez également trouver ces valeurs dans la AWS IoT console. L'ID du groupe s'affiche sur la page Paramètres du groupe. Les identifiants de version du groupe sont affichés dans l'onglet Déploiements du groupe.
{ "Groups": [ { "LatestVersionArn": "arn:aws:us-west-2:123456789012:/greengrass/groups/00dedaaa-ac16-484d-ad77-c3eedEXAMPLE/versions/4cbc3f07-fc5e-48c4-a50e-7d356EXAMPLE", "Name": "MyFirstGroup", "LastUpdatedTimestamp": "2019-11-11T05:47:31.435Z", "LatestVersion": "4cbc3f07-fc5e-48c4-a50e-7d356EXAMPLE", "CreationTimestamp": "2019-11-11T05:47:31.435Z", "Id": "00dedaaa-ac16-484d-ad77-c3eedEXAMPLE", "Arn": "arn:aws:us-west-2:123456789012:/greengrass/groups/00dedaaa-ac16-484d-ad77-c3eedEXAMPLE" }, { "LatestVersionArn": "arn:aws:us-west-2:123456789012:/greengrass/groups/036ceaf9-9319-4716-ba2a-237f9EXAMPLE/versions/8fe9e8ec-64d1-4647-b0b0-01dc8EXAMPLE", "Name": "GreenhouseSensors", "LastUpdatedTimestamp": "2020-01-07T19:58:36.774Z", "LatestVersion": "8fe9e8ec-64d1-4647-b0b0-01dc8EXAMPLE", "CreationTimestamp": "2020-01-07T19:58:36.774Z", "Id": "036ceaf9-9319-4716-ba2a-237f9EXAMPLE", "Arn": "arn:aws:us-west-2:123456789012:/greengrass/groups/036ceaf9-9319-4716-ba2a-237f9EXAMPLE" }, ... ] }
Si vous ne spécifiez pas deRégion AWS, AWS CLI les commandes utilisent la région par défaut de votre profil. Pour renvoyer des groupes dans une autre région, incluez l'option region
. Par exemple :
aws greengrass list-groups --region us-east-1
Présentation du modèle d'objet de groupe AWS IoT Greengrass
Lors de la programmation avec l'API AWS IoT Greengrass, il est utile de comprendre le modèle d'objet de groupe Greengrass.
Groups
Dans l'API AWS IoT Greengrass, l'objet de niveau supérieur Group
se compose de métadonnées et d'une liste d'objets GroupVersion
. Les objets GroupVersion
sont associés à un Group
par ID.
![Diagramme d'un groupe, composé de métadonnées et d'une liste de versions de groupe.](images/om-group.png)
Versions de groupe
Les objets GroupVersion
définissent l'appartenance au groupe. Chaque objet GroupVersion
fait référence à un objet CoreDefinitionVersion
et d'autres versions de composant par ARN. Ces références déterminent les entités à inclure dans le groupe.
![Diagramme d'une version de groupe qui fait référence à d'autres types de version par ARN.](images/om-groupversion.png)
Par exemple, pour inclure trois fonctions Lambda, un appareil et deux abonnements dans le groupe, les GroupVersion
références :
CoreDefinitionVersion
contenant le noyau requis.FunctionDefinitionVersion
, qui contient les trois fonctions.Celui
DeviceDefinitionVersion
qui contient l'appareil client.SubscriptionDefinitionVersion
, qui contient les deux abonnements.
L’objet GroupVersion
déployé sur un périphérique noyau détermine les entités disponibles dans l'environnement local et la manière dont elles peuvent interagir.
Composants de groupe
Les composants que vous ajoutez aux groupes ont une hiérarchie à trois niveaux :
Définition qui fait référence à une liste d'DefinitionVersionobjets d'un type donné. Par exemple, un objet
DeviceDefinition
fait référence à une liste d'objetsDeviceDefinitionVersion
.Un DefinitionVersionqui contient un ensemble d'entités d'un type donné. Par exemple, un objet
DeviceDefinitionVersion
contient une liste d'objetsDevice
.Entités individuelles qui définissent leurs propriétés et leur comportement. Par exemple, a
Device
définit l'ARN de l'appareil client correspondant dans le AWS IoT registre, l'ARN de son certificat d'appareil et indique si son shadow local se synchronise automatiquement avec le cloud.Vous pouvez ajouter les types d'entité suivants à un groupe :
L'exemple suivant DeviceDefinition
fait référence à trois objets DeviceDefinitionVersion
qui contiennent chacun plusieurs objets Device
. Un seul objet DeviceDefinitionVersion
à la fois est utilisé dans un groupe.
![Schéma d'une hiérarchie de périphériques, composée de DeviceDefinition DeviceDefinitionVersion, et d'objets de périphériques.](images/om-devicedefinition.png)
Mise à jour de groupes
Dans l'API AWS IoT Greengrass, vous utilisez des versions pour mettre à jour la configuration d'un groupe. Les versions étant immuables, pour ajouter, supprimer ou modifier des composants de groupe, vous devez créer DefinitionVersiondes objets contenant des entités nouvelles ou mises à jour.
Vous pouvez associer de nouveaux DefinitionVersionsobjets à des objets de définition nouveaux ou existants. Par exemple, vous pouvez utiliser l'action CreateFunctionDefinition
pour créer un objet FunctionDefinition
qui inclut l’objet FunctionDefinitionVersion
comme version initiale, ou vous pouvez utiliser l'action CreateFunctionDefinitionVersion
et faire référence à un objet FunctionDefinition
existant.
Après avoir créé les composants de votre groupe, vous en créez un GroupVersion
qui contient tous les DefinitionVersionobjets que vous souhaitez inclure dans le groupe. Vous déployez ensuite l’objet GroupVersion
.
Pour déployer un objet GroupVersion
, celui-ci doit faire référence à un objet CoreDefinitionVersion
qui contient exactement un objet Core
. Toutes les entités référencées doivent être membres du groupe. En outre, un rôle de service Greengrass doit être associé à votre rôle Compte AWS dans l'Région AWSendroit où vous déployez le. GroupVersion
Note
Les actions Update
dans l'API sont utilisées pour modifier le nom d'un objet Group
ou de composant Definition.
Mettre à jour les entités qui font référence à AWS des ressources
Les fonctions Lambda et les ressources secrètes de Greengrass définissent les propriétés spécifiques à Greengrass et font également référence aux ressources correspondantes. AWS Pour mettre à jour ces entités, vous pouvez apporter des modifications à la AWS ressource correspondante plutôt qu'à vos objets Greengrass. Par exemple, les fonctions Lambda font référence à une fonction dans AWS Lambda et définissent également le cycle de vie et d'autres propriétés spécifiques au groupe Greengrass.
Pour mettre à jour le code de fonction Lambda ou les dépendances packagées, apportez vos modifications dans. AWS Lambda Lors du déploiement de groupe suivant, ces modifications sont extraites de AWS Lambda et copiées dans votre environnement local.
Pour mettre à jour les propriétés spécifiques à Greengrass, vous créez un objet
FunctionDefinitionVersion
qui contient les propriétésFunction
mises à jour.
Note
Les fonctions Lambda Greengrass peuvent référencer une fonction Lambda par un alias ARN ou une version ARN. Si vous référencez l'ARN d'alias (recommandé), vous n'avez pas besoin de mettre à jour votre FunctionDefinitionVersion
(ou SubscriptionDefinitionVersion
) lorsque vous publiez une nouvelle version de fonction dans AWS Lambda. Pour plus d’informations, consultez Référencer les fonctions Lambda par alias ou par version.
Consultez aussi
-
AWS IoT Greengrasscommandes dans la référence des AWS CLI commandes