Depuis que j'ai découvert AWS IoT Greengrass dans les affaires de mon entreprise, j'aimerais présenter des appareils et des applications équipés d'Ubuntu utilisant AWS IoT en plusieurs parties à partir de cette époque. Pour la première fois, nous vous montrerons comment créer un groupe Greengrass sur le cloud et comment installer Greengrass Core sur des appareils de périphérie.
Il existe également un article utilisant Azure IoT Edge, alors jetez un œil si vous êtes intéressé.
Fonctionnement confirmé de l'appareil (OS)
e-RT3 Plus F3RP70-2L[^ert3](Ubuntu 18.04 32bit) Contrôleur de bord de Yokogawa Electric. Il est enregistré en tant qu'appareil certifié [^ certificat] d'AWS IoT Greengrass (Cliquez ici pour la page e-RT3](https://devices.amazonaws.com/detail/a3G0h000007dE0NEAU/e-RT3-Plus-(F3RP70-2L) ))).
Raspberry Pi 4 Model B (Ubuntu Server 20.04 32bit)
Ces appareils fonctionnent avec des packages de l'architecture armhf. J'utilise également l'appareil sur un PC exécutant Windows 10.
AWS IoT Greengrass est un logiciel de Edge computing fourni par AWS. En installant Greengrass sur un appareil périphérique, vous pouvez facilement vous connecter au cloud et déployer des applications à partir du cloud. De plus, en étendant certaines fonctions du cloud aux périphériques de périphérie, il est possible de collecter et d'analyser des données à proximité de la source de données, d'agir sur les événements locaux, de communiquer entre les périphériques locaux, etc. Pour plus de détails, veuillez consulter Site officiel AWS IoT Greengrass.
Si vous n'avez pas de compte AWS, créez-en un. https://aws.amazon.com/jp/ Il existe également un niveau gratuit limité. Le niveau d'utilisation gratuit pour AWS IoT utilisé cette fois est [ici](https://aws.amazon.com/jp/free/?nc2=h_ql_pr_ft&all-free-tier.sort-by=item.additionalFields.SortRank&all-free-tier Vous pouvez le vérifier avec .sort-order = asc & awsf.Free% 20Tier% 20Categories = categories% 23iot).
Installez WinSCP sur votre PC pour transférer des fichiers de votre PC vers votre appareil. Veuillez consulter le site officiel pour l'installation et l'utilisation. https://winscp.net/eng/index.php
Installez Python 3.8 pour une utilisation avec Lambda dans Greengrass.
sudo apt update
sudo apt install python3.8
Confirmez que l'installation a réussi.
username@ubuntu:~$ python3.8 --version
Python 3.8.0
Installez Java 8 pour une utilisation avec Greengrass Stream Manager.
sudo apt update
sudo apt install openjdk-8-jdk
Lien vers le Java installé.
sudo ln /etc/alternatives/java /usr/bin/java8
Confirmez que l'installation a réussi.
username@ubuntu:~$ java8 -version
openjdk version "1.8.0_275"
OpenJDK Runtime Environment (build 1.8.0_275-8u275-b01-0ubuntu1~18.04-b01)
OpenJDK Client VM (build 25.275-b01, mixed mode)
Activez le groupe de contrôle pour exécuter Lambda sur le conteneur.
Ouvrez / boot / firmware / cmdline.txt
.
sudo vi /boot/firmware/cmdline.txt
__ Ajoutez les valeurs suivantes à la fin de la ligne existante.
cgroup_enable=memory cgroup_memory=1
Redémarrez l'appareil.
sudo reboot
Suivez les étapes [^ ggconfig] du guide officiel AWS pour créer un groupe Greengrass dans AWS Management Console.
Sélectionnez la région de Tokyo dans le menu en haut à droite.
Ouvrez le menu "Services" en haut à gauche, entrez "iot greengrass" dans la fenêtre de recherche et cliquez sur "IoT Greengrass".
Dans le volet de navigation de gauche, accédez à Greengrass → Introduction et cliquez sur Créer un groupe.
Cliquez sur Utiliser la création par défaut.
Donnez un nom au groupe et cliquez sur Suivant. Cette fois, appelons-le "Groupe eRT3".
Spécifiez le nom du Greengrass Core. Conservez les valeurs par défaut et cliquez sur Suivant.
Un écran de confirmation s'affiche. Confirmez et cliquez sur «Créer un groupe et un noyau».
Cliquez sur Télécharger ces ressources en tant que tar.gz pour télécharger les ressources de sécurité permettant de connecter votre appareil au cloud. Ce fichier ne peut pas être téléchargé plus tard, alors assurez-vous de le télécharger ici. Après le téléchargement, cliquez sur «Terminer» pour terminer les paramètres.
Installez et lancez le logiciel Greengrass Core sur votre appareil. Il existe plusieurs façons d'installer le logiciel Greengrass Core, mais ici nous allons l'installer à partir du dépôt APT [^ apt].
Configurez les ressources de sécurité et le certificat d'autorité de certification racine nécessaires pour connecter l'appareil au cloud.
Lancez WinSCP, connectez-vous à l'appareil et placez la ressource de sécurité (fichier tar.gz) téléchargée à l'étape 8 de Création d'un groupe Greengrass (création d'un # greengrass-group) dans votre répertoire personnel.
Exécutez la commande suivante pour installer la ressource de sécurité.
Remplacez «
sudo mkdir -p /greengrass
sudo tar -xzvf ~/<hash>-setup.tar.gz -C /greengrass
Allez dans / greengrass / certs
.
cd /greengrass/certs/
Téléchargez le certificat Amazon Root CA 1 avec le nom «root.ca.pem».
sudo wget -O root.ca.pem https://www.amazontrust.com/repository/AmazonRootCA1.pem
Assurez-vous que le fichier root.ca.pem
téléchargé n'est pas vide (téléchargé correctement). Si le fichier est vide, veuillez réessayer le téléchargement.
```bash
cat root.ca.pem
```
Créez un compte système Greengrass.
sudo adduser --system ggc_user
sudo addgroup --system ggc_group
Installez le package de trousseau de clés AWS IoT Greengrass et ajoutez le référentiel.
cd ~
sudo wget -O aws-iot-greengrass-keyring.deb https://d1onfpft10uf5o.cloudfront.net/greengrass-apt/downloads/aws-iot-greengrass-keyring.deb
sudo dpkg -i aws-iot-greengrass-keyring.deb
username@ubuntu:~$ echo "deb https://dnw9lb6lzp2d8.cloudfront.net stable main" | sudo tee /etc/apt/sources.list.d/greengrass.list
deb https://dnw9lb6lzp2d8.cloudfront.net stable main
Mettez à jour la liste des packages et installez le logiciel Greengrass Core.
sudo apt update
sudo apt install aws-iot-greengrass-core
Démarrez le démon Greengrass.
sudo systemctl start greengrass.service
Exécutez la commande suivante, et si l'état «Actif» affiché est «actif (en cours d'exécution)», le démon fonctionne normalement.
```bash
username@ubuntu:~$ systemctl status greengrass.service
Exécutez la commande suivante pour démarrer automatiquement au démarrage de l'appareil.
```bash
sudo systemctl enable greengrass.service
```
Effectuez un déploiement vide pour voir si l'appareil peut se connecter au cloud.
Dans le menu de gauche, allez dans "Groupes" et cliquez sur le groupe que vous avez créé.
Cliquez sur Déployer dans le menu Actions pour démarrer le déploiement.
Cliquez sur Détection automatique.
Attendez quelques minutes que le déploiement se termine. Si le déploiement se termine avec succès, il réussit.
Nous avons créé un groupe Greengrass sur le cloud et installé Greengrass Core sur l'appareil. Restez à l'écoute pour la prochaine fois que nous prévoyons de créer et de déployer Lambda!
Si l'appareil se trouve dans un environnement proxy, des paramètres proxy sont requis. Les paramètres diffèrent en fonction de l'environnement, mais pour référence, je vais vous présenter les paramètres que j'ai effectués cette fois.
Veuillez consulter cet article.
Configurez Greengrass Core conformément au document officiel AWS [^ proxy].
Si Greengrass fonctionne, arrêtez-le.
sudo systemctl stop greengrass.service
```
2. Ajoutez l'autorisation d'écriture à / greengrass / config / config.json
et ouvrez-le.
```bash
sudo chmod +w /greengrass/config/config.json sudo vi /greengrass/config/config.json ``` Ajoutez les objets iotMqttPort et networkProxy à l'intérieur de l'objet coreThing. Le fichier après l'ajout est le suivant.
```/greengrass/config/config.json
{ "coreThing" : { "caPath" : "root.ca.pem", "certPath" : "3283c6f04d.cert.pem", "keyPath" : "3283c6f04d.private.key", "thingArn" : "arn:aws:iot:ap-northeast-1:xxxxxxxxxxxx:thing/eRT3Group_Core", "iotHost" : "xxxxxxxxxxxx-ats.iot.ap-northeast-1.amazonaws.com", "iotMqttPort" : 443, "ggHost" : "greengrass-ats.iot.ap-northeast-1.amazonaws.com", "keepAlive" : 600, "networkProxy":{ "proxy":{ "url" : "http://username:[email protected]:port/" } } }, ... ``` 3. Supprimez les autorisations d'écriture du fichier et redémarrez Greengrass.
```bash
sudo chmod -w /greengrass/config/config.json sudo systemctl start greengrass.service ```
[^ ert3]: [Contrôleur OS en temps réel e-RT3 Plus F3RP70-2L](https://www.yokogawa.co.jp/solutions/products-platforms/control-system/real-time-os-controller/ert3- plateforme ai /)
Recommended Posts