Mise en route avec les connecteurs Greengrass (console) - 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.

Mise en route avec les connecteurs Greengrass (console)

Cette fonction est disponible pourAWS IoT GreengrassCore v1.7 et versions ultérieures.

Ce didacticiel explique comment utiliser la AWS Management Console pour travailler avec les connecteurs.

Utilisez des connecteurs pour accélérer votre cycle de développement. Les connecteurs sont des modules réutilisables prédéfinis qui contribuent à interagir avec les services, les protocoles et les ressources. Ils peuvent vous aider à déployer plus rapidement une logique métier pour les appareils Greengrass. Pour plus d'informations, consultez Intégrer à des services et protocoles à l'aide de connecteurs Greengrass.

Dans ce didacticiel, vous configurez et déployez leNotifications Twilioconnecteur. Le connecteur reçoit des informations du message Twilio en tant que données d'entrée, puis déclenche un SMS Twilio. Le flux de données est illustré dans le diagramme suivant.

Flux de données à partir de la fonction Lambda vers le connecteur Twilio Notifications vers Twilio.

Une fois que vous avez configuré le connecteur, vous créez une fonction Lambda et un abonnement.

  • La fonction évalue les données simulées à partir d'un capteur de température. Elle publie les informations du message Twilio sous certaines conditions dans une rubrique MQTT. Il s'agit de la rubrique à laquelle le connecteur est abonné.

  • L'abonnement autorise la fonction à publier dans la rubrique et le connecteur à recevoir des données provenant de la rubrique.

Le connecteur Twilio Notifications nécessite un jeton d'authentification Twilio pour interagir avec l'API Twilio. Le jeton est un secret de type texte dans AWS Secrets Manager et référencé à partir d'une ressource de groupe. Cela permet à AWS IoT Greengrass de créer une copie locale du secret sur le noyau Greengrass, où il est chiffré et mis à la disposition du connecteur. Pour plus d'informations, consultez Déployer des secrets sur AWS IoT Greengrass Core.

Le didacticiel contient les étapes détaillées suivantes :

Le didacticiel devrait prendre environ 20 minutes.

Prérequis

Pour suivre ce didacticiel, vous devez disposer des éléments suivants :

  • Un groupe Greengrass et un appareil principal (noyau) Greengrass (version 1.9.3 ou ultérieure). Pour savoir comment créer un groupe et un service principal Greengrass, consultez Commencer avec AWS IoT Greengrass. Le didacticiel Mise en route comprend également les étapes d'installation du logiciel AWS IoT Greengrass Core.

  • Python 3.7 installé sur l'appareil principal (noyau) AWS IoT Greengrass.

  • AWS IoT Greengrassdoit être configuré pour prendre en charge les secrets locaux, comme décrit dansExigences relatives aux secrets.

    Note

    Cette exigence inclut l'autorisation d'accès à vos secrets Secrets Manager. Si vous utilisez le rôle de service Greengrass par défaut, Greengrass est autorisé à obtenir les valeurs des secrets dont les noms commencent pargreengrass.

  • Un SID de compte Twilio, un jeton d'authentification et un numéro de téléphone Twilio. Une fois que vous avez créé un projet Twilio, ces valeurs sont disponibles sur le tableau de bord du projet.

    Note

    Vous pouvez utiliser un compte d'essai Twilio. Si vous utilisez un compte d'essai, vous devez ajouter des numéros de téléphone qui ne sont pas des destinataires Twilio à une liste de numéros de téléphone vérifiés. Pour de plus amples informations, veuillez consulterComment utiliser votre compte d'essai Twilio.

Étape 1 : Créer un secret Secrets Manager

Au cours de cette étape, vous utilisez la console AWS Secrets Manager pour créer un secret de type texte pour votre jeton d'authentification Twilio.

  1. Connectez-vous à la console AWS Secrets Manager.

    Note

    Pour plus d'informations sur ce processus, consultezÉtape 1 : Créez et stockez votre secret dansAWS Secrets Managerdans leAWS Secrets ManagerGuide de l'utilisateur.

  2. Choisissez Store a new secret (Stocker un nouveau secret).

  3. UnderChoisissez le type de secret, choisissezOther type of secret (Autre type de secret).

  4. Sous Spécifiez les paires clé/valeur à être stockées pour ce secret, dans l'onglet Texte brut, saisissez votre jeton d'authentification Twilio. Supprimez tout le formatage JSON et entrez uniquement la valeur du jeton.

  5. Keepaws/secretsmanagersélectionné pour la clé de chiffrement, puis choisissezSuivant.

    Note

    Vous n'êtes pas facturé parAWS KMSsi vous utilisez la valeur par défautAWSclé gérée que Secrets Manager crée dans votre compte.

  6. Pour Secret name, entrez greengrass-TwilioAuthToken et choisissez Next.

    Note

    Par défaut, le rôle de service Greengrass permetAWS IoT Greengrasspour obtenir la valeur des secrets dont le nom commence pargreengrass. Pour plus d'informations, consultez les exigences liées aux secrets.

  7. Ce didacticiel n'exige pas la rotation. Par conséquent, choisissez Désactiver la rotation automatique, puis choisissezSuivant.

  8. Dans la page Révision, passez en revue vos paramètres, puis choisissez Stocker.

    Ensuite, vous créez une ressource de secret dans votre groupe Greengrass qui référence le secret.

Étape 2 : Ajouter une ressource de secret à un groupe Greengrass

Au cours de cette étape, vous ajoutez une ressource de secret au groupe Greengrass. Cette ressource est une référence au secret que vous avez créé à l'étape précédente.

  1. DansAWS IoTVolde navigation de la console, sousGérer, développez.Appareils Greengrass, puis choisissezGroups (V1).

  2. Choisissez le groupe auquel vous souhaitez ajouter la ressource de secret.

  3. Sur la page de configuration de groupe, choisissez l'Ressources, puis faites défiler l'écran jusqu'à laSecretsSection. LeSecretsaffiche les ressources de secret qui appartiennent au groupe. Vous pouvez ajouter, modifier et supprimer des ressources de secret à partir de cette section.

    Note

    La console vous permet également de créer une ressource secrète et secrète lorsque vous configurez un connecteur ou une fonction Lambda. Pour ce faire, vous pouvez utiliser leConfigurer les paramètres deou la page de la fonction LambdaRessources.

  4. ChoisissezAdditionsousSecretsSection.

  5. Dans la pageAjouter une ressource de secretpage, entrezMyTwilioAuthTokenpour laNom de la ressource.

  6. PourSecret, choisissezgreengrassTwilioAuthToken.

  7. DansSélectionnez les étiquettes (facultatif), la section AWSCURRENT Le label de mise en scène représente la version la plus récente du secret. Cette étiquette est toujours incluse dans une ressource de secret.

    Note

    Ce didacticiel nécessite la AWSCURRENT étiquette uniquement. Si vous le souhaitez, vous pouvez inclure les étiquettes qui sont requises par votre fonction ou votre connecteur Lambda.

  8. Choisissez Add resource (Ajouter ressource).

Étape 3 : Ajouter un connecteur au groupe Greengrass

Au cours de cette étape, vous configurez les paramètres pour laConnecteur Twilio Notificationset ajoutez-le au groupe.

  1. Sur la page de configuration de groupe, choisissez Connecteurs, puis choisissez Ajouter un connecteur.

  2. Dans la pageAjouter un connecteur, choisissezNotifications Twilio.

  3. Choisissez la version .

  4. DansConfigurationSection:

    • PourRessource du jeton d'authentification Twilio, entrez la ressource que vous avez créée à l'étape précédente.

      Note

      Lorsque vous entrez la ressource, leARN du secret du jeton d'authentification Twilioest remplie pour vous.

    • Pour Par défaut à partir de numéro de téléphone, saisissez votre numéro de téléphone activé Twilio.

    • Pour le SID du compte Twilio, saisissez le SID de votre compte Twilio.

  5. Choisissez Add resource (Ajouter ressource).

Étape 4 : Créer un package de déploiement de fonction Lambda

Pour créer une fonction Lambda, vous devez d'abord créer une fonction Lambdapackage de déploiementqui contient le code de la fonction et les dépendances. Les fonctions Lambda de Greengrass nécessitentAWS IoT GreengrassKit SDK Corepour des tâches telles que la communication avec les messages MQTT dans l'environnement principal et l'accès aux secrets locaux. Ce didacticiel crée une fonction Python, de sorte que vous utilisiez la version Python du SDK dans le package de déploiement.

  1. De laAWS IoT GreengrassKit SDK Corepage de téléchargement, téléchargez leAWS IoT GreengrassSDK Core pour Python sur votre ordinateur.

  2. Décompressez le package téléchargé pour obtenir le kit SDK. Le kit SDK est représenté par le dossier greengrasssdk.

  3. Enregistrez la fonction de code Python suivante dans un fichier local nommé temp_monitor.py.

    import greengrasssdk import json import random client = greengrasssdk.client('iot-data') # publish to the Twilio Notifications connector through the twilio/txt topic def function_handler(event, context): temp = event['temperature'] # check the temperature # if greater than 30C, send a notification if temp > 30: data = build_request(event) client.publish(topic='twilio/txt', payload=json.dumps(data)) print('published:' + str(data)) print('temperature:' + str(temp)) return # build the Twilio request from the input data def build_request(event): to_name = event['to_name'] to_number = event['to_number'] temp_report = 'temperature:' + str(event['temperature']) return { "request": { "recipient": { "name": to_name, "phone_number": to_number, "message": temp_report } }, "id": "request_" + str(random.randint(1,101)) }
  4. Compressez les éléments suivants dans un fichier nommé temp_monitor_python.zip. Lorsque vous créez le fichier zip, insérez uniquement le code et ses dépendances, pas le dossier dans lequel il se trouve.

    • temp_monitor.py. Logique d'application.

    • greengrasssdk. Bibliothèque requise pour toutes les fonctions Lambda Python Greengrass qui publient des messages MQTT.

    Il s'agit du package de déploiement de votre fonction Lambda.

Maintenant, créez une fonction Lambda qui utilise le package de déploiement.

Étape 5 : Créez une fonction Lambda dans laAWS Lambdaconsole

Au cours de cette étape, vous utilisez laAWS Lambdapour créer une fonction Lambda et pour la configurer afin qu'elle utilise votre package de déploiement. Vous publiez ensuite une version de fonction et créez un alias.

  1. Créez d'abord la fonction Lambda.

    1. Dans AWS Management Console, choisissez Services et ouvrez la console AWS Lambda.

    2. ChoisissezCréation de fonctionpuis choisissezCréer à partir de zéro.

    3. Dans la section Informations de base, spécifiez les valeurs suivantes :

      • Sous Nom de la fonction, saisissez TempMonitor.

      • Pour Runtime, sélectionnez Python 3.7.

      • PourAutorisations, conservez le paramètre par défaut. Cela crée un rôle d'exécution qui accorde des autorisations Lambda de base. Ce rôle n'est pas utilisé parAWS IoT Greengrass.

    4. Dans le bas de la page, choisissez Create function.

  2. Enregistrez ensuite le gestionnaire et téléchargez le package de déploiement de votre fonction Lambda.

    1. Dans la pageCodeonglet, sousSource de code, choisissezChargement à partir de. Dans le menu déroulant, choisissezfichier .zip.

      Le menu déroulant Charger depuis avec le fichier .zip en surbrillance.
    2. ChoisissezCharger, puis choisissez votretemp_monitor_python.zippackage de déploiement. Ensuite, choisissez Enregistrer.

    3. Dans la pageCodepour la fonction, sousParamètres d'exécution, choisissezModifier, puis entrez les valeurs suivantes.

      • Pour Runtime, sélectionnez Python 3.7.

      • Pour Handler (Gestionnaire), entrez temp_monitor.function_handler.

    4. Choisissez Save (Enregistrer).

      Note

      LeTestsur la pageAWS Lambdala console ne fonctionne pas avec cette fonction. LeAWS IoT GreengrassLe SDK principal ne contient pas de modules nécessaires pour exécuter vos fonctions Greengrass Lambda indépendamment dans leAWS Lambdaconsole Ces modules (par exemple,greengrass_common) sont fournis aux fonctions après leur déploiement dans votre cœur Greengrass.

  3. Publiez maintenant la première version de votre fonction Lambda et créez unalias pour la version.

    Note

    Les groupes Greengrass peuvent référencer une fonction Lambda par alias (recommandé) ou par version. L'utilisation d'un alias facilite la gestion des mises à jour de code, car vous n'avez pas besoin de changer votre table d'abonnement ou votre définition de groupe lorsque le code de fonction est mis à jour. Au lieu de cela, il vous suffit de pointer l'alias vers la nouvelle version de la fonction.

    1. Dans le menu Actions, sélectionnez Publier une nouvelle version.

    2. Dans Description de la version, saisissez First version, puis choisissez Publish.

    3. Dans la pageTempMonitor : 1page de configuration, depuis la pageActions, choisissez, choisissezCréer un alias.

    4. Sur la page Create a new alias, utilisez les valeurs suivantes :

      • Pour Name (Nom), saisissez GG_TempMonitor.

      • Pour Version, choisissez 1.

      Note

      AWS IoT Greengrassne prend pas en charge les alias Lambda pour$LATESTversions.

    5. Sélectionnez Create (Créer).

Vous pouvez désormais ajouter la fonction Lambda à votre groupe Greengrass.

Étape 6 : Ajouter une fonction Lambda au groupe Greengrass

Au cours de cette étape, vous ajoutez la fonction Lambda au groupe, puis configurez son cycle de vie et ses variables d'environnement. Pour plus d'informations, consultez Contrôle de l'exécution des fonctions Greengrass Lambda à l'aide d'une configuration spécifique au groupe.

  1. Sur la page de configuration de groupe, choisissez l'Fonctions LambdaOnglet.

  2. UnderFonctions Lambda, choisissezAddition.

  3. Dans la pageAjouter une fonction Lambda, choisissezTempMonitorpour votre fonction Lambda

  4. PourVersion de la fonction Lambda, choisissezAlias : GG_TempMonitor.

  5. ChoisissezAjouter une fonction Lambda.

Étape 7 : Ajouter des abonnements au groupe Greengrass

Au cours de cette étape, vous allez ajouter un abonnement qui permet à la fonction Lambda d'envoyer des données d'entrée au connecteur. Le connecteur définit les rubriques MQTT auxquelles il est abonné, de sorte que cet abonnement utilise l'une des rubriques. Il s'agit de la même rubrique dans laquelle l'exemple de fonction effectue la publication.

Dans le cadre de ce didacticiel, vous pouvez également créer des abonnements qui autorisent la fonction à recevoir des relevés simulés de température de AWS IoT et autorisent AWS IoT à recevoir les informations d'état du connecteur.

  1. Sur la page de configuration de groupe, choisissez l'Subscriptions, puis choisissezAjouter un abonnement.

  2. Dans la pageCréer un abonnement, configurez la source et la cible, comme suit :

    1. PourType de source, choisissezFonction Lambda, puis choisissezTempMonitor.

    2. PourTarget type (Type de cible), choisissezConnecteur, puis choisissezNotifications Twilio.

  3. PourFiltre de rubriques, choisisseztwilio/txt.

  4. Choisissez Create subscription (Créer un abonnement).

  5. Répétez les étapes 1 à 4 pour créer un abonnement qui permet à AWS IoT de publier des messages dans la fonction.

    1. PourType de source, choisissezService, puis choisissezCloud IoT.

    2. PourSélectionnez une cible, choisissezFonction Lambda, puis choisissezTempMonitor.

    3. Pour Filtre de rubrique, tapez temperature/input.

  6. Répétez les étapes 1 à 4 pour créer un abonnement qui permet au connecteur de publier des messages dans AWS IoT.

    1. PourType de source, choisissezConnecteur, puis choisissezNotifications Twilio.

    2. PourTarget type (Type de cible), choisissezService, puis choisissezCloud IoT.

    3. Pour Topic filter, twilio/message/status est entré pour vous. Il s'agit de la rubrique prédéfinie dans laquelle le connecteur effectue la publication.

Étape 8 : Déploiement du groupe Greengrass

Déployer le groupe sur l'appareil principal (noyau)

  1. Vérifiez les éléments suivants :AWS IoT Greengrasscore est en cours d'exécution. Dans la fenêtre de terminal de votre Raspberry Pi, exécutez les commandes suivantes, si nécessaire.

    1. Pour vérifier si le démon est en cours d'exécution :

      ps aux | grep -E 'greengrass.*daemon'

      Si la sortie contient une entrée root pour /greengrass/ggc/packages/ggc-version/bin/daemon, le démon est en cours d'exécution.

      Note

      La version du chemin d'accès dépend de la version du logiciel AWS IoT Greengrass Core installée sur votre appareil principal.

    2. Pour démarrer le démon :

      cd /greengrass/ggc/core/ sudo ./greengrassd start
  2. Sur la page de configuration du groupe, choisissezDéploiement.

    1. DansFonctions Lambda, sous l'ongletFonctions Lambdasection, sélectionnezDétecteur IPet choisissezModifier.

    2. DansModifier les paramètres du détecteur IP, sélectionnezDétecter et remplacer automatiquement les points de terminaison des courtiers MQTT.

    3. Choisissez Save (Enregistrer).

      Les appareils peuvent ainsi acquérir automatiquement des informations de connectivité pour le noyau, telles que l'adresse IP, le DNS et le numéro de port. La détection automatique est recommandée, mais AWS IoT Greengrass prend également en charge les points de terminaison spécifiés manuellement. Vous êtes uniquement invité à indiquer la méthode de découverte lors du déploiement initial du groupe.

      Note

      Si vous y êtes invité, autorisez la création deRôle de service Greengrasset associez-le à votreCompte AWSdans les actuelsRégion AWS. Ce rôle permet àAWS IoT Greengrasspour accéder à vos ressources dansAWSServices .

      La page Déploiements indique l'horodatage, l'ID de version et l'état du déploiement. Une fois terminé, le statut affiché pour le déploiement doit afficher l'état du déploiement estTerminé.

      Pour bénéficier d'une aide à la résolution des problèmes, consultez Résolution des problèmes de AWS IoT Greengrass.

Note

Un groupe Greengrass peut contenir une seule version du connecteur à la fois. Pour de plus amples informations sur la mise à niveau d'une version de connecteur, veuillez consulter Mise à niveau des versions du connecteur.

Tester la solution

  1. Dans la pageAWS IoTpage d'accueil de la console, choisissezTest.

  2. PourS'abonner à la rubrique, utilisez les valeurs suivantes, puis choisissezS'abonner. Le connecteur Twilio Notifications publie des informations de statut dans cette rubrique.

    Propriété

    Valeur

    rubrique abonnement

    twilio/message/status

    Affichage de la charge utile MQTT

    Affichage des charges utiles sous forme de chaînes

  3. PourPublier dans la rubrique, utilisez les valeurs suivantes, puis choisissezPublierpour appeler la fonction.

    Propriété

    Valeur

    Sujet

    temperature/input

    Message

    Remplaceznom-du destinataireavec un nom etrecipient-phone-numberavec le numéro de téléphone du destinataire du SMS. Exemple : +12345000000

    { "to_name": "recipient-name", "to_number": "recipient-phone-number", "temperature": 31 }

    Si vous utilisez un compte d'essai, vous devez ajouter des numéros de téléphone qui ne sont pas des destinataires Twilio à une liste de numéros de téléphone vérifiés. Pour de plus amples informations, veuillez consulterVerify votre numéro de téléphone.

    En cas de réussite, le destinataire reçoit le SMS et la console affiche le statut success depuis les données de sortie.

    Maintenant, passez la temperature dans le message d'entrée à 29 et publiez. Étant donné que cette valeur est inférieure à 30, le TempMonitor ne déclenche pas de message Twilio.

Consulter aussi