

Avis de fin de support : le 7 octobre 2026, AWS le support de. 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](https://docs.aws.amazon.com/greengrass/v2/developerguide/migrate-from-v1.html).

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.

# Module 6 : Accès à d'autres AWS services
<a name="module6"></a>

Ce module avancé vous montre comment les AWS IoT Greengrass cœurs peuvent interagir avec d'autres AWS services dans le cloud. Il s'appuie sur l'exemple de feu de signalisation du [module 5](module5.md) et ajoute une fonction Lambda qui traite les états fantômes et télécharge un résumé dans une table Amazon DynamoDB.

![\[AWS IoT connecté à un AWS IoT Greengrass noyau, qui est connecté à un dispositif interrupteur et à une ombre de feu de signalisation. L'ombre du feu de signalisation est connectée à une fonction Lambda, qui est connectée à une table DynamoDB.\]](http://docs.aws.amazon.com/fr_fr/greengrass/v1/developerguide/images/gg-get-started-089.5.png)


Avant de commencer, exécutez le script de [configuration de l'appareil Greengrass](quick-start.md) ou assurez-vous que vous avez effectué le [Module 1](module1.md) et le [Module 2](module2.md). Vous devriez également effectuer le [module 5](module5.md). Vous n'avez pas besoin d'autres composants ou appareils.

Ce module dure environ 30 minutes.

**Note**  
Ce module crée et met à jour une table dans DynamoDB. Bien que la plupart des opérations soient de petite envergure et relèvent du niveau gratuit d'Amazon Web Services, l'exécution de certaines étapes de ce module peut entraîner des frais sur votre compte. Pour plus d'informations sur la tarification, consultez la documentation de tarification de [DynamoDB](https://aws.amazon.com/dynamodb/pricing/).

**Topics**
+ [Configuration du rôle de groupe](config-iam-roles.md)
+ [Créer et configurer la fonction Lambda](create-config-lambda.md)
+ [Configuration des abonnements](config_subs.md)
+ [Test des communications](comms-test.md)

# Configuration du rôle de groupe
<a name="config-iam-roles"></a>

Le rôle de groupe est un [rôle IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) que vous créez et associez à votre groupe Greengrass. Ce rôle contient les autorisations que les fonctions Lambda déployées (et d'autres AWS IoT Greengrass fonctionnalités) utilisent pour accéder AWS aux services. Pour de plus amples informations, veuillez consulter [Rôle de groupe Greengrass](group-role.md).

Vous devez suivre les étapes de haut niveau suivantes pour créer un rôle de groupe dans la console IAM.

1. Créez une stratégie qui autorise ou refuse des actions sur une ou plusieurs ressources.

1. Créez un rôle qui utilise le service Greengrass en tant qu'entité approuvée.

1. Attachez votre stratégie au rôle.

Ensuite, dans la AWS IoT console, vous ajoutez le rôle au groupe Greengrass.

**Note**  
Un groupe Greengrass possède un rôle de groupe. Si vous souhaitez ajouter des autorisations, vous pouvez modifier les stratégies attachées ou joindre d'autres stratégies.

 

Dans le cadre de ce didacticiel, vous allez créer une politique d'autorisation qui permet de décrire, de créer et de mettre à jour des actions sur une table Amazon DynamoDB. Ensuite, vous attachez la stratégie à un nouveau rôle et associez le rôle à votre groupe Greengrass.

Créez d'abord une politique gérée par le client qui accorde les autorisations requises par la fonction Lambda dans ce module.

1. Dans le volet de navigation de la console IAM, sélectionnez **Policies**, puis **Create policy**.

1. Sur l'onglet **JSON**, remplacez le contenu de l'espace réservé par la stratégie suivante. La fonction Lambda de ce module utilise ces autorisations pour créer et mettre à jour une table DynamoDB nommée. `CarStats`

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "PermissionsForModule6",
               "Effect": "Allow",
               "Action": [
                   "dynamodb:DescribeTable",
                   "dynamodb:CreateTable",
                   "dynamodb:PutItem"
               ],
               "Resource": "arn:aws:dynamodb:*:*:table/CarStats"
           }
       ]
   }
   ```

------

1. Sélectionnez **Suivant : Balises**, puis **Suivant : Vérification)**. Les balises ne sont pas utilisés dans le cadre de ce didacticiel.

1. Pour **Name (Nom)**, saisissez **greengrass\$1CarStats\$1Table**, puis choisissez **Create policy (Créer une stratégie)**.

    

   Ensuite, créez un rôle qui utilise la nouvelle stratégie.

1. Dans le volet de navigation, sélectionnez **Rôles**, puis **Créer un rôle**.

1. Sous **Trusted entity type** (Type d’entité approuvée), choisissez **service AWS **.

1. **Sous **Cas d'****utilisation, Cas d'utilisation pour d'autres AWS services**, choisissez **Greengrass**, puis **cliquez sur Next**.**

1. Sous **Politiques d'autorisations**, sélectionnez la nouvelle **greengrass\$1CarStats\$1Table** politique, puis cliquez sur **Suivant**.

1. Pour le **Nom du rôle**, saisissez **Greengrass\$1Group\$1Role**.

1. Pour **Description**, saisissez **Greengrass group role for connectors and user-defined Lambda functions**.

1. Choisissez **Créer un rôle**.

   Maintenant, ajoutez le rôle à votre groupe Greengrass.

1. <a name="console-gg-groups"></a>Dans le volet de navigation de la AWS IoT console, sous **Gérer**, développez les **appareils Greengrass**, puis choisissez **Groups (V1)**.

1. Dans la **section Groupes Greengrass**, choisissez votre groupe.

1. Choisissez **Paramètres**, puis sélectionnez **Associer un rôle**.

1. **Greengrass\$1Group\$1Role**Choisissez dans votre liste de rôles, puis choisissez **Associer un rôle**.

# Créer et configurer la fonction Lambda
<a name="create-config-lambda"></a>

Au cours de cette étape, vous créez une fonction Lambda qui suit le nombre de voitures qui passent le feu de signalisation. Chaque fois que l'état d'`GG_TrafficLight`ombre passe à l'état d'ombre`G`, la fonction Lambda simule le passage d'un nombre aléatoire de voitures (de 1 à 20). À chaque troisième changement de `G` lumière, la fonction Lambda envoie des statistiques de base, telles que min et max, à une table DynamoDB.

1. Sur votre ordinateur, créez un dossier nommé `car_aggregator`.

1. À partir du dossier d'[TrafficLight ](https://github.com/aws/aws-greengrass-core-sdk-python/tree/master/examples/TrafficLight)exemples GitHub, téléchargez le `carAggregator.py` fichier `car_aggregator` dans le dossier. Il s'agit du code de votre fonction Lambda.
**Note**  
Cet exemple de fichier Python est stocké dans le référentiel du SDK AWS IoT Greengrass Core pour des raisons pratiques, mais il n'utilise pas le SDK AWS IoT Greengrass Core.

1. Si vous ne travaillez pas dans la région de l'est des États-Unis (Virginie du Nord), ouvrez la ligne suivante `carAggregator.py` et `region_name` remplacez-la par la Région AWS ligne actuellement sélectionnée dans la AWS IoT console. Pour la liste des modèles pris en charge Région AWS, consultez [AWS IoT Greengrass](https://docs.aws.amazon.com/general/latest/gr/greengrass.html)le *Référence générale d'Amazon Web Services*.

   ```
   dynamodb = boto3.resource('dynamodb', region_name='us-east-1')
   ```

1. Exécutez la commande suivante dans une fenêtre de [ligne de commande](https://en.wikipedia.org/wiki/Command-line_interface) pour installer le [AWS SDK pour Python (Boto3)](https://github.com/boto/boto3/blob/develop/README.rst)package et ses dépendances dans le `car_aggregator` dossier. Les fonctions Greengrass Lambda utilisent le AWS SDK pour accéder à d'autres services. AWS (Pour Windows, utilisez une [invite de commande élevée](https://technet.microsoft.com/en-us/library/cc947813(v=ws.10).aspx).)

   ```
   pip install boto3 -t path-to-car_aggregator-folder
   ```

   Vous obtenez une liste de répertoires similaire à la suivante :  
![\[Capture d'écran de la liste de répertoires affichant carAggregator.py.\]](http://docs.aws.amazon.com/fr_fr/greengrass/v1/developerguide/images/gg-get-started-095.png)

1. Compressez le contenu du dossier `car_aggregator` en un fichier `.zip` nommé `car_aggregator.zip`. (Compressez les contenus du dossier, et non pas le dossier.) Il s'agit de votre package de déploiement de fonctions Lambda.

1. Dans la console Lambda, créez une fonction nommée **GG\$1Car\$1Aggregator** et définissez les champs restants comme suit :
   + 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**.  
![\[Section des informations de base avec Nom de fonction défini sur GG_Car_Aggregator et Exécution défini sur Python 3.7.\]](http://docs.aws.amazon.com/fr_fr/greengrass/v1/developerguide/images/gg-get-started-095.5.png)

1. Chargez le package de déploiement de votre fonction Lambda :

   1. <a name="lambda-console-upload"></a>Dans l'onglet **Code**, sous **Source du code**, choisissez **Télécharger depuis**. Dans le menu déroulant, sélectionnez le **fichier .zip.**  
![\[La liste déroulante Upload from avec le fichier .zip surligné.\]](http://docs.aws.amazon.com/fr_fr/greengrass/v1/developerguide/images/lra-console/upload-deployment-package.png)

   1. Choisissez uploader, puis choisissez votre package `car_aggregator.zip` de déploiement. Ensuite, choisissez **Enregistrer**.

   1. <a name="lambda-console-runtime-settings-para"></a>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 (Gestionnaire)**, entrez **carAggregator.function\$1handler**.

   1. Choisissez **Enregistrer**.

1. Publiez la fonction Lambda, puis créez un alias nommé. **GG\$1CarAggregator** Pour step-by-step obtenir des instructions, consultez les étapes de [publication de la fonction Lambda](create-lambda.md#publish-function-version) et de [création d'un alias](create-lambda.md#create-version-alias) dans le module 3 (partie 1).

1. Dans la AWS IoT console, ajoutez la fonction Lambda que vous venez de créer à votre AWS IoT Greengrass groupe :

   1. **Sur la page de configuration du groupe, sélectionnez **Fonctions Lambda**, puis sous Mes **fonctions Lambda**, choisissez Ajouter.**

   1. **Pour la **fonction Lambda**, choisissez GG\$1Car\$1Aggregator.**

   1. Pour la **version de la fonction Lambda**, choisissez l'alias de la version que vous avez publiée.

   1. Pour **Limite de mémoire**, entrez **64 MB**.

   1. Pour **Épinglé**, choisissez **True**.

   1. Choisissez **Ajouter une fonction Lambda**.
**Note**  
Vous pouvez supprimer d'autres fonctions Lambda des modules précédents.

# Configuration des abonnements
<a name="config_subs"></a>

Au cours de cette étape, vous créez un abonnement qui permet au GG\$1 TrafficLight shadow d'envoyer des informations d'état mises à jour à la fonction Lambda GG\$1Car\$1Aggregator. Cet abonnement est ajouté aux abonnements que vous avez créés dans le [Module 5](module5.md), et qui sont tous nécessaires pour ce module.

1. Sur la page de configuration du groupe, choisissez l'onglet **Abonnements**, puis sélectionnez **Ajouter**.

1. Sur la page **Créer un abonnement**, procédez comme suit :

   1. Pour **Type de source**, choisissez **Service**, puis **Local Shadow Service**.

   1. Pour **Type de cible**, choisissez la **fonction Lambda**, puis choisissez **GG\$1Car\$1Aggregator**.

   1. Pour **Filtre de rubriques**, tapez **\$1aws/things/GG\$1TrafficLight/shadow/update/documents**.

   1. Choisissez **Create subscription** (Créer un abonnement).

   Pour ce module, vous avez besoin du nouvel abonnement et des [abonnements](config-dev-subs.md#module5-subscriptions) que vous avez créés dans le Module 5.

1. Assurez-vous que le daemon Greengrass est en cours d'exécution, comme décrit dans. [Déploiement des configurations cloud sur un appareil Core](configs-core.md)

1. <a name="console-actions-deploy"></a>Sur la page de configuration du groupe, choisissez **Deploy**.

# Test des communications
<a name="comms-test"></a>

1. Sur votre ordinateur, ouvrez deux fenêtres [de ligne de commande](https://en.wikipedia.org/wiki/Command-line_interface). Tout comme dans le [module 5](module5.md), une fenêtre est destinée au dispositif client GG\$1Switch et l'autre au dispositif client GG\$1TrafficLight . Vous les utilisez pour exécuter les mêmes commandes que celles exécutées dans le Module 5.

   Exécutez les commandes suivantes pour le périphérique client GG\$1Switch :

   ```
   cd path-to-certs-folder
   python lightController.py --endpoint AWS_IOT_ENDPOINT --rootCA AmazonRootCA1.pem --cert switchCertId-certificate.pem.crt --key switchCertId-private.pem.key --thingName GG_TrafficLight --clientId GG_Switch
   ```

   Exécutez les commandes suivantes pour le périphérique TrafficLight client GG\$1 :

   ```
   cd path-to-certs-folder
   python trafficLight.py --endpoint AWS_IOT_ENDPOINT --rootCA AmazonRootCA1.pem --cert lightCertId-certificate.pem.crt --key lightCertId-private.pem.key --thingName GG_TrafficLight --clientId GG_TrafficLight
   ```

   Toutes les 20 secondes, le commutateur met à jour l'état du shadow sur G, J et R, et le feu affiche son nouvel état.

1. Le gestionnaire de fonction de la fonction Lambda est déclenché tous les trois feux verts (toutes les trois minutes), et un nouvel enregistrement DynamoDB est créé. Après `lightController.py` trois minutes `trafficLight.py` d'exécution, accédez à la AWS Management Console console DynamoDB et ouvrez-la.

1. Choisissez **USA East (Virginie du Nord)** dans le Région AWS menu. Il s'agit de la région où la fonction `GG_Car_Aggregator` crée la table.

1. Dans le volet de navigation, choisissez **Tables**, puis choisissez la **CarStats**table. 

1. Choisissez **Afficher les éléments** pour afficher les entrées du tableau.

   Vous devez voir les entrées avec les statistiques élémentaires sur les voitures passées (une entrée toutes les trois minutes). Vous devrez peut-être choisir le bouton d'actualisation pour consulter les mises à jour de la table.

1. Si le test échoue, vous pouvez rechercher des informations de dépannage dans les journaux Greengrass.

   1. <a name="root-access-logs"></a>Connectez-vous en tant qu'utilisateur racine et accédez au répertoire `log`. L'accès aux AWS IoT Greengrass journaux nécessite des autorisations root.

      ```
      sudo su
      cd /greengrass/ggc/var/log
      ```

   1. Recherchez les erreurs dans `runtime.log`.

      ```
      cat system/runtime.log | grep 'ERROR'
      ```

   1. Consultez le journal généré par la fonction Lambda.

      ```
      cat user/region/account-id/GG_Car_Aggregator.log
      ```

      <a name="check-connection-info"></a> Les scripts `lightController.py` et `trafficLight.py` stockent les informations de connexion dans le dossier `groupCA`, qui est créé dans le même dossier que les scripts. Si vous recevez des erreurs de connexion, assurez-vous que l'adresse IP du `ggc-host` fichier correspond au point de terminaison de l'adresse IP de votre cœur.

   Pour de plus amples informations, veuillez consulter [Résolution des problèmes AWS IoT Greengrass](gg-troubleshooting.md).

Il s'agit de la fin du didacticiel de base. Vous devez maintenant comprendre le modèle de AWS IoT Greengrass programmation et ses concepts fondamentaux, notamment les AWS IoT Greengrass cœurs, les groupes, les abonnements, les appareils clients et le processus de déploiement des fonctions Lambda exécutées en périphérie.

Vous pouvez supprimer la table DynamoDB ainsi que les fonctions et abonnements Greengrass Lambda. Pour arrêter les communications entre le périphérique AWS IoT Greengrass principal et le AWS IoT cloud, ouvrez un terminal sur le périphérique principal et exécutez l'une des commandes suivantes :
+ Pour arrêter le périphérique AWS IoT Greengrass principal, procédez comme suit :

  ```
  sudo halt
  ```
+ Pour arrêter le AWS IoT Greengrass daemon :

  ```
  cd /greengrass/ggc/core/
  sudo ./greengrassd stop
  ```