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.
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.
-
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.
-
Choisissez Store a new secret (Stocker un nouveau secret).
-
UnderChoisissez le type de secret, choisissezOther type of secret (Autre type de secret).
-
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.
-
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.
-
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.
-
Ce didacticiel n'exige pas la rotation. Par conséquent, choisissez Désactiver la rotation automatique, puis choisissezSuivant.
-
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.
DansAWS IoTVolde navigation de la console, sousGérer, développez.Appareils Greengrass, puis choisissezGroups (V1).
-
Choisissez le groupe auquel vous souhaitez ajouter la ressource de secret.
-
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.
-
ChoisissezAdditionsousSecretsSection.
-
Dans la pageAjouter une ressource de secretpage, entrez
MyTwilioAuthToken
pour laNom de la ressource. -
PourSecret, choisissezgreengrassTwilioAuthToken.
-
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.
-
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.
-
Sur la page de configuration de groupe, choisissez Connecteurs, puis choisissez Ajouter un connecteur.
-
Dans la pageAjouter un connecteur, choisissezNotifications Twilio.
-
Choisissez la version .
-
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.
-
-
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.
-
De laAWS IoT GreengrassKit SDK Corepage de téléchargement, téléchargez leAWS IoT GreengrassSDK Core pour Python sur votre ordinateur.
-
Décompressez le package téléchargé pour obtenir le kit SDK. Le kit SDK est représenté par le dossier
greengrasssdk
. -
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)) }
-
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.
-
Créez d'abord la fonction Lambda.
-
Dans AWS Management Console, choisissez Services et ouvrez la console AWS Lambda.
-
ChoisissezCréation de fonctionpuis choisissezCréer à partir de zéro.
-
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.
-
-
Dans le bas de la page, choisissez Create function.
-
-
Enregistrez ensuite le gestionnaire et téléchargez le package de déploiement de votre fonction Lambda.
-
Dans la pageCodeonglet, sousSource de code, choisissezChargement à partir de. Dans le menu déroulant, choisissezfichier .zip.
-
ChoisissezCharger, puis choisissez votre
temp_monitor_python.zip
package de déploiement. Ensuite, choisissez Enregistrer. -
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
.
-
-
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.
-
-
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.
-
Dans la pageTempMonitor : 1page de configuration, depuis la pageActions, choisissez, choisissezCréer un alias.
-
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.
-
-
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.
-
Sur la page de configuration de groupe, choisissez l'Fonctions LambdaOnglet.
-
UnderFonctions Lambda, choisissezAddition.
-
Dans la pageAjouter une fonction Lambda, choisissezTempMonitorpour votre fonction Lambda
-
PourVersion de la fonction Lambda, choisissezAlias : GG_TempMonitor.
-
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.
-
Dans la pageCréer un abonnement, configurez la source et la cible, comme suit :
-
PourType de source, choisissezFonction Lambda, puis choisissezTempMonitor.
-
PourTarget type (Type de cible), choisissezConnecteur, puis choisissezNotifications Twilio.
-
-
PourFiltre de rubriques, choisissez
twilio/txt
. -
Choisissez Create subscription (Créer un abonnement).
-
Répétez les étapes 1 à 4 pour créer un abonnement qui permet à AWS IoT de publier des messages dans la fonction.
-
PourType de source, choisissezService, puis choisissezCloud IoT.
-
PourSélectionnez une cible, choisissezFonction Lambda, puis choisissezTempMonitor.
-
Pour Filtre de rubrique, tapez
temperature/input
.
-
-
Répétez les étapes 1 à 4 pour créer un abonnement qui permet au connecteur de publier des messages dans AWS IoT.
-
PourType de source, choisissezConnecteur, puis choisissezNotifications Twilio.
-
PourTarget type (Type de cible), choisissezService, puis choisissezCloud IoT.
-
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)
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
-
Dans la pageAWS IoTpage d'accueil de la console, choisissezTest.
-
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
-
PourPublier dans la rubrique, utilisez les valeurs suivantes, puis choisissezPublierpour appeler la fonction.
Propriété
Valeur
Sujet
temperature/input
Message
Remplacez
nom-du destinataire
avec un nom etrecipient-phone-number
avec 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.