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.
Testen der Kommunikation
-
Stellen Sie sicher, dass Ihr Computer und das AWS IoT Greengrass Kerngerät über dasselbe Netzwerk mit dem Internet verbunden sind.
-
Führen Sie auf dem AWS IoT Greengrass Core-Gerät den folgenden Befehl aus, um dessen IP-Adresse zu ermitteln.
hostname -I
-
Führen Sie auf Ihrem Computer mit der IP-Adresse des Cores den folgenden Befehl aus. Mit Ctrl + C können Sie den Befehl ping stoppen.
ping
IP-address
Eine Ausgabe, die der folgenden ähnelt, weist auf eine erfolgreiche Kommunikation zwischen dem Computer und dem AWS IoT Greengrass Kerngerät hin (0% Paketverlust):
Anmerkung
Wenn Sie eine laufende EC2-Instance nicht pingen können AWS IoT Greengrass, stellen Sie sicher, dass die Regeln für eingehende Sicherheitsgruppen für die Instance ICMP-Verkehr für Echo-Anforderungsnachrichten zulassen. Weitere Informationen finden Sie unter Hinzufügen von Regeln zu einer Sicherheitsgruppe im Amazon EC2 EC2-Benutzerhandbuch.
Möglicherweise müssen Sie auf Windows-Host-Computern in der App „Windows-Firewall mit erweiterter Sicherheit“ eine eingehende Regel aktivieren, die eingehende Echo-Anfragen (z. B. File and Printer Sharing (Echo Request - ICMPv4-In) (Datei- und Druckerfreigabe [Echo-Anfrage – ICMPv4-In])) zulässt oder selber eine erstellen.
-
-
Holen Sie sich Ihren AWS IoT Endpunkt.
-
Wählen Sie im Navigationsbereich der AWS IoT Konsole
Einstellungen aus. -
Notieren Sie sich unter Endpunkt für Gerätedaten den Wert von Endpoint. Sie verwenden diesen Wert, um die
AWS_IOT_ENDPOINT
-Platzhalter in den Befehlen der folgenden Schritten zu ersetzen.Anmerkung
Stellen Sie sicher, dass Ihre Endpunkte Ihrem Zertifikatstyp entsprechen.
-
-
Öffnen Sie auf Ihrem Computer (nicht auf dem AWS IoT Greengrass Hauptgerät) zwei Befehlszeilenfenster
(Terminal oder Eingabeaufforderung). Ein Fenster steht für das HelloWorld _Publisher-Clientgerät und das andere für das HelloWorld _Subscriber-Clientgerät. basicDiscovery.py
Versucht bei der Ausführung, Informationen über den Standort des AWS IoT Greengrass Kerns an seinen Endpunkten zu sammeln. Diese Informationen werden gespeichert, nachdem das Client-Gerät den Core erkannt und erfolgreich eine Verbindung mit ihm hergestellt hat. Auf diese Weise ist künftig ein lokales Ausführen (ohne Internetverbindung) von Messaging-Funktionen und Operationen möglich.Anmerkung
Client-IDs, die für MQTT-Verbindungen verwendet werden, müssen mit dem Ding-Namen des Client-Geräts übereinstimmen. Das
basicDiscovery.py
Skript setzt die Client-ID für MQTT-Verbindungen auf den Ding-Namen, den Sie bei der Ausführung des Skripts angeben.Führen Sie den folgenden Befehl in dem Ordner aus, der die
basicDiscovery.py
Datei enthält, um detaillierte Informationen zur Verwendung des Skripts zu erhalten:python basicDiscovery.py --help
-
Führen Sie im Fenster des HelloWorld _Publisher-Client-Geräts die folgenden Befehle aus.
-
Ersetzen Sie
path-to-certs-folder
mit dem Pfad zu dem Ordner, in dem sich die Zertifikate, Schlüssel und die DateibasicDiscovery.py
befinden. -
Ersetzen Sie
AWS_IOT_ENDPOINT
mit Ihrem Endpunkt. -
Ersetzen Sie die beiden
CertIdPublisher-Instanzen
durch die Zertifikat-ID im Dateinamen Ihres HelloWorld _Publisher-Clientgeräts.
cd
path-to-certs-folder
python basicDiscovery.py --endpointAWS_IOT_ENDPOINT
--rootCA AmazonRootCA1.pem --certpublisherCertId
-certificate.pem.crt --keypublisherCertId
-private.pem.key --thingName HelloWorld_Publisher --topic 'hello/world/pubsub' --mode publish --message 'Hello, World! Sent from HelloWorld_Publisher'Die Ausgabe sollte ungefähr wie die folgende aussehen und kann beispielsweise die nachstehenden Einträge umfassen:
Published topic 'hello/world/pubsub': {"message": "Hello, World! Sent from HelloWorld_Publisher", "sequence": 1}
.Anmerkung
Wenn das Skript eine
error: unrecognized arguments
-Nachricht zurückgibt, ändern Sie die einfachen Anführungszeichen zu doppelten Anführungszeichen für die Parameter--topic
und--message
und führen Sie den Befehl erneut aus.Um einen Verbindungsfehler zu beheben, können Sie versuchen, das Problem mithilfe der manuellen IP-Erkennung zu lösen.
-
-
Führen Sie im Fenster des HelloWorld _Subscriber-Client-Geräts die folgenden Befehle aus.
-
Ersetzen Sie
path-to-certs-folder
mit dem Pfad zu dem Ordner, in dem sich die Zertifikate, Schlüssel und die DateibasicDiscovery.py
befinden. -
Ersetzen Sie
AWS_IOT_ENDPOINT
mit Ihrem Endpunkt. -
Ersetzen Sie die beiden
CertIdAbonnenteninstanzen
durch die Zertifikat-ID im Dateinamen für Ihr HelloWorld _Subscriber-Clientgerät.
cd
path-to-certs-folder
python basicDiscovery.py --endpointAWS_IOT_ENDPOINT
--rootCA AmazonRootCA1.pem --certsubscriberCertId
-certificate.pem.crt --keysubscriberCertId
-private.pem.key --thingName HelloWorld_Subscriber --topic 'hello/world/pubsub' --mode subscribeDie Ausgabe sollte folgendermaßen aussehen und kann beispielsweise nachstehende Einträge umfassen:
Received message on topic hello/world/pubsub: {"message": "Hello, World! Sent from HelloWorld_Publisher", "sequence": 1}
. -
Schließen Sie das HelloWorld_Publisher Fenster, um zu verhindern, dass sich Nachrichten im Fenster ansammeln. HelloWorld_Subscriber
Tests in einem Unternehmensnetzwerk können die Verbindung zum Core beeinträchtigen. Um dieses Problem zu umgehen, können Sie den Endpunkt manuell eingeben. Dadurch wird sichergestellt, dass das basicDiscovery.py
Skript eine Verbindung mit der richtigen IP-Adresse des AWS IoT Greengrass Kerngeräts herstellt.
Endpunkt manuell eingeben
Erweitern Sie im Navigationsbereich der AWS IoT Konsole unter Verwalten die Option Greengrass-Geräte und wählen Sie dann Gruppen (V1) aus.
-
Wählen Sie unter Greengrass-Gruppen Ihre Gruppe aus.
-
Konfigurieren Sie den Core für die manuelle Verwaltung von MQTT-Broker-Endpunkten. Gehen Sie wie folgt vor:
-
Wählen Sie auf der Gruppenkonfigurationsseite die Registerkarte Lambda-Funktionen aus.
-
Wählen Sie unter System-Lambda-Funktionen die Option IP-Detektor und dann Bearbeiten aus.
-
Wählen Sie unter IP-Detektoreinstellungen bearbeiten die Option MQTT-Broker-Endpunkte manuell verwalten und dann Speichern aus.
-
-
Geben Sie den MQTT-Broker-Endpunkt für den Core ein. Gehen Sie wie folgt vor:
-
Wählen Sie unter Übersicht den Greengrass-Kern aus.
-
Wählen Sie unter MQTT-Broker-Endpunkte die Option Endpunkte verwalten aus.
-
Wählen Sie Endpunkt hinzufügen und stellen Sie sicher, dass Sie nur einen Endpunktwert haben. Dieser Wert muss der Endpunkt der IP-Adresse für Port 8883 Ihres AWS IoT Greengrass Kerngeräts sein (z. B.
192.168.1.4
). -
Wählen Sie Aktualisieren.
-