Avis de fin de support : le 7 octobre 2026, AWS le support pour AWS IoT Greengrass Version 1. Après le 7 octobre 2026, vous ne pourrez plus accéder aux AWS IoT Greengrass V1 ressources. Pour plus d'informations, rendez-vous sur Migrer depuis AWS IoT Greengrass Version 1.
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.
Comment configurer l'accès aux ressources locales à l'aide du Console de gestion AWS
Cette fonctionnalité est disponible pour AWS IoT Greengrass Core v1.3 et versions ultérieures.
Vous pouvez configurer les fonctions Lambda pour accéder en toute sécurité aux ressources locales sur le périphérique central Greengrass hôte. Les ressources locales font référence aux bus et périphériques qui se trouvent physiquement sur l'hôte, ou aux volumes du système de fichiers sur le système d'exploitation hôte. Pour en savoir plus, notamment les exigences et contraintes, consultez Accédez aux ressources locales grâce aux fonctions et connecteurs Lambda.
Ce didacticiel explique comment utiliser le Console de gestion AWS pour configurer l'accès aux ressources locales présentes sur un périphérique AWS IoT Greengrass principal. Il contient les étapes détaillées suivantes :
Pour un didacticiel utilisant le AWS Command Line Interface, consultezComment configurer l'accès aux ressources locales à l'aide du AWS interface de ligne de commande.
Conditions préalables
Pour suivre ce didacticiel, vous devez disposer des éléments suivants :
-
Un groupe Greengrass et un noyau Greengrass (v1.3 ou version ultérieure). Pour savoir comment créer un groupe ou un service principal Greengrass, consultez Démarrage avec AWS IoT Greengrass.
-
Répertoires suivants créés sur l'appareil Greengrass principal :
-
/src/LRAtest
-
/dest/LRAtest
Le propriétaire du groupe de ces répertoires doit disposer d'un accès en lecture et en écriture aux répertoires. Par exemple, pour accorder l'accès, vous pouvez utiliser la commande suivante :
sudo chmod 0775 /src/LRAtest -
Étape 1 : Création d'un package de déploiement de fonctions Lambda
Au cours de cette étape, vous créez un package de déploiement de fonction Lambda, qui est un fichier ZIP contenant le code et les dépendances de la fonction. Vous téléchargez également le SDK AWS IoT Greengrass Core à inclure dans le package en tant que dépendance.
-
Sur votre ordinateur, copiez le script Python suivant dans un fichier local nommé
lraTest.py. Il s'agit de la logique de l'application pour la fonction Lambda.# Demonstrates a simple use case of local resource access. # This Lambda function writes a file test to a volume mounted inside # the Lambda environment under destLRAtest. Then it reads the file and # publishes the content to the AWS IoT LRAtest topic. import sys import greengrasssdk import platform import os import logging # Setup logging to stdout logger = logging.getLogger(__name__) logging.basicConfig(stream=sys.stdout, level=logging.DEBUG) # Create a Greengrass Core SDK client. client = greengrasssdk.client('iot-data') volumePath = '/dest/LRAtest' def function_handler(event, context): try: client.publish(topic='LRA/test', payload='Sent from AWS IoT Greengrass Core.') volumeInfo = os.stat(volumePath) client.publish(topic='LRA/test', payload=str(volumeInfo)) with open(volumePath + '/test', 'a') as output: output.write('Successfully write to a file.') with open(volumePath + '/test', 'r') as myfile: data = myfile.read() client.publish(topic='LRA/test', payload=data) except Exception as e: logger.error('Failed to publish message: ' + repr(e)) return -
À partir de la page de téléchargement du SDK AWS IoT Greengrass Core, téléchargez le SDK AWS IoT Greengrass 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. -
Compressez les éléments suivants dans un fichier nommé
lraTestLambda.zip:-
lraTest.py. Logique de l'application. -
greengrasssdk. Bibliothèque requise pour toutes les fonctions Lambda de Python.
Le
lraTestLambda.zipfichier est le package de déploiement de votre fonction Lambda. Vous êtes maintenant prêt à créer une fonction Lambda et à charger le package de déploiement. -
Étape 2 : Création et publication d'une fonction Lambda
Au cours de cette étape, vous utilisez la AWS Lambda console pour créer une fonction Lambda et la configurer pour utiliser votre package de déploiement. Vous publiez ensuite une version de fonction et créez un alias.
Commencez par créer la fonction Lambda.
-
Dans le Console de gestion AWS, choisissez Services, puis ouvrez la AWS Lambda console.
-
Choisissez Fonctions.
-
Choisissez Créer une fonction, puis choisissez Auteur à partir de zéro.
-
Dans la section Informations de base, spécifiez les valeurs suivantes :
-
Sous Nom de la fonction, saisissez
TestLRA. -
Pour Runtime, sélectionnez Python 3.7.
-
Pour les autorisations, 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é par AWS IoT Greengrass.
-
-
Choisissez Créer une fonction.
-
Téléchargez votre package de déploiement de fonction Lambda et enregistrez le gestionnaire.
-
Dans l'onglet Code, sous Source du code, choisissez Télécharger depuis. Dans la liste déroulante, choisissez le fichier .zip.
-
Choisissez Télécharger, puis choisissez votre package
lraTestLambda.zipde déploiement. Ensuite, choisissez Enregistrer. -
Dans l'onglet Code de la fonction, sous Paramètres d'exécution, choisissez Modifier, puis entrez les valeurs suivantes.
-
Pour Runtime, sélectionnez Python 3.7.
-
Pour Handler, saisissez lra Test.function _handler.
-
-
Choisissez Enregistrer.
Note
Le bouton Test de la AWS Lambda console ne fonctionne pas avec cette fonction. Le SDK AWS IoT Greengrass Core ne contient pas de modules nécessaires pour exécuter vos fonctions Greengrass Lambda de manière indépendante dans la console. AWS Lambda Ces modules (par exemple
greengrass_common) sont fournis aux fonctions après leur déploiement dans votre cœur Greengrass.
Publiez ensuite la première version de votre fonction Lambda. Puis, créez un alias pour la version.
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 à modifier 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 Actions, choisissez Publier une nouvelle version.
-
Dans Description de la version, saisissez
First version, puis choisissez Publish. -
Sur la page de configuration TestLRA: 1, dans le menu Actions, choisissez Create alias (Créer un alias).
-
Sur la page Créer un alias, dans le champ Nom, saisissez
test. Pour Version, entrez 1.Note
AWS IoT Greengrass ne prend pas en charge les alias Lambda pour les versions $LATEST.
-
Choisissez Créer.
Vous pouvez désormais ajouter la fonction Lambda à votre groupe Greengrass.
Étape 3 : ajouter la fonction Lambda au groupe Greengrass
Au cours de cette étape, vous ajoutez la fonction à votre groupe et configurez le cycle de vie de la fonction.
Tout d'abord, ajoutez la fonction Lambda à votre groupe Greengrass.
Dans le volet de navigation de la AWS IoT console, sous Gérer, développez les appareils Greengrass, puis choisissez Groupes (V1).
-
Choisissez le groupe Greengrass dans lequel vous souhaitez ajouter la fonction Lambda.
-
Sur la page de configuration du groupe, choisissez l'onglet Fonctions Lambda.
-
Dans la section Mes fonctions Lambda, choisissez Ajouter.
-
Sur la page Ajouter une fonction Lambda, choisissez la fonction Lambda. Sélectionnez
TestLRA. -
Choisissez la version de la fonction Lambda.
-
Dans la section Configuration de la fonction Lambda, sélectionnez Utilisateur et groupe du système et Conteneurisation de la fonction Lambda.
Configurez ensuite le cycle de vie de la fonction Lambda.
-
Pour Timeout (Délai), sélectionnez 30 secondes.
Important
Les fonctions Lambda qui utilisent des ressources locales (comme décrit dans cette procédure) doivent être exécutées dans un conteneur Greengrass. Sinon, le déploiement échoue si vous essayez de déployer la fonction. Pour plus d'informations, consultez Conteneurisation.
-
Au bas de la page, choisissez Ajouter une fonction Lambda.
Étape 4 : Ajouter une ressource locale au groupe Greengrass
Au cours de cette étape, vous ajoutez une ressource de volume locale au groupe Greengrass et accordez à la fonction un accès en lecture et en écriture à la ressource. Une ressource locale a une portée au niveau du groupe. Vous pouvez autoriser n'importe quelle fonction Lambda du groupe à accéder à la ressource.
-
Sur la page de configuration du groupe, choisissez l'onglet Ressources.
-
Dans la section Ressources locales, choisissez Ajouter.
-
Sur la page Ajouter une ressource locale, utilisez les valeurs suivantes.
-
Sous Resource Name (Nom de la ressource), entrez
testDirectory. -
Pour Type de ressource, choisissez Volume.
-
Dans le champ Local device path, entrez
/src/LRAtest. (Ce chemin doit exister sur le système d'exploitation hôte.)Le chemin du périphérique local est le chemin absolu local de la ressource sur le système de fichiers du périphérique principal. Cet emplacement est en dehors du conteneur dans lequel la fonction s'exécute. Le chemin ne peut pas commencer par
/sys. -
Pour Destination path (Chemin d'accès de destination), entrez
/dest/LRAtest. (Ce chemin doit exister sur le système d'exploitation hôte.)Le chemin de destination est le chemin absolu de la ressource dans l'espace de noms Lambda. Cet emplacement est dans le conteneur dans lequel la fonction s'exécute.
-
Sous Propriétaire du groupe système et autorisation d'accès aux fichiers, sélectionnez Ajouter automatiquement les autorisations de système de fichiers du groupe système propriétaire de la ressource.
L'option Propriétaire du groupe système et autorisation d'accès aux fichiers vous permet d'accorder des autorisations d'accès aux fichiers supplémentaires au processus Lambda. Pour de plus amples informations, veuillez consulter Autorisation d'accès fichier pour le propriétaire du groupe.
-
-
Choisissez Add resource (Ajouter ressource). La page Resources contient la nouvelle ressource testDirectory.
Étape 5 : Ajouter des abonnements au groupe Greengrass
Au cours de cette étape, vous ajoutez deux abonnements au groupe Greengrass. Ces abonnements permettent une communication bidirectionnelle entre la fonction Lambda et. AWS IoT
Tout d'abord, créez un abonnement à la fonction Lambda à laquelle envoyer AWS IoT des messages.
-
Sur la page de configuration du groupe, choisissez l'onglet Abonnements.
-
Choisissez Ajouter.
-
Sur la page Créer un abonnement, configurez la source et la cible comme suit :
-
Pour Type de source, choisissez Fonction Lambda, puis choisissez TestLRA.
-
Pour Type de cible, choisissez Service, puis IoT Cloud.
-
Dans Filtre thématique, saisissez
LRA/test, puis choisissez Créer un abonnement.
-
-
La page Abonnements affiche le nouvel abonnement.
Configurez ensuite un abonnement qui invoque la fonction depuis AWS IoT.
-
Sur la page Abonnements, choisissez Ajouter un abonnement.
-
Sur la page Sélectionnez la source et la cible, configurez la source et la cible comme suit :
-
Pour Type de source, choisissez Fonction Lambda, puis IoT Cloud.
-
Pour Type de cible, choisissez Service, puis choisissez TestLRA.
-
Choisissez Suivant.
-
-
Dans la page Filtrer vos données avec une rubrique, dans Filtre de rubrique, saisissez
invoke/LRAFunction, puis choisissez Suivant. -
Choisissez Finish (Terminer). La page Abonnements affiche les deux abonnements.
Étape 6 : Déployez le AWS IoT Greengrass groupe
Au cours de cette étape, vous déployez la version actuelle de la définition de groupe.
-
Assurez-vous que le AWS IoT Greengrass noyau fonctionne. Dans la fenêtre de terminal de votre Raspberry Pi, exécutez les commandes suivantes, si nécessaire.
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
rootpour/greengrass/ggc/packages/1.11.6/bin/daemon, le démon est en cours d'exécution.Note
La version indiquée dans le chemin dépend de la version du logiciel AWS IoT Greengrass Core installée sur votre appareil principal.
Pour démarrer le démon :
cd /greengrass/ggc/core/ sudo ./greengrassd start
-
Sur la page de configuration du groupe, choisissez Déployer.
Note
Le déploiement échoue si vous exécutez votre fonction Lambda sans conteneurisation et que vous essayez d'accéder aux ressources locales associées.
-
Si vous y êtes invité, dans l'onglet Fonction Lambda, sous Fonctions Lambda du système, sélectionnez Détecteur IP, puis Modifier, puis Détecter automatiquement.
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 elle prend AWS IoT Greengrass é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é, accordez l'autorisation de créer le rôle de service Greengrass et associez-le Compte AWS à votre rôle actuel Région AWS. Ce rôle permet d'accéder AWS IoT Greengrass à vos ressources dans les AWS services.
La page Déploiements indique l'horodatage, l'ID de version et l'état du déploiement. Une fois terminé, le statut du déploiement est Terminé.
Pour bénéficier d'une aide à la résolution des problèmes, consultez Résolution des problèmes AWS IoT Greengrass.
Tester l'accès aux ressources locales
À présent, vous pouvez vérifier si l'accès aux ressources locales est correctement configuré. Pour effectuer le test, abonnez-vous à la rubrique LRA/test et publiez n'importe quel message dans la rubrique invoke/LRAFunction. Le test est réussi si la fonction Lambda envoie la charge utile attendue à. AWS IoT
-
Dans le menu de navigation de la AWS IoT console, sous Test, choisissez le client de test MQTT.
-
Sous S'abonner à une rubrique, dans Filtre thématique, saisissez
LRA/test. -
Dans Informations supplémentaires, pour l'affichage de la charge utile MQTT, sélectionnez Afficher les charges utiles sous forme de chaînes.
-
Choisissez Abonner. Votre fonction Lambda publie dans cette LRA/test rubrique.
-
Sous Publier dans une rubrique, saisissez le nom de la rubrique
invoke/LRAFunction, puis choisissez Publier pour appeler votre fonction Lambda. Le test réussit si la page affiche les trois charges utiles de messages de la fonction.
Le fichier de test créé par la fonction Lambda se trouve dans le /src/LRAtest répertoire du périphérique principal Greengrass. Bien que la fonction Lambda écrive dans un fichier du /dest/LRAtest répertoire, ce fichier n'est visible que dans l'espace de noms Lambda. Vous ne pouvez pas le voir dans un espace de noms Linux régulier. Toute modification du chemin de destination est néanmoins pris en compte dans le chemin source sur le système de fichiers.
Pour bénéficier d'une aide à la résolution des problèmes, consultez Résolution des problèmes AWS IoT Greengrass.