Atelier 4 : Sigfox - AWS (1/4)

Posté le 20/06/2016

Après avoir configuré notre objet connecté afin qu'il envoie et reçoit des données vers et depuis SIGFOX, nous verrons comment SIGFOX a réussi à attaquer le Cloud Amazon à travers les callbacks. Ces callbacks nécessitent une certaine configuration afin de transmettre les données générées à une URL spécifiée, soit via une requête POST ou GET, en mettant les données dans les variables dans l'URL, par exemple:  https://my.endpoint.com/?var1=var1&var2=var2

Architecture:

AWS IoT ne peut pas recevoir directement cette demande HTTP. AWS IoT attend un message avec un protocole MQTT sous le format JSON pour être en mesure d'analyser les données à travers le moteur de règles et de transmettre ces données au point de fin de traitement.

En conséquence, nous devons transformer la demande SIGFOX HTTP en un message MQTT avec une charge utile JSON. Ceci sera fait par le service AWS API Gateway et le moteur de calcul  Lambda.

La passerelle API Gateway présentera une interface GET pour SIGFOX et analysera les variables dans l'URL afin de les envoyer à notre fonction Lambda dans un format JSON.

La fonction Lambda prendra la charge utile JSON et la publiera sur AWS IoT utilisant MQTT.

Pour des raisons d’alertes, AWS IoT envoie simplement la charge utile à AWS SNS afin d'envoyer un courriel électronique et vérifier que les messages de SIGFOX ont été livrés de manière appropriée.

L'architecture de notre cas d'utilisation sera la suivante :

Configuration requise:

Toutes les étapes nécessaires doivent être préparer pour ce travail :

Dans l’API Gateway:

Dans Lambda:

Dans AWS IoT :

Dans SNS:

Pour configurer les différents éléments de la chaîne, nous devrons commencer à la fin, avec SNS et travailler notre chemin de retour.

Configuration des notifications SNS

Lorsque les données sont publiées sur le sujet SIGFOX/topicdata par la fonction Lambda, il sera demander à AWS IoT d'envoyer un e-mail à une adresse spécifiée. Avant de configurer la règle dans AWS IoT qui effectuera cette action, nous devons créer :

  1.  Un sujet SNS qui va exécuter la tâche  "envoyez un email" à l'adresse indiquée
  2.  Un rôle pour AWS IoT qui permettra à la règle de publier au sujet SNS

1. Configuration du sujet SNS

Dans la console AWS, entrez dans la configuration de service SNS et cliquez sur "Create Topic":

Une fenêtre pop-out apparaît, il est demandé d'entrer un nom de sujet et un nom d'affichage. Nous allons mettre "Email_Notifiation" comme nom de sujet, et "SNS_SIGFOX" pour le nom d'affichage. Une fois terminé, cliquez sur le bouton Create topic.

 

Il est maintenant possible d'ajouter un abonnement pour l'adresse e-mail spécifique afin que le courriel soit envoyé. Cliquez sur le bouton "Create Subscription":

Choisissez le protocole "email" dans la fenêtre pop-out :

Ensuite, mettez votre email dans le Endpoint et cliquez sur "Create subscription" :

Un e-mail est envoyé à l'endpoint spécifié avec un lien pour confirmer l'abonnement. Jusqu'à ce que l'e-mail soit confirmé l'ID d'abonnement va être "PendingConfirmation" :

 

Une fois que le lien a été cliqué pour confirmer l'abonnement, rafraîchissez la page afin de constater le changement :

 

Par défaut, la notification SNS ne peut être exécutée que par le propriétaire du Topic. Pour simplifier, nous allons permettre à quiconque de souscrire et de publier le sujet. Pour ce faire, choisissez "Edit topic strategy" :

Définissez les autorisations à tout le monde pouvant à la fois publier et souscrire, puis mettre à jour la politique :

L'étape avec la notification SNS est terminée. Il est dorénavant essentiel de créer le rôle nécessaire à la règle AWS IoT.

 

2. Configuration du rôle IAM requis par la règle AWS IoT

 Dans la console AWS, entrez dans la configuration de service IAM, sélectionnez «rôles» et cliquez sur "Créer un nouveau rôle" :

Entrez un nom pour le rôle comme: "SNS_for_AWSIoT_push" et cliquez sur Suivant :

Sélectionnez le type de rôle: AWS IoT puis cliquez sur Sélectionner:

La sélection d’AWS IoT établit automatiquement la relation de confiance pour ce service (étape 3), et nous sommes envoyés à l'étape 4 : Fixer la politique. Vous pouvez laisser ce champ vide et cliquez sur «Next Step» :

Dans cet article, nous avons bien configuré le service SNS et son rôle associé. Dans le prochain article, nous pourons procéder à la création de la règle de traitement MQTT dans AWS IoT et configurer notre fonction Lambda.