Testen der Kommunikation - AWS IoT Greengrass

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

  1. Stellen Sie sicher, dass Ihr Computer und das AWS IoT Greengrass Kerngerät über dasselbe Netzwerk mit dem Internet verbunden sind.

    1. Führen Sie auf dem AWS IoT Greengrass Core-Gerät den folgenden Befehl aus, um dessen IP-Adresse zu ermitteln.

      hostname -I
    2. 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):

      Erfolgreiche Ping-Befehlsausgabe.
      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.

  2. Holen Sie sich Ihren AWS IoT Endpunkt.

    1. Wählen Sie im Navigationsbereich der AWS IoT Konsole Einstellungen aus.

    2. 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.

  3. Ö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.pyVersucht 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
  4. 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 Datei basicDiscovery.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 --endpoint AWS_IOT_ENDPOINT --rootCA AmazonRootCA1.pem --cert publisherCertId-certificate.pem.crt --key publisherCertId-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.

    Bildschirmfoto der Herausgeberausgabe.
  5. 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 Datei basicDiscovery.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 --endpoint AWS_IOT_ENDPOINT --rootCA AmazonRootCA1.pem --cert subscriberCertId-certificate.pem.crt --key subscriberCertId-private.pem.key --thingName HelloWorld_Subscriber --topic 'hello/world/pubsub' --mode subscribe

    Die 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}.

    Bildschirmfoto der Abonnenten-Ausgabe.

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
  1. Erweitern Sie im Navigationsbereich der AWS IoT Konsole unter Verwalten die Option Greengrass-Geräte und wählen Sie dann Gruppen (V1) aus.

  2. Wählen Sie unter Greengrass-Gruppen Ihre Gruppe aus.

  3. Konfigurieren Sie den Core für die manuelle Verwaltung von MQTT-Broker-Endpunkten. Gehen Sie wie folgt vor:

    1. Wählen Sie auf der Gruppenkonfigurationsseite die Registerkarte Lambda-Funktionen aus.

    2. Wählen Sie unter System-Lambda-Funktionen die Option IP-Detektor und dann Bearbeiten aus.

    3. Wählen Sie unter IP-Detektoreinstellungen bearbeiten die Option MQTT-Broker-Endpunkte manuell verwalten und dann Speichern aus.

  4. Geben Sie den MQTT-Broker-Endpunkt für den Core ein. Gehen Sie wie folgt vor:

    1. Wählen Sie unter Übersicht den Greengrass-Kern aus.

    2. Wählen Sie unter MQTT-Broker-Endpunkte die Option Endpunkte verwalten aus.

    3. 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).

    4. Wählen Sie Aktualisieren.