Déploiement de groupes AWS IoT Greengrass sur un noyau AWS IoT Greengrass Core - AWS IoT Greengrass

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 :

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.
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.

  1. Sur la page de configuration du groupe, choisissez l'onglet Déploiements.

  2. 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.

  1. Sur la AWS IoT console, choisissez Greengrass devices, puis Groups (V1).

  2. Choisissez l'onglet Déploiements.

  3. 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.

  1. Sur la AWS IoT console, choisissez Greengrass devices, puis Groups (V1).

  2. Choisissez l'onglet Déploiements.

  3. 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

CreateDeployment

Crée un déploiement Redeployment ou NewDeployment.

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.

GetDeploymentStatus

Renvoie le statut d'un déploiement : Building, InProgress, Success ou Failure.

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.

ListDeployments

Renvoie l'historique de déploiement pour le groupe.

ResetDeployments

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.

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.

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'objets DeviceDefinitionVersion.

  • Un DefinitionVersionqui contient un ensemble d'entités d'un type donné. Par exemple, un objet DeviceDefinitionVersion contient une liste d'objets Device.

  • 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.

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és Function 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