AWS IoT Greengrass Version 1 trat am 30. Juni 2023 in die erweiterte Lebensphase ein. Weitere Informationen finden Sie in der AWS IoT Greengrass V1 Wartungsrichtlinie. Nach diesem Datum AWS IoT Greengrass V1 werden keine Updates mehr veröffentlicht, die Funktionen, Verbesserungen, Bugfixes oder Sicherheitspatches bieten. Geräte, die auf laufen, werden AWS IoT Greengrass V1 nicht gestört und funktionieren weiterhin und stellen eine Verbindung zur Cloud her. Wir empfehlen Ihnen dringend, zu migrieren AWS IoT Greengrass Version 2, da dies wichtige neue Funktionen und Unterstützung für zusätzliche Plattformen bietet.
Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Installieren Sie die AWS IoT Greengrass Core-Software.
Die -AWS IoT GreengrassCore-Software erweitert die AWS Funktionalität auf ein AWS IoT Greengrass-Core-Gerät, sodass lokale Geräte lokal auf die von ihnen generierten Daten reagieren können.
AWS IoT Greengrass bietet verschiedene Optionen für die Installation der AWS IoT Greengrass Core-Software:
AWS IoT Greengrass bietet auch containerisierte Umgebungen, in denen die AWS IoT Greengrass Core-Software ausgeführt wird.
Download und Extrahieren des AWS IoT Greengrass Core-Software-Pakets
Wählen Sie die AWS IoT Greengrass Core-Software für Ihre Plattform, die Sie als tar.gz-Datei herunterladen und auf Ihr Gerät extrahieren möchten. Sie können aktuelle Versionen der Software herunterladen. Weitere Informationen finden Sie unter AWS IoT Greengrass Kernsoftware.
Ausführen des Greengrass Device Setup-Skripts
Führen Sie die Greengrass-Geräteeinrichtung aus, um Ihr Gerät zu konfigurieren, installieren Sie die neueste AWS IoT Greengrass -Core-Softwareversion und stellen Sie in wenigen Minuten eine Hello World Lambda-Funktion bereit. Weitere Informationen finden Sie unter Schnellstart: Greengrass-Geräteeinrichtung.
Installieren der AWS IoT Greengrass Core-Software aus einem APT-Repository
Wichtig
Ab dem 11. Februar 2022 können Sie die AWS IoT Greengrass Core-Software nicht mehr aus einem APT-Repository installieren oder aktualisieren. Auf Geräten, auf denen Sie das AWS IoT GreengrassRepository hinzugefügt haben, müssen Sie das Repository aus der Quellenliste entfernen. Geräte, auf denen die Software aus dem APT-Repository ausgeführt wird, funktionieren weiterhin normal. Wir empfehlen Ihnen, die -AWS IoT GreengrassCore-Software mit tar-Dateien zu aktualisieren.
Das von AWS IoT Greengrass bereitgestellte APT-Repository beinhaltet die folgenden Pakete:
-
aws-iot-greengrass-core
. Installiert die AWS IoT Greengrass -Core-Software. -
aws-iot-greengrass-keyring
. Installiert die GnuPG (GPG)-Schlüssel, die zum Signieren des AWS IoT Greengrass Paket-Repositorys verwendet werden.Mit dem Download dieser Software stimmen Sie der Greengrass Core-Software-Lizenzvereinbarung
zu.
Themen
Verwenden von systemd-Skripts zum Verwalten des Greengrass Daemon-Lebenszyklus
Das aws-iot-greengrass-core
-Paket installiert auch systemd
-Skripte, mit denen Sie den Lebenszyklus der AWS IoT Greengrass Core-Software (Daemon) verwalten können.
-
So starten Sie den Greengras-Daemon während des Boots:
systemctl enable greengrass.service
-
So starten Sie den Greengras-Daemon:
systemctl start greengrass.service
-
So halten Sie den Greengrass-Daemon an:
systemctl stop greengrass.service
-
So überprüfen Sie den Status des Greengras-Daemons:
systemctl status greengrass.service
Deinstallieren der AWS IoT Greengrass Core-Software mithilfe des APT-Repositorys
Wenn Sie die AWS IoT Greengrass Core-Software deinstallieren, können Sie wählen, ob die Konfigurationsinformationen der AWS IoT Greengrass Core-Software beibehalten oder entfernt werden sollen, z. B. Gerätezertifikate, Gruppeninformationen und Protokolldateien.
So deinstallieren Sie die AWS IoT Greengrass Core-Software und behalten Konfigurationsinformationen bei
-
Führen Sie den folgenden Befehl aus, um die AWS IoT Greengrass Core-Softwarepakete zu entfernen und die Konfigurationsinformationen im
/greengrass
Ordner beizubehalten.sudo apt remove aws-iot-greengrass-core aws-iot-greengrass-keyring
So deinstallieren Sie die AWS IoT Greengrass Core-Software und entfernen Konfigurationsinformationen
-
Führen Sie den folgenden Befehl aus, um die AWS IoT Greengrass Core-Softwarepakete und Konfigurationsinformationen aus der zu entfernen
/greengrass folder
.sudo apt purge aws-iot-greengrass-core aws-iot-greengrass-keyring
-
Entfernen Sie das AWS IoT Greengrass Core-Software-Repository aus Ihrer Quellenliste. Weitere Informationen finden Sie unter Entfernen der Repository-Quellen für die AWS IoT Greengrass Kernsoftware.
Entfernen der Repository-Quellen für die AWS IoT Greengrass Kernsoftware
Sie können die AWS IoT Greengrass Kernsoftware-Repository-Quellen entfernen, wenn Sie die AWS IoT Greengrass Kernsoftware nicht mehr aus dem APT-Repository installieren oder aktualisieren müssen. Nach dem 11. Februar 2022 müssen Sie das Repository aus Ihrer Quellenliste entfernen, um einen Fehler beim Ausführen von zu vermeidenapt update
.
So entfernen Sie das APT-Repository aus der Quellenliste
-
Führen Sie die folgenden Befehle aus, um das AWS IoT Greengrass Core-Software-Repository aus der Quellenliste zu entfernen.
sudo rm /etc/apt/sources.list.d/greengrass.list sudo apt update
Ausführen von AWS IoT Greengrass in einem Docker-Container
AWS IoT Greengrass stellt ein Dockerfile und Docker-Images zur Verfügung, mit deren Hilfe Sie AWS IoT Greengrass leichter in einem Docker-Container ausführen können. Weitere Informationen finden Sie unter AWS IoT Greengrass Docker-Software.
Anmerkung
Sie können eine Docker-Anwendung auch auf einem Greengrass-Kerngerät ausführen. Verwenden Sie dazu den Greengrass-Docker-Anwendungsbereitstellungskonnektor.
Ausführen von AWS IoT Greengrass in einem Snap
AWS IoT Greengrass Mit Snap 1.11.x können Sie eine begrenzte Version von AWS IoT Greengrass über praktische Softwarepakete zusammen mit allen erforderlichen Abhängigkeiten in einer containerisierten Umgebung ausführen.
Am 31. Dezember 2023 AWS IoT Greengrass wird die Wartung für die AWS IoT Greengrass Core-Softwareversion 1.11.x Snap beenden, die auf snapcraft.io
Snap-Konzepte
Im Folgenden finden Sie grundlegende Snap-Konzepte, die Ihnen helfen, zu verstehen, wie Sie AWS IoT Greengrass Snap verwenden:
- Channel
-
Eine Snap-Komponente, die definiert, welche Version eines Snap installiert und für Updates verfolgt wird. Snaps werden automatisch auf die neueste Version des aktuellen Kanals aktualisiert.
- Schnittstelle
-
Eine Snap-Komponente, die Zugriff auf -Ressourcen wie Netzwerke und Benutzerdateien gewährt.
Um den AWS IoT Greengrass Snap auszuführen, müssen die folgenden Schnittstellen verbunden sein. Beachten Sie, dass zuerst verbunden und niemals getrennt werden
greengrass-support-no-container
muss.- greengrass-support-no-container - hardware-observe - home-for-hooks - hugepages-control - log-observe - mount-observe - network - network-bind - network-control - process-control - system-observe
Die anderen Schnittstellen sind optional. Wenn Ihre Lambda-Funktionen Zugriff auf bestimmte Ressourcen benötigen, müssen Sie möglicherweise eine Verbindung zu den entsprechenden Schnittstellen herstellen.
- Aktualisieren
-
Snaps werden automatisch aktualisiert. Der
snapd
Daemon ist der Snap-Paketmanager, der standardmäßig viermal täglich nach Updates sucht. Jede Aktualisierungsprüfung wird als Aktualisierung bezeichnet. Wenn eine Aktualisierung erfolgt, wird der Daemon beendet, der Snap aktualisiert und der Daemon wird dann neu gestartet.
Weitere Informationen finden Sie auf der Snapmaker
Was ist neu bei AWS IoT Greengrass Snap v1.11.x?
Im Folgenden wird beschrieben, was mit der Version 1.11.x von AWS IoT Greengrass Snap neu ist und geändert wurde.
-
Diese Version unterstützt nur den
snap_daemon
Benutzer, der als Benutzer-ID (UID) und Gruppe (GID) verfügbar gemacht wird584788
. -
Diese Version unterstützt nur nicht containerisierte Lambda-Funktionen.
Wichtig
Da sich nicht containerisierte Lambda-Funktionen denselben Benutzer teilen müssen (
snap_daemon
), haben die Lambda-Funktionen keine Isolierung voneinander. Weitere Informationen finden Sie unter Steuern der Ausführung von Greengrass-Lambda-Funktionen mithilfe der gruppenspezifischen Konfiguration . -
Diese Version unterstützt die Laufzeiten C, C++, Java 8, Node.js 12.x, Python 2.7, Python 3.7 und Python 3.8.
Anmerkung
Um redundante Python-Laufzeiten zu vermeiden, führen Python-3.7-Lambda-Funktionen tatsächlich die Python-3.8-Laufzeit aus.
Erste Schritte mit AWS IoT Greengrass Snap
Das folgende Verfahren hilft Ihnen bei der Installation und Konfiguration des AWS IoT Greengrass Snap auf Ihrem Gerät.
Voraussetzungen
Gehen Sie wie folgt vor, um den AWS IoT Greengrass Snap auszuführen:
-
Führen Sie den AWS IoT Greengrass Snap auf einer unterstützten Linux-Distribution wie Ubuntu, Linux Mint, Debian und Fedora aus.
-
Installieren Sie den
snapd
-Daemon auf Ihrem Gerät. Dersnapd
-Daemon einschließlich des -snap
Tools verwaltet die Snap-Umgebung auf Ihrem Gerät.
Eine Liste der unterstützten Linux-Distributionen und Installationsanweisungen finden Sie unter Installing Snapd
Installieren und Konfigurieren des AWS IoT Greengrass Snap
Das folgende Tutorial zeigt Ihnen, wie Sie den AWS IoT Greengrass Snap auf Ihrem Gerät installieren und konfigurieren.
Anmerkung
-
Obwohl dieses Tutorial eine Amazon EC2-Instance (x86 t2.micro Ubuntu 20.04) verwendet, können Sie den AWS IoT Greengrass Snap mit physischer Hardware wie einem Raspberry Pi ausführen.
-
Der -
snapd
Daemon ist auf Ubuntu vorinstalliert.
-
Installieren Sie den
core18
Snap, indem Sie den folgenden Befehl im Terminal Ihres Geräts ausführen:sudo snap install core18
Snap ist ein Basis-Snap
core18
, der eine Laufzeitumgebung mit häufig verwendeten Bibliotheken bereitstellt. Dieser Snap basiert auf Ubuntu 18.04 LTS. -
Führen Sie ein Upgrade durch,
snapd
indem Sie den folgenden Befehl ausführen:sudo snap install --channel=edge snapd; sudo snap refresh --channel=edge snapd
-
Führen Sie den
snap list
Befehl aus, um zu überprüfen, ob Snap AWS IoT Greengrass installiert ist.Die folgende Beispielantwort zeigt, dass installiert
snapd
ist, aberaws-iot-greengrass
nicht.Name Version Rev Tracking Publisher Notes amazon-ssm-agent 3.0.161.0 2996 latest/stable/… aws✓ classic core 16-2.48 10444 latest/stable canonical✓ core core18 20200929 1932 latest/stable canonical✓ base lxd 4.0.4 18150 4.0/stable/… canonical✓ - snapd 2.48+git548.g929ccfb 10526 latest/edge canonical✓ snapd
-
Wählen Sie eine der folgenden Optionen, um AWS IoT Greengrass Snap 1.11.x zu installieren.
-
Führen Sie den folgenden Befehl aus, um AWS IoT Greengrass Snap zu installieren:
sudo snap install aws-iot-greengrass
Beispielantwort:
aws-iot-greengrass 1.11.5 from Amazon Web Services (aws) installed
-
Führen Sie den folgenden Befehl aus, um von einer früheren Version zu v1.11.x zu migrieren oder auf die neueste verfügbare Patch-Version zu aktualisieren:
sudo snap refresh --channel=1.11.x aws-iot-greengrass
Wie andere Snaps verwendet AWS IoT Greengrass Snap Kanäle, um Nebenversionen zu verwalten. Snaps werden automatisch auf die neueste verfügbare Version des aktuellen Kanals aktualisiert. Wenn Sie beispielsweise angeben
--channel=1.11.x
, wird Ihr AWS IoT Greengrass Snap auf v1.11.5 aktualisiert.Sie können den
snap info aws-iot-greengrass
Befehl ausführen, um die Liste der verfügbaren Kanäle für abzurufenAWS IoT Greengrass.Beispielantwort:
name: aws-iot-greengrass summary: AWS supported software that extends cloud capabilities to local devices. publisher: Amazon Web Services (aws✓) store-url: https://snapcraft.io/aws-iot-greengrass contact: https://repost.aws/tags/TA4ckIed1sR4enZBey29rKTg/aws-io-t-greengrass license: Proprietary description: | AWS IoT Greengrass seamlessly extends AWS onto edge devices so they can act locally on the data they generate, while still using the cloud for management, analytics, and durable storage. AWS IoT Greenrgrass snap v1.11.0 enables you to run a limited version of AWS IoT Greengrass with all necessary dependencies in a containerized environment. The AWS IoT Greengrass snap doesn't support connectors and machine learning (ML) inference. By downloading this software you agree to the Greengrass Core Software License Agreement (https://s3-us-west-2.amazonaws.com/greengrass-release-license/greengrass-license-v1.pdf). For more information, see Run AWS IoT Greengrass in a snap (https://docs.aws.amazon.com/greengrass/latest/developerguide/install-ggc.html#gg-snap-support) in the AWS IoT Greengrass Developer. If you need help, try the AWS IoT Greengrass tag on AWS re:Post (https://repost.aws/tags/TA4ckIed1sR4enZBey29rKTg/aws-io-t-greengrass) or connect with an AWS IQ expert (https://iq.aws.amazon.com/services/aws/greengrass). snap-id: SRDuhPJGj4XPxFNNZQKOTvURAp0wxKnd channels: latest/stable: 1.11.3 2021-06-15 (59) 111MB - latest/candidate: 1.11.3 2021-06-14 (59) 111MB - latest/beta: 1.11.3 2021-06-14 (59) 111MB - latest/edge: 1.11.3 2021-06-14 (59) 111MB - 1.11.x/stable: 1.11.3 2021-06-15 (59) 111MB - 1.11.x/candidate: 1.11.3 2021-06-15 (59) 111MB - 1.11.x/beta: 1.11.3 2021-06-15 (59) 111MB - 1.11.x/edge: 1.11.3 2021-06-15 (59) 111MB -
-
-
Um auf bestimmte Ressourcen zuzugreifen, die Ihre Lambda-Funktionen benötigen, können Sie eine Verbindung zu zusätzlichen Schnittstellen herstellen.
Führen Sie den folgenden Befehl aus, um die Liste der vom AWS IoT Greengrass Snap unterstützten Schnittstellen abzurufen:
snap connections aws-iot-greengrass
Beispielantwort:
Interface Plug Slot Notes camera aws-iot-greengrass:camera - - dvb aws-iot-greengrass:dvb - - gpio aws-iot-greengrass:gpio - - gpio-memory-control aws-iot-greengrass:gpio-memory-control - - greengrass-support aws-iot-greengrass:greengrass-support-no-container :greengrass-support - hardware-observe aws-iot-greengrass:hardware-observe :hardware-observe manual hardware-random-control aws-iot-greengrass:hardware-random-control - - home aws-iot-greengrass:home-for-greengrassd - - home aws-iot-greengrass:home-for-hooks :home manual hugepages-control aws-iot-greengrass:hugepages-control :hugepages-control manual i2c aws-iot-greengrass:i2c - - iio aws-iot-greengrass:iio - - joystick aws-iot-greengrass:joystick - - log-observe aws-iot-greengrass:log-observe :log-observe manual mount-observe aws-iot-greengrass:mount-observe :mount-observe manual network aws-iot-greengrass:network :network - network-bind aws-iot-greengrass:network-bind :network-bind - network-control aws-iot-greengrass:network-control :network-control - opengl aws-iot-greengrass:opengl :opengl - optical-drive aws-iot-greengrass:optical-drive :optical-drive - process-control aws-iot-greengrass:process-control :process-control - raw-usb aws-iot-greengrass:raw-usb - - removable-media aws-iot-greengrass:removable-media - - serial-port aws-iot-greengrass:serial-port - - spi aws-iot-greengrass:spi - - system-observe aws-iot-greengrass:system-observe :system-observe -
Wenn in der Spalte Slot ein Bindestrich (-) angezeigt wird, ist die entsprechende Schnittstelle nicht verbunden.
-
Folgen Sie Installieren der AWS IoT Greengrass Core-Software, um ein -AWS IoTObjekt, eine Greengrass-Gruppe, Sicherheitsressourcen, die eine sichere Kommunikation mit ermöglichenAWS IoT, und die AWS IoT Greengrass Core-Softwarekonfigurationsdatei zu erstellen. Die Konfigurationsdatei
config.json
enthält eine für Ihren Greengrass-Kern spezifische Konfiguration, z. B. den Speicherort der Zertifikatsdateien und den AWS IoT Gerätedatenendpunkt.Anmerkung
Wenn Sie die Datei auf ein anderes Gerät heruntergeladen haben, führen Sie diesen Schritt aus, um die Dateien auf das AWS IoT Greengrass Core-Gerät zu übertragen.
-
Stellen Sie für AWS IoT Greengrass Snap sicher, dass Sie die Datei config.json aktualisieren, wie im Folgenden gezeigt:
-
Ersetzen Sie jede Instance von
certificateId
durch die Zertifikat-ID im Namen des Zertifikats und der Schlüsseldateien. -
Wenn Sie ein anderes Amazon-Root-CA-Zertifikat als Amazon Root CA 1 heruntergeladen haben, ersetzen Sie jede Instance von
AmazonRootCA1.pem
durch den Namen der Amazon-Root-CA-Datei.
{ ... "crypto" : { "principals" : { "SecretsManager" : { "privateKeyPath" : "file:///snap/aws-iot-greengrass/current/greengrass/certs/
certificateId
-private.pem.keyy" }, "IoTCertificate" : { "privateKeyPath" : "file:///snap/aws-iot-greengrass/current/greengrass/certs/certificateId
-private.pem.key", "certificatePath" : "file:///snap/aws-iot-greengrass/current/greengrass/certs/certificateId
-certificate.pem.crt" } }, "caPath" : "file:///snap/aws-iot-greengrass/current/greengrass/certs/AmazonRootCA1.pem
" }, "writeDirectory": "/var/snap/aws-iot-greengrass/current/ggc-write-directory", "pidFileDirectory": "/var/snap/aws-iot-greengrass/current/pidFileDirectory" } -
-
Führen Sie den folgenden Befehl aus, um Ihr AWS IoT Greengrass Zertifikat und Ihre Konfigurationsdateien hinzuzufügen:
sudo snap set aws-iot-greengrass gg-certs=/home/ubuntu/
my-certs
Bereitstellen einer Lambda-Funktion
In diesem Abschnitt erfahren Sie, wie Sie eine vom Kunden verwaltete Lambda-Funktion auf AWS IoT Greengrass Snap bereitstellen.
Wichtig
AWS IoT Greengrass Snap v1.11 unterstützt nur nicht containerisierte Lambda-Funktionen.
-
Führen Sie den folgenden Befehl aus, um den AWS IoT Greengrass Daemon zu starten:
sudo snap start aws-iot-greengrass
Beispielantwort:
Started.
Anmerkung
Wenn Sie einen Fehler erhalten, können Sie den
snap run
Befehl für eine detaillierte Fehlermeldung verwenden. Weitere Informationen zur Fehlerbehebung finden Sie unter Fehler: kann die folgenden Aufgaben nicht ausführen: - Ausführen des Servicebefehls „start“ für Services ["greengrassd"] von snap „aws-iot-greengrass“ ([start snap.aws-iot-greengrass.greengrassd.service] ist mit dem Beendigungsstatus 1 fehlgeschlagen: Auftrag für snap.aws-iot-greengrass.greengrassd.service fehlgeschlagen, da der Steuerungsprozess mit dem Fehlercode beendet wurde. Weitere Informationen finden Sie unter „Systemctl status snap.aws-iot-greengrass.greengrassd.service“ und „journalctl -xe“.). -
Führen Sie den folgenden Befehl aus, um zu bestätigen, dass der Daemon ausgeführt wird:
snap services aws-iot-greengrass.greengrassd
Beispielantwort:
Service Startup Current Notes aws-iot-greengrass.greengrassd disabled active -
-
Folgen Sie Modul 3 (Teil 1): Lambda-Funktionen auf AWS IoT Greengrass , um eine Hello World Lambda-Funktion zu erstellen und bereitzustellen. Bevor Sie die Lambda-Funktion bereitstellen, führen Sie jedoch den nächsten Schritt aus.
-
Stellen Sie sicher, dass Ihre Lambda-Funktion als
snap_daemon
Benutzer und im Modus ohne Container ausgeführt wird. Gehen Sie in der AWS IoT Greengrass Konsole wie folgt vor, um die Einstellungen Ihrer Greengrass-Gruppe zu aktualisieren:-
Melden Sie sich in der AWS IoT Greengrass-Konsole an.
Erweitern Sie im Navigationsbereich der AWS IoTKonsole unter Verwalten die Option Greengrass-Geräte und wählen Sie dann Gruppen (V1) aus.
-
Wählen Sie unter Greengrass-Gruppen die Zielgruppe aus.
-
Wählen Sie auf der Seite Gruppenkonfiguration im Navigationsbereich die Registerkarte Lambda-Funktionen aus.
-
Wählen Sie unter Standard-Lambda-Funktionslaufzeitumgebung die Option Bearbeiten aus und gehen Sie wie folgt vor:
-
Wählen Sie für Standardsystembenutzer und -gruppe die Option Andere Benutzer-ID/Gruppen-ID aus und geben Sie dann sowohl
584788
für Systembenutzer-ID (Nummer) als auch für Systemgruppen-ID (Nummer) ein. -
Wählen Sie für Standard-Lambda-Funktionscontainerisierung die Option Kein Container aus.
-
Wählen Sie Speichern.
-
-
Stoppen des AWS IoT Greengrass Daemon
Sie können den snap stop
Befehl verwenden, um einen Service zu beenden.
Führen Sie den folgenden Befehl aus, um den AWS IoT Greengrass Daemon zu beenden:
sudo snap stop aws-iot-greengrass
Der Befehl sollte zurückgebenStopped.
.
Führen Sie den folgenden Befehl aus, um zu überprüfen, ob Sie den Snap erfolgreich beendet haben:
snap services aws-iot-greengrass.greengrassd
Beispielantwort:
Service Startup Current Notes aws-iot-greengrass.greengrassd disabled inactive -
Deinstallieren des AWS IoT Greengrass Snap
Um den AWS IoT Greengrass Snap zu deinstallieren, führen Sie den folgenden Befehl aus:
sudo snap remove aws-iot-greengrass
Beispielantwort:
aws-iot-greengrass removed
Fehlerbehebung bei AWS IoT Greengrass Snap
Verwenden Sie die folgenden Informationen, um Probleme mit AWS IoT Greengrass Snap zu beheben.
Fehler aufgrund einer verweigerten Berechtigung.
Lösung : Fehler aufgrund einer Berechtigungsverweigerung sind häufig auf fehlende Schnittstellen zurückzuführen. Für die Liste der fehlenden Schnittstellen und detaillierte Informationen zur Fehlerbehebung können Sie das snappy-debug
Tool verwenden.
Führen Sie den folgenden Befehl aus, um das Tool zu installieren.
sudo snap install snappy-debug
Beispielantwort:
snappy-debug 0.36-snapd2.45.1 from Canonical✓ installed
Führen Sie den sudo snappy-debug
Befehl in einer separaten Terminalsitzung aus. Der Vorgang wird fortgesetzt, bis ein Fehler aufgrund einer verweigerten Berechtigung auftritt.
Wenn Ihre Lambda-Funktion beispielsweise versucht, eine Datei im $HOME
Verzeichnis zu lesen, erhalten Sie möglicherweise die folgende Antwort:
INFO: Following '/var/log/syslog'. If have dropped messages, use: INFO: $ sudo journalctl --output=short --follow --all | sudo snappy-debug kernel.printk_ratelimit = 0 = AppArmor = Time: Dec 6 04:48:26 Log: apparmor="DENIED" operation="mknod" profile="snap.aws-iot-greengrass.greengrassd" name="/home/ubuntu/my-file.txt" pid=12345 comm="touch" requested_mask="c" denied_mask="c" fsuid=0 ouid=0 File: /home/ubuntu/my-file.txt (write) Suggestion: * add 'home' to 'plugs'
Dieses Beispiel zeigt, dass das Erstellen der /home/ubuntu/my-file.txt
Datei den Berechtigungsfehler verursacht hat. Es schlägt auch vor, dass Sie home
zu hinzufügenplugs
. Diese Argumentation ist jedoch nicht anwendbar. Die - home-for-greengrassd
und -home-for-hooks
Plugs erhalten nur Lesezugriff.
Weitere Informationen finden Sie unter Snappy-Debug Snap
Fehler: kann die folgenden Aufgaben nicht ausführen: - Ausführen des Servicebefehls „start“ für Services ["greengrassd"] von snap „aws-iot-greengrass“ ([start snap.aws-iot-greengrass.greengrassd.service] ist mit dem Beendigungsstatus 1 fehlgeschlagen: Auftrag für snap.aws-iot-greengrass.greengrassd.service fehlgeschlagen, da der Steuerungsprozess mit dem Fehlercode beendet wurde. Weitere Informationen finden Sie unter „Systemctl status snap.aws-iot-greengrass.greengrassd.service“ und „journalctl -xe“.)
Lösung : Dieser Fehler wird möglicherweise angezeigt, wenn der snap start aws-iot-greengrass
Befehl die AWS IoT Greengrass Core-Software nicht startet.
Führen Sie den folgenden Befehl aus, um weitere Informationen zur Fehlerbehebung zu erhalten:
sudo snap run aws-iot-greengrass.greengrassd
Beispielantwort:
Couldn't find /snap/aws-iot-greengrass/44/greengrass/config/config.json.
Diese Beispiele zeigen, dass die config.json
Datei nicht gefunden AWS IoT Greengrass hat. Sie können die Konfigurations- und Zertifikatsdateien überprüfen.
/var/snap/aws-iot-greengrass/current/ggc-write-directory//packages/1.11.5/rootfs/Merged ist kein absoluter Pfad oder ein Symlink.
Lösung : Der AWS IoT Greengrass Snap unterstützt nur nicht containerisierte Lambda-Funktionen. Stellen Sie sicher, dass Sie Ihre Lambda-Funktionen im Modus ohne Container ausführen. Weitere Informationen finden Sie unter Überlegungen bei der Auswahl der Lambda-Funktionscontainerisierung im AWS IoT Greengrass Version 1 -Entwicklerhandbuch.
Der Snapd-Daemon konnte nicht neu gestartet werden, nachdem Sie den Befehl sudo snap update snapd ausgeführt haben.
Lösung : Folgen Sie den Schritten 6 bis 8 in Installieren und Konfigurieren des AWS IoT Greengrass Snap, um das AWS IoT Greengrass Zertifikat und die Konfigurationsdateien zum AWS IoT Greengrass Snap hinzuzufügen.
Archivieren einer AWS IoT Greengrass Core-Software-Installation
Wenn Sie ein Upgrade auf eine neue Version der AWS IoT Greengrass Core-Software ausführen, können Sie die aktuell installierte Version archivieren. Dadurch bleibt Ihre aktuelle Installationsumgebung erhalten, sodass Sie eine neue Softwareversion auf derselben Hardware testen können. Dadurch wird auch ein Rollback auf Ihre archivierte Version vereinfacht.
So archivieren Sie die aktuelle Installation und installieren eine neue Version
-
Laden Sie das Installationspaket für die AWS IoT Greengrass Core-Software herunter, auf die Sie upgraden möchten.
-
Kopieren Sie das Paket in das Core-Zielgerät. Anweisungen zum Übertragen von Dateien finden Sie in diesem Schritt.
Anmerkung
Sie kopieren Ihre aktuellen Zertifikate, Schlüssel und die Konfigurationsdatei später in die neue Installation.
Führen Sie die Befehle in den folgenden Schritten in Ihrem Core-Geräte-Terminal aus.
-
Stellen Sie sicher, dass der Greengrass-Daemon auf dem Code-Gerät beendet wird.
So prüfen Sie, ob der Daemon ausgeführt wird:
ps aux | grep -E 'greengrass.*daemon'
Wenn die Ausgabe einen
root
-Eintrag für/greengrass/ggc/packages/
enthält, dann wird der Daemon ausgeführt.ggc-version
/bin/daemonAnmerkung
Dieses Verfahren setzt voraus, dass die AWS IoT Greengrass Core-Software im
/greengrass
-Verzeichnis installiert ist.-
So beenden Sie den -Daemon:
cd /greengrass/ggc/core/ sudo ./greengrassd stop
-
Verschieben Sie das aktuelle Greengrass-Stammverzeichnis in ein anderes Verzeichnis.
sudo mv /greengrass /greengrass_backup
-
Entpacken Sie die neue Software auf dem Core-Gerät. Ersetzen Sie die Platzhalter
os-architecture
undversion
im Befehl.sudo tar –zxvf greengrass-
os-architecture
-version
.tar.gz –C / -
Kopieren Sie die archivierten Zertifikate, Schlüssel und die Konfigurationsdatei in die neue Installation.
sudo cp /greengrass_backup/certs/* /greengrass/certs sudo cp /greengrass_backup/config/* /greengrass/config
-
Starten Sie den Daemon:
cd /greengrass/ggc/core/ sudo ./greengrassd start
Jetzt können Sie eine Gruppenbereitstellung vornehmen, um die neue Installation zu testen. Bei einem Fehler können Sie die archivierte Installation wiederherstellen.
So stellen Sie die archivierte Installation wieder her
-
Beenden Sie den Daemon.
-
Löschen Sie das neue
/greengrass
-Verzeichnis. -
Verschieben Sie das Verzeichnis
/greengrass_backup
wieder zu/greengrass
. -
Starten Sie den -Daemon.