Intégrer à des services et protocoles à l'aide de connecteurs Greengrass - 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.

Intégrer à des services et protocoles à l'aide de connecteurs Greengrass

Cette fonction est disponible uniquement pour lesAWS IoT GreengrassCore v1.7 et version 1.7.

Connecteurs dansAWS IoT Greengrasssont des modules prédéfinis qui rendent plus efficace l'interaction avec l'infrastructure locale, les protocoles de périphérique,AWSet d'autres services cloud. En utilisant des connecteurs, vous pouvez consacrer moins de temps à apprendre des nouveaux protocoles et des API et consacrer plus de temps à lalogiquequi compte pour votre entreprise.

Le schéma suivant montre où les connecteurs peuvent s'intégrer dans le documentAWS IoT Greengrass paysage.

Les connecteurs se connectent aux appareils, services et ressources locales.

De nombreux connecteurs utilisent des messages MQTT pour communiquer avec les appareils clients et les fonctions Lambda Greengrass du groupe ou avecAWS IoTet le service shadow local. Dans l'exemple suivant, le connecteur Twilio Notifications reçoit des messages MQTT à partir d'une fonction Lambda définie par l'utilisateur, utilise une référence locale d'un secret à partir deAWS Secrets Manageret appelle l'API Twilio.

Un connecteur recevant un message MQTT à partir d'une fonction Lambda et appelant un service.

Pour accéder aux didacticiel permettant de créer cette solution, consultez Mise en route avec les connecteurs Greengrass (console) et Démarrage avec les connecteurs Greengrass (CLI).

Les connecteurs Greengrass peuvent vous aider à développer des fonctionnalités de périphérique ou à créer des appareils à usage unique. À l'aide de connecteurs, vous pouvez :

  • Mettre en œuvre une logique métier réutilisable.

  • Interagir avec les services de cloud et locaux, y comprisAWSet les services tiers.

  • Intégrer et traiter des données d'appareil.

  • Activer device-to-device les appels à des rubriques MQTT et les fonctions Lambda définies par l'utilisateur.

AWSfournit un ensemble d'exemples de connecteurs Greengrass qui simplifient les interactions avec les services courants et les sources de données. Ces modules réutilisables prédéfinis activent des scénarios pour la journalisation et les diagnostics, le réapprovisionnement, le traitement des données industrielles, l'alarme et la messagerie. Pour plus d'informations, consultez AWS- connecteurs Greengrass fournis.

Prérequis

Pour utiliser des connecteurs, gardez ces points à l'esprit :

  • Chaque connecteur que vous utilisez est soumis à des exigences que vous devez respecter. Ces exigences peuvent inclure la version minimale du logiciel AWS IoT Greengrass Core, les conditions préalables pour l'appareil, les autorisations requises et les limites. Pour plus d'informations, consultez AWS- connecteurs Greengrass fournis.

  • Un groupe Greengrass peut contenir seulement une seule instance configurée d'un connecteur donné. Cependant, vous pouvez utiliser l'instance dans plusieurs abonnements. Pour plus d'informations, consultez Paramètres de configuration.

  • Lorsque la conteneurisation par défaut du groupe Greengrass est définie sur No container (Aucun conteneur), les connecteurs du groupe doivent s'exécuter sans conteneurisation. Pour rechercher des connecteurs prenant en charge le mode No container (Aucun conteneur) veuillez consulter AWS- connecteurs Greengrass fournis.

Utilisation des connecteurs Greengrass

Connecteur Aest un type de composant de groupe. Comme les autres composants de groupe, tels que les appareils clients et les fonctions Lambda définies par l'utilisateur, vous ajoutez des connecteurs à des groupes, vous configurez leurs paramètres et vous les déployez dans leAWS IoT Greengrasscore. Connecteurs utilisés dans l'environnement principal.

Vous pouvez déployer certains connecteurs en tant que simples applications autonomes. Par exemple, le connecteur Device Defender lit les métriques du système à partir de l'appareil principal et les envoie àAWS IoT Device Defenderpour analyse.

Vous pouvez ajouter d'autres connecteurs en tant que blocs de construction dans des solutions plus volumineuses. La solution de l'exemple suivant utilise le connecteur de l'adaptateur de protocole Modbus-RTU pour traiter les messages à partir de capteurs et le connecteur Twilio Notifications pour déclencher des messages Twilio.

Flux de données de la fonction Lambda vers le connecteur de l'adaptateur de protocole Modbus-RTU vers la fonction Lambda vers le connecteur Twilio Notifications vers Twilio.

Les solutions incluent souvent les fonctions Lambda définies par l'utilisateur qui restent en regard des connecteurs et traitent les données que le connecteur envoie ou reçoit. Dans cet exemple, le document TempMonitorreçoit des données de Modbus-RTU Protocol Adapter, exécute une logique métier, puis envoie les données à Twilio Notifications.

Pour créer et déployer une solution, vous suivez cette procédure générale :

  1. Mappez les flux de données de haut niveau. Identifiez les sources de données, les canaux de données, les services, les protocoles et les ressources dont vous avez besoin. Dans l'exemple de solution, cela inclut les données sur le protocole Modbus RTU, le port série physique Modbus et Twilio.

  2. Identifiez les connecteurs à inclure dans la solution, et ajoutez-les à votre groupe. L'exemple de solution utilise Modbus-RTU Protocol Adapter et Twilio Notifications. Pour vous aider à trouver les connecteurs qui s'appliquent à votre scénario, et pour en savoir plus sur leurs besoins individuels, consultez AWS- connecteurs Greengrass fournis.

  3. Déterminez si les fonctions Lambda définies par l'utilisateur, les périphériques clients ou les ressources sont nécessaires, puis créez-les et ajoutez-les au groupe. Cela peut inclure des fonctions qui contiennent une logique métier ou traitent des données dans un format requis par une autre entité dans la solution. L'exemple de solution utilise des fonctions pour envoyer des demandes RTU Modbus et lancer des notifications Twilio. Il inclut également une ressource d'appareil local pour le port série Modbus RTU et une ressource de secret pour le jeton d'authentification de Twilio.

    Note

    Les ressources de secret référencent des mots de passe, des jetons et d'autres secrets de AWS Secrets Manager. Les secrets peuvent être utilisés par les connecteurs et les fonctions Lambda pour s'authentifier auprès des services et des applications. Par défaut, AWS IoT Greengrass peut accéder aux secrets dont les noms commencent par « greengrass- ». Pour plus d'informations, consultez Déployer des secrets sur AWS IoT Greengrass Core.

  4. Créez des abonnements qui autorisent les entités de la solution à échanger des messages MQTT. Si un connecteur est utilisé dans un abonnement, le connecteur et la source ou la cible du message doivent utiliser la syntaxe de rubriques prédéfinie prise en charge par le connecteur. Pour plus d'informations, consultez Entrées et sorties.

  5. Déployer le groupe vers le noyau Greengrass.

Pour plus d'informations sur la création et le déploiement d'un connecteur, consultez les didacticiels suivants :

Paramètres de configuration

Beaucoup de connecteurs fournissent des paramètres qui vous permettent de personnaliser le comportement ou la sortie. Ces paramètres sont utilisés lors de l'initialisation, de l'exécution, ou à d'autres moments dans le cycle de vie du connecteur.

Les types de paramètres et leur utilisation varient en fonction du connecteur. Par exemple, le connecteur SNS dispose d'un paramètre qui configure la valeur par défaut de la rubrique SNS et Device Defender dispose d'un paramètre qui configure la fréquence de collecte des données.

Une version de groupe peut contenir plusieurs connecteurs, mais une seule instance d'un connecteur donné à la fois. Cela signifie que chaque connecteur du groupe ne peut avoir qu'une seule configuration active. Cependant, l'instance de connecteur peut être utilisée dans plusieurs abonnements dans le groupe. Par exemple, vous pouvez créer des abonnements qui autorisent de nombreux appareils à envoyer des données au connecteur Kinesis Firehose.

Paramètres utilisés pour accéder aux ressources d'un groupe

Les connecteurs Greengrass utilisent des ressources de groupe pour accéder au système de fichiers, aux ports, aux périphériques et aux autres ressources locales sur l'appareil principal. Si un connecteur nécessite l'accès à une ressource de groupe, il fournit alors des paramètres de configuration associés.

Les ressources de groupe comprennent :

  • Des ressources locales. Répertoires, fichiers, ports, connecteurs et périphériques qui sont présents sur l'appareil principal Greengrass.

  • Des ressources de Machine Learning. Modèles de machine Learning qui sont formés dans le cloud et déployés sur le noyau pour l'inférence locale.

  • Des ressources de secret. Copies locales et chiffrées de mots de passe, clés, jetons d'accès ou texte arbitraire à partir de AWS Secrets Manager. Les connecteurs peuvent accéder en toute sécurité à ces secrets locaux et les utiliser pour s'authentifier auprès des services ou de l'infrastructure locale.

Par exemple, les paramètres de Device Defender autorisent l'accès aux métriques du système sur l'hôte./procet les paramètres des notifications Twilio de activent l'accès à un jeton d'authentification Twilio stocké localement.

Mise à jour des paramètres du connecteur

Les paramètres sont configurés lorsque le connecteur est ajouté à un groupe Greengrass. Vous pouvez modifier les valeurs des paramètres après l'ajout du connecteur.

  • Dans la console  : Sur la page de configuration de groupe, ouvrezConnecteurs, et dans le menu contextuel du connecteur, choisissezModifier.

    Note

    Si le connecteur utilise une ressource de secret qui est ultérieurement modifiée pour référencer un autre secret, vous devez modifier les paramètres du connecteur et confirmer la modification.

  • Dans l'API : Créez une autre version du connecteur qui définit la nouvelle configuration.

    LeAWS IoT GreengrassL'API utilise des versions pour gérer les groupes. Les versions étant immuables, vous devez créer des versions de composants nouveaux ou mis à jour pour ajouter ou modifier des composants de groupetels que les appareils clients, les fonctions et les ressources du groupe. Ensuite, vous devez créer et déployer une version de groupe qui contient la version cible de chaque composant.

Lorsque vous apportez des modifications à la configuration du connecteur, vous devez déployer le groupe pour propager les modifications au noyau.

Entrées et sorties

De nombreux connecteurs Greengrass peuvent communiquer avec d'autres entités par l'envoi et la réception de messages MQTT. Cette communication est contrôlée par les abonnements qui permettent à un connecteur d'échanger des données avec des fonctions Lambda, des appareils clients et d'autres connecteurs du groupe Greengrass, ou avecAWS IoTet le service shadow local. Pour autoriser cette communication, vous devez créer des abonnements dans le groupe auquel le connecteur appartient. Pour plus d'informations, consultez Abonnements gérés dans le flux de travail de messagerie MQTT.

Les connecteurs peuvent être des abonnés aux messages, des éditeurs de messages ou les deux. Chaque connecteur définit les rubriques MQTT qu'il publie ou auquel il s'abonne. Ces rubriques prédéfinies doivent être utilisées dans les abonnements où le connecteur est une source ou une cible de message. Pour les didacticiels qui incluent des étapes pour la configuration d'abonnements d'un connecteur, consultez Mise en route avec les connecteurs Greengrass (console) et Démarrage avec les connecteurs Greengrass (CLI).

Note

De nombreux connecteurs intègrent également des modes de communication pour interagir avec les services de cloud ou locaux. Ils varient selon le connecteur et peuvent exiger que vous configuriez des paramètres ou que vous ajoutiez des autorisations au rôle de groupe. Pour plus d'informations sur les exigences de connecteur, consultez AWS- connecteurs Greengrass fournis.

Rubriques d'entrée

La plupart des connecteurs reçoivent des données en entrée sur les rubriques MQTT. Certains connecteurs s'abonnent à plusieurs rubriques pour les données d'entrée. Par exemple, le connecteur Serial Stream prend en charge deux rubriques :

  • serial/+/read/#

  • serial/+/write/#

Pour ce connecteur, les demandes de lecture et écriture sont envoyées à la rubrique correspondante. Lorsque vous créez des abonnements, assurez-vous d'utiliser la rubrique qui correspond à votre implémentation.

Les caractères + et # des exemples précédents sont des caractères génériques. Ces caractères génériques autorisent les abonnés à recevoir des messages sur plusieurs rubriques et les éditeurs à personnaliser les rubriques dans lesquelles ils publient.

  • Le caractère générique + peut apparaître n'importe où dans la hiérarchie des rubriques. Il peut être remplacé par un élément de la hiérarchie.

    Par exemple, pour la rubrique sensor/+/input, les messages peuvent être publiés dans les rubriques sensor/id-123/input, mais pas dans sensor/group-a/id-123/input.

  • Le caractère générique # peut apparaître uniquement à la fin de la hiérarchie des rubriques. Il peut être remplacé par un zéro ou plusieurs éléments de hiérarchie.

    Par exemple, pour une rubrique sensor/#, les messages peuvent être publiés dans sensor/, sensor/id-123 et sensor/group-a/id-123 mais pas dans sensor.

Les caractères génériques sont valides uniquement lorsque vous vous abonnez à des rubriques. Les messages ne peuvent pas être publiés dans des rubriques qui contiennent des caractères génériques. Vérifiez la documentation du connecteur pour plus d'informations sur ses exigences de rubriques d'entrée ou de sortie. Pour plus d'informations, consultez AWS- connecteurs Greengrass fournis.

Prise en charge de la conteneurisation

Par défaut, la plupart des connecteurs s'exécutent sur le noyau Greengrass dans un environnement d'exécution isolé géré par AWS IoT Greengrass. Ces environnements d'exécution, appelés conteneurs, assurent l'isolement entre les connecteurs et le système hôte, ce qui offre plus de sécurité pour l'hôte et le connecteur.

Cependant, cette conteneurisation Greengrass n'est pas prise en charge dans certains environnements, par exemple en cas d'exécution deAWS IoT Greengrassdans un conteneur Docker ou sur des noyaux Linux plus anciens sans cgroups. Dans ces environnements, les connecteurs doivent s'exécuter en mode Aucun conteneur. Pour rechercher des connecteurs prenant en charge le mode No container (Aucun conteneur) veuillez consulter AWS- connecteurs Greengrass fournis. Certains connecteurs s'exécutent en mode natif et certains connecteurs vous permettent de définir le mode d'isolement.

Vous pouvez également définir le mode d'isolement sur Aucun conteneur dans les environnements prenant en charge la conteneurisation Greengrass, mais nous vous recommandons d'utiliser le mode conteneur Greengrass lorsque cela est possible.

Note

Le paramètre de conteneurisation par défaut pour le groupe Greengrass ne s'applique pas aux connecteurs.

Mise à niveau des versions du connecteur

Les fournisseurs de connecteurs peuvent publier de nouvelles versions d'un connecteur qui ajoutent des fonctions, corrigent des problèmes ou améliorent les performances. Pour de plus amples informations sur les versions disponibles et les modifications associées, veuillez consulter la documentation de chaque connecteur.

DansAWS IoT, vous pouvez rechercher de nouvelles versions pour les connecteurs de votre groupe Greengrass.

  1. DansAWS IoTVolet de navigation de la console sousGérer, DéveloppezAppareils Greengrass, puisGroupes (V1).

  2. UnderGroupes Greengrass, choisissez votre groupe.

  3. Choisissez Connectors (Connecteurs) pour afficher les connecteurs du groupe.

    Si une nouvelle version est disponible pour un connecteur, un bouton Available (Disponible) apparaît dans la colonne Upgrade (Mise à niveau).

  4. Pour mettre à niveau la version du connecteur :

    1. À partir de la page Connectors (Connecteurs), dans la colonne Upgrade (Mise à niveau), choisissez Available (Disponible). La page Upgrade connector (Mettre à niveau le connecteur) s'ouvre et affiche les paramètres actuels, le cas échéant.

      Choisissez la nouvelle version du connecteur, définissez les paramètres selon vos besoins, puis choisissez Upgrade (Mettre à niveau).

    2. Sur la page Subscriptions (Abonnements), ajoutez de nouveaux abonnements dans le groupe pour remplacer ceux qui utilisent le connecteur en tant que source ou cible. Ensuite, supprimez les anciens abonnements.

      Les abonnements font référence aux connecteurs par version, de sorte qu'ils deviennent non valides si vous modifiez la version du connecteur dans le groupe.

    3. Dans le menu Actions choisissez Deploy (Déployer) pour déployer vos modifications sur le noyau.

Pour mettre à niveau un connecteur à partir de l'API AWS IoT Greengrass, créez et déployez une version de groupe qui inclut le connecteur mis à jour et les abonnements. Utilisez le même processus que lorsque vous ajoutez un connecteur à un groupe. Pour obtenir des instructions détaillées qui vous montrent comment utiliser le documentAWS CLIpour configurer et déployer un exemple de connecteur Twilio Notifications, consultezDémarrage avec les connecteurs Greengrass (CLI).

Journalisation des connecteurs

Les connecteurs Greengrass contiennent des fonctions Lambda qui écrivent des événements et des erreurs dans les journaux Greengrass. En fonction des paramètres de votre groupe, les journaux sont écrits dans CloudWatch Les journaux, le système de fichiers local, ou les deux. Les journaux des connecteurs incluent l'ARN de la fonction correspondante. L'ARN dans l'exemple suivant constitue la réponse ARN du connecteur Kinesis Firehose :

arn:aws:lambda:aws-region:account-id:function:KinesisFirehoseClient:1

Par défaut, la configuration de la journalisation écrit des journaux de niveau information dans le système de fichiers à l'aide de la structure de répertoire suivante :

greengrass-root/ggc/var/log/user/region/aws/function-name.log

Pour plus d'informations sur la journalisation Greengrass, consultezSurveillance avec les journaux AWS IoT Greengrass.