Verwenden Sie Ihren Windows- oder Linux-PC oder Mac als Gerät AWS IoT - AWS IoT Core

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.

Verwenden Sie Ihren Windows- oder Linux-PC oder Mac als Gerät AWS IoT

In diesem Tutorial konfigurieren Sie einen PC für die Verwendung mit AWS IoT. Diese Anweisungen unterstützen Windows- und Linux-PCs und Macs. Um dies zu erreichen, müssen Sie einige Software auf Ihrem Computer installieren. Wenn Sie keine Software auf Ihrem Computer installieren möchten, können Sie mit Erstellen Sie ein virtuelles Gerät mit Amazon EC2 versuchen, die gesamte Software auf einer virtuellen Maschine zu installieren.

Einrichten Ihres PCs

Um dieses Tutorial abzuschließen, benötigen Sie einen Windows- oder Linux-PC oder einen Mac mit Internetverbindung.

Bevor Sie mit dem nächsten Schritt fortfahren, stellen Sie sicher, dass Sie ein Befehlszeilenfenster auf Ihrem Computer öffnen können. cmd.exe auf einem Windows-PC verwenden. Verwenden Sie auf einem Linux-PC oder Mac Terminal.

Installieren Sie Git, Python und das AWS IoT Geräte-SDK für Python

In diesem Abschnitt installieren Sie Python und das AWS IoT Device SDK für Python auf Ihrem Computer.

Installieren Sie die neueste Version von Git und Python

Um Git und Python herunterzuladen und auf Ihrem Computer zu installieren
  1. Überprüfen Sie, ob Git auf Ihrem Computer installiert ist. Geben Sie an der Befehlszeile den folgenden Befehl ein.

    git --version

    Wird mit dem Befehl die Git-Version angezeigt, ist Git installiert und Sie können mit dem nächsten Schritt fortfahren.

    Wenn der Befehl einen Fehler anzeigt, öffnen Sie https://git-scm.com/download und installieren Sie Git für Ihren Computer.

  2. Überprüfen Sie, ob Python bereits installiert ist. Geben Sie in der Kommandozeile den Befehl ein.

    python -V
    Anmerkung

    Wenn dieser Befehl einen Fehler: Python was not found ausgibt, liegt das möglicherweise daran, dass Ihr Betriebssystem die ausführbare Python v3.x-Datei als Python3 aufruft. Ersetzen Sie in diesem Fall alle Instanzen von python durch python3 und fahren Sie mit dem Rest dieses Tutorials fort.

    Wenn der Befehl die Python-Version anzeigt, ist Python bereits installiert. Dieses Skript erfordert Python 3.7 oder höher.

  3. Wenn Python installiert ist, können Sie die restlichen Schritte in diesem Abschnitt überspringen. Wenn nicht, fahren Sie fort.

  4. Öffnen Sie https://www.python.org/downloads/ und laden Sie das Installationsprogramm für Ihren Computer herunter.

  5. Wenn der Download nicht automatisch mit der Installation gestartet wurde, führen Sie das heruntergeladene Programm aus, um Python zu installieren.

  6. Überprüfen Sie die Installation von Python.

    python -V

    Vergewissern Sie sich, dass der Befehl die Python-Version anzeigt. Wenn die Python-Version nicht angezeigt wird, versuchen Sie erneut, Python herunterzuladen und zu installieren.

Installieren Sie das AWS IoT Geräte-SDK für Python

So installieren Sie das AWS IoT Device SDK für Python auf Ihrem Computer
  1. Installieren Sie Version 2 des AWS IoT Geräte-SDK für Python.

    python3 -m pip install awsiotsdk
  2. Klonen Sie das AWS IoT Device SDK for Python-Repository in das Verzeichnis aws-iot-device-sdk -python-v2 Ihres Home-Verzeichnisses. Dieses Verfahren bezieht sich auf das Basisverzeichnis für die Dateien, die Sie als Home installieren.

    Der tatsächliche Speicherort des Home-Verzeichnisses hängt von Ihrem Betriebssystem ab.

    Linux/macOS

    In macOS und Linux ist das Home-Verzeichnis ~.

    cd ~ git clone https://github.com/aws/aws-iot-device-sdk-python-v2.git
    Windows

    In Windows können Sie den Home-Verzeichnispfad finden, indem Sie diesen Befehl im Fenster cmd ausführen.

    echo %USERPROFILE% cd %USERPROFILE% git clone https://github.com/aws/aws-iot-device-sdk-python-v2.git
    Anmerkung

    Wenn Sie Windows PowerShell anstelle von verwendencmd.exe, verwenden Sie den folgenden Befehl.

    echo $home

Weitere Informationen finden Sie im GitHub Repository AWS IoT Device SDK for Python.

Vorbereiten der Ausführung von Beispielanwendungen

Vorbereiten der Ausführung von Beispielanwendungen
  • Erstellen des certs Verzeichnisses. Kopieren Sie die Dateien für den privaten Schlüssel, das Gerätezertifikat und das Stammzertifikat der Zertifizierungsstelle, die Sie bei der Erstellung und Registrierung des Objekts gespeichert haben, in AWS IoT Ressourcen erstellen des certs Verzeichnisses. Die Dateinamen der einzelnen Dateien im Zielverzeichnis sollten mit denen in der Tabelle übereinstimmen.

    Bei den Befehlen im nächsten Abschnitt wird davon ausgegangen, dass Ihr Schlüssel und Ihre Zertifikatdateien wie in dieser Tabelle gezeigt auf dem Gerät gespeichert sind.

    Linux/macOS

    Führen Sie diesen Befehl aus, um das Unterverzeichnis certs zu erstellen, das Sie beim Ausführen der Beispielanwendungen verwenden werden.

    mkdir ~/certs

    Kopieren Sie die Dateien in das neue Unterverzeichnis in die Zieldateipfade, die in der folgenden Tabelle aufgeführt sind.

    Namen der Zertifikatsdateien

    Datei

    Dateipfad

    Privater Schlüssel

    ~/certs/private.pem.key

    Gerätezertifikat

    ~/certs/device.pem.crt

    CA-Stammzertifikat

    ~/certs/Amazon-root-CA-1.pem

    Führen Sie diesen Befehl aus, um die Dateien im Verzeichnis certs aufzulisten und sie mit den in der Tabelle aufgeführten Dateien zu vergleichen.

    ls -l ~/certs
    Windows

    Führen Sie diesen Befehl aus, um das Unterverzeichnis certs zu erstellen, das Sie beim Ausführen der Beispielanwendungen verwenden werden.

    mkdir %USERPROFILE%\certs

    Kopieren Sie die Dateien in das neue Unterverzeichnis in die Zieldateipfade, die in der folgenden Tabelle aufgeführt sind.

    Namen der Zertifikatsdateien

    Datei

    Dateipfad

    Privater Schlüssel

    %USERPROFILE%\certs\private.pem.key

    Gerätezertifikat

    %USERPROFILE%\certs\device.pem.crt

    CA-Stammzertifikat

    %USERPROFILE%\certs\Amazon-root-CA-1.pem

    Führen Sie diesen Befehl aus, um die Dateien im Verzeichnis certs aufzulisten und sie mit den in der Tabelle aufgeführten Dateien zu vergleichen.

    dir %USERPROFILE%\certs

Konfigurieren Sie die Richtlinie und führen Sie die Beispielanwendung aus

In diesem Abschnitt richten Sie Ihre Richtlinie ein und führen das pubsub.py Beispielskript aus, das sich im aws-iot-device-sdk-python-v2/samples Verzeichnis von befindet AWS IoT-Geräte-SDK for Python. Dieses Skript zeigt, wie Ihr Gerät die MQTT-Bibliothek verwendet, um MQTT-Nachrichten zu veröffentlichen und zu abonnieren.

Die pubsub.py Beispiel-App abonniert ein Thema, test/topic, veröffentlicht 10 Nachrichten zu diesem Thema und zeigt die Nachrichten so an, wie sie vom Message Broker empfangen wurden.

Zur Ausführung der Beispielanwendung pubsub.py benötigen Sie die folgenden Informationen:

Anwendungsparameterwerte

Parameter

Wo der Wert gefunden werden kann

your-iot-endpoint
  1. Wählen Sie in der AWS IoT -Konsole im linken Menü Einstellungen.

  2. Auf der Seite Einstellungen wird Ihr Endpunkt im Abschnitt Gerätedatenendpunkt angezeigt.

Der your-iot-endpointWert hat das Format:endpoint_id-ats.iot.region.amazonaws.com, zum Beispiela3qj468EXAMPLE-ats.iot.us-west-2.amazonaws.com.

Bevor Sie das Skript ausführen, stellen Sie sicher, dass die Richtlinie für Ihr Objekt die Berechtigungen für das Beispielskript zum Herstellen einer Verbindung, zum Abonnieren, Veröffentlichen und Empfangen vorsieht.

Um das Richtliniendokument für eine Objektressource zu finden und zu überprüfen
  1. Suchen Sie in der AWS IoT -Konsole in der Liste Objekte nach der Objektressource, die Ihrem Gerät entspricht.

  2. Wählen Sie den Link Name der Objektressource, die für Ihr Gerät steht, um die Seite mit den Objektdetails zu öffnen.

  3. Wählen Sie auf der Seite mit den Objektdetails auf der Registerkarte Zertifikate das Zertifikat aus, das an die Objektressource angehängt ist. Die Liste sollte nur ein Zertifikat enthalten. Wenn es mehrere gibt, wählen Sie das Zertifikat aus, dessen Dateien auf Ihrem Gerät installiert sind und mit dem eine Verbindung zu AWS IoT Core hergestellt werden soll.

    Wählen Sie auf der Seite mit den Zertifikatsdetails auf der Registerkarte Richtlinien die Richtlinie aus, die mit dem Zertifikat verknüpft ist. Es sollte nur eine geben. Wenn es mehrere gibt, wiederholen Sie den nächsten Schritt für alle, um sicherzustellen, dass mindestens eine Richtlinie den erforderlichen Zugriff gewährt.

  4. Suchen Sie auf der Seite mit der Richtlinienübersicht den JSON-Editor und wählen Sie Richtliniendokument bearbeiten aus, um das Richtliniendokument nach Bedarf zu überprüfen und zu bearbeiten.

  5. Das Richtlinien-JSON wird im folgenden Beispiel angezeigt. Ersetzen Sie das "Resource" Element region:account durch Ihr AWS-Region und AWS-Konto in jedem der Resource Werte.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Publish", "iot:Receive" ], "Resource": [ "arn:aws:iot:region:account:topic/test/topic" ] }, { "Effect": "Allow", "Action": [ "iot:Subscribe" ], "Resource": [ "arn:aws:iot:region:account:topicfilter/test/topic" ] }, { "Effect": "Allow", "Action": [ "iot:Connect" ], "Resource": [ "arn:aws:iot:region:account:client/test-*" ] } ] }
Linux/macOS
Um das Beispielskript unter Linux/macOS auszuführen
  1. Navigieren Sie in Ihrem Befehlszeilenfenster zu dem ~/aws-iot-device-sdk-python-v2/samples/node/pub_sub-Verzeichnis, das das SDK mithilfe dieser Befehle erstellt hat.

    cd ~/aws-iot-device-sdk-python-v2/samples
  2. Ersetzen Sie in Ihrem Befehlszeilenfenster your-iot-endpointwie angegeben und führen Sie diesen Befehl aus.

    python3 pubsub.py --endpoint your-iot-endpoint --ca_file ~/certs/Amazon-root-CA-1.pem --cert ~/certs/device.pem.crt --key ~/certs/private.pem.key
Windows
Um die Beispiel-App auf einem Windows-PC auszuführen
  1. Navigieren Sie in Ihrem Befehlszeilenfenster zu dem %USERPROFILE%\aws-iot-device-sdk-python-v2\samples-Verzeichnis, das das SDK erstellt hat, und installieren Sie die Beispiel-App mithilfe dieser Befehle.

    cd %USERPROFILE%\aws-iot-device-sdk-python-v2\samples
  2. Ersetzen Sie in Ihrem Befehlszeilenfenster your-iot-endpointwie angegeben und führen Sie diesen Befehl aus.

    python3 pubsub.py --endpoint your-iot-endpoint --ca_file %USERPROFILE%\certs\Amazon-root-CA-1.pem --cert %USERPROFILE%\certs\device.pem.crt --key %USERPROFILE%\certs\private.pem.key

Das Beispielskript:

  1. Stellt eine Verbindung mit dem AWS IoT Core für Ihr Konto her.

  2. Abonniert das Nachrichtenthema test/topic und zeigt die Nachrichten an, die es zu diesem Thema erhält.

  3. Veröffentlicht 10 Nachrichten zum Thema test/topic.

  4. Die Ausgabe sieht ähnlich aus wie:

Connected! Subscribing to topic 'test/topic'... Subscribed with QoS.AT_LEAST_ONCE Sending 10 message(s) Publishing message to topic 'test/topic': Hello World! [1] Received message from topic 'test/topic': b'"Hello World! [1]"' Publishing message to topic 'test/topic': Hello World! [2] Received message from topic 'test/topic': b'"Hello World! [2]"' Publishing message to topic 'test/topic': Hello World! [3] Received message from topic 'test/topic': b'"Hello World! [3]"' Publishing message to topic 'test/topic': Hello World! [4] Received message from topic 'test/topic': b'"Hello World! [4]"' Publishing message to topic 'test/topic': Hello World! [5] Received message from topic 'test/topic': b'"Hello World! [5]"' Publishing message to topic 'test/topic': Hello World! [6] Received message from topic 'test/topic': b'"Hello World! [6]"' Publishing message to topic 'test/topic': Hello World! [7] Received message from topic 'test/topic': b'"Hello World! [7]"' Publishing message to topic 'test/topic': Hello World! [8] Received message from topic 'test/topic': b'"Hello World! [8]"' Publishing message to topic 'test/topic': Hello World! [9] Received message from topic 'test/topic': b'"Hello World! [9]"' Publishing message to topic 'test/topic': Hello World! [10] Received message from topic 'test/topic': b'"Hello World! [10]"' 10 message(s) received. Disconnecting... Disconnected!

Wenn Probleme bei der Ausführung der Beispiel-App auftreten, überprüfen Sie Fehlerbehebung bei Problemen mit der Beispiel-App.

Sie können den Parameter --verbosity Debug auch zur Befehlszeile hinzufügen, sodass die Beispiel-App detaillierte Meldungen darüber anzeigt, was sie tut. Diese Informationen können Ihnen bei der Behebung des Problems helfen.

Nachrichten aus der Beispiel-App in der AWS IoT -Konsole anzeigen

Mithilfe des MQTT-Testclients in der AWS IoT -Konsole können Sie die Nachrichten der Beispiel-App sehen, während sie den Message Broker durchlaufen.

Um die von der Beispiel-App veröffentlichten MQTT-Nachrichten anzuzeigen
  1. Sehen Sie sich MQTT-Nachrichten mit dem AWS IoT MQTT-Client anzeigen an. Auf diese Weise lernen Sie, wie Sie den MQTT-Testclient in der AWS IoT -Konsole verwenden, um MQTT-Nachrichten anzuzeigen, während sie den Message Broker passieren.

  2. Öffnen Sie den MQTT-Testclient in der AWS IoT -Konsole.

  3. Abonnieren Sie unter Thema abonnieren das Thema Test/Thema.

  4. Führen Sie in Ihrem Befehlszeilenfenster die Beispiel-App erneut aus und sehen Sie sich die Nachrichten im MQTT-Client in der AWS IoT -Konsole an.

    Linux/macOS
    cd ~/aws-iot-device-sdk-python-v2/samples python3 pubsub.py --topic test/topic --ca_file ~/certs/Amazon-root-CA-1.pem --cert ~/certs/device.pem.crt --key ~/certs/private.pem.key --endpoint your-iot-endpoint
    Windows
    cd %USERPROFILE%\aws-iot-device-sdk-python-v2\samples python3 pubsub.py --topic test/topic --ca_file %USERPROFILE%\certs\Amazon-root-CA-1.pem --cert %USERPROFILE%\certs\device.pem.crt --key %USERPROFILE%\certs\private.pem.key --endpoint your-iot-endpoint

Weitere Informationen zu MQTT und zur AWS IoT Core Unterstützung des Protokolls finden Sie unter MQTT.

Führen Sie das Beispiel „Shared Subscription“ in Python aus

AWS IoT Core unterstützt Shared Subscriptions sowohl für MQTT 3 als auch für MQTT 5. Gemeinsame Abonnements ermöglichen es mehreren Clients, ein Abonnement für ein Thema gemeinsam zu nutzen, und nur ein Client erhält Nachrichten, die zu diesem Thema veröffentlicht wurden, nach dem Zufallsprinzip. Um gemeinsame Abonnements zu verwenden, abonnieren Clients den Themenfilter eines gemeinsamen Abonnements: $share/{ShareName}/{TopicFilter}.

So konfigurieren Sie die Richtlinie und führen das Beispiel für ein geteiltes Abonnement aus
  1. Um das Beispiel Gemeinsame Abonnements auszuführen, müssen Sie die Richtlinie Ihres Objekts so einrichten, wie es in MQTT 5 Gemeinsame Abonnements dokumentiert ist.

  2. Führen Sie die folgenden Befehle aus, um das Gemeinsame Abonnements-Beispiel auszuführen.

    Linux/macOS
    Um das Beispielskript unter Linux/macOS auszuführen
    1. Navigieren Sie in Ihrem Befehlszeilenfenster zu dem ~/aws-iot-device-sdk-python-v2/samples-Verzeichnis, das das SDK mithilfe dieser Befehle erstellt hat.

      cd ~/aws-iot-device-sdk-python-v2/samples
    2. Ersetzen Sie in Ihrem Befehlszeilenfenster your-iot-endpointwie angegeben und führen Sie diesen Befehl aus.

      python3 mqtt5_shared_subscription.py --endpoint your-iot-endpoint --ca_file ~/certs/Amazon-root-CA-1.pem --cert ~/certs/device.pem.crt --key ~/certs/private.pem.key --group_identifier consumer
    Windows
    Um die Beispiel-App auf einem Windows-PC auszuführen
    1. Navigieren Sie in Ihrem Befehlszeilenfenster zu dem %USERPROFILE%\aws-iot-device-sdk-python-v2\samples-Verzeichnis, das das SDK erstellt hat, und installieren Sie die Beispiel-App mithilfe dieser Befehle.

      cd %USERPROFILE%\aws-iot-device-sdk-python-v2\samples
    2. Ersetzen Sie in Ihrem Befehlszeilenfenster your-iot-endpointwie angegeben und führen Sie diesen Befehl aus.

      python3 mqtt5_shared_subscription.py --endpoint your-iot-endpoint --ca_file %USERPROFILE%\certs\Amazon-root-CA-1.pem --cert %USERPROFILE%\certs\device.pem.crt --key %USERPROFILE%\certs\private.pem.key --group_identifier consumer
    Anmerkung

    Sie können optional eine Gruppen-ID angeben, die Ihren Anforderungen entspricht, wenn Sie das Beispiel ausführen (z. B. --group_identifier consumer). Wenn Sie kein angeben, ist python-sample der Standardgruppen-Identifier.

  3. Die Ausgabe in Ihrer Befehlszeile kann wie folgt aussehen:

    Publisher]: Lifecycle Connection Success [Publisher]: Connected Subscriber One]: Lifecycle Connection Success [Subscriber One]: Connected Subscriber Two]: Lifecycle Connection Success [Subscriber Two]: Connected [Subscriber One]: Subscribed to topic 'test/topic' in shared subscription group 'consumer'. [Subscriber One]: Full subscribed topic is: '$share/consumer/test/topic' with SubAck code: [<SubackReasonCode.GRANTED_QOS_1: 1>] [Subscriber Two]: Subscribed to topic 'test/topic' in shared subscription group 'consumer'. [Subscriber Two]: Full subscribed topic is: '$share/consumer/test/topic' with SubAck code: [<SubackReasonCode.GRANTED_QOS_1: 1>] [Publisher]: Sent publish and got PubAck code: <PubackReasonCode.SUCCESS: 0> [Subscriber Two] Received a publish Publish received message on topic: test/topic Message: b'"Hello World! [1]"' [Publisher]: Sent publish and got PubAck code: <PubackReasonCode.SUCCESS: 0> [Subscriber One] Received a publish Publish received message on topic: test/topic Message: b'"Hello World! [2]"' [Publisher]: Sent publish and got PubAck code: <PubackReasonCode.SUCCESS: 0> [Subscriber Two] Received a publish Publish received message on topic: test/topic Message: b'"Hello World! [3]"' [Publisher]: Sent publish and got PubAck code: <PubackReasonCode.SUCCESS: 0> [Subscriber One] Received a publish Publish received message on topic: test/topic Message: b'"Hello World! [4]"' [Publisher]: Sent publish and got PubAck code: <PubackReasonCode.SUCCESS: 0> [Subscriber Two] Received a publish Publish received message on topic: test/topic Message: b'"Hello World! [5]"' [Publisher]: Sent publish and got PubAck code: <PubackReasonCode.SUCCESS: 0> [Subscriber One] Received a publish Publish received message on topic: test/topic Message: b'"Hello World! [6]"' [Publisher]: Sent publish and got PubAck code: <PubackReasonCode.SUCCESS: 0> [Subscriber Two] Received a publish Publish received message on topic: test/topic Message: b'"Hello World! [7]"' [Publisher]: Sent publish and got PubAck code: <PubackReasonCode.SUCCESS: 0> [Subscriber One] Received a publish Publish received message on topic: test/topic Message: b'"Hello World! [8]"' [Publisher]: Sent publish and got PubAck code: <PubackReasonCode.SUCCESS: 0> [Subscriber Two] Received a publish Publish received message on topic: test/topic Message: b'"Hello World! [9]"' [Publisher]: Sent publish and got PubAck code: <PubackReasonCode.SUCCESS: 0> [Subscriber One] Received a publish Publish received message on topic: test/topic Message: b'"Hello World! [10]"' [Subscriber One]: Unsubscribed to topic 'test/topic' in shared subscription group 'consumer'. [Subscriber One]: Full unsubscribed topic is: '$share/consumer/test/topic' with UnsubAck code: [<UnsubackReasonCode.SUCCESS: 0>] [Subscriber Two]: Unsubscribed to topic 'test/topic' in shared subscription group 'consumer'. [Subscriber Two]: Full unsubscribed topic is: '$share/consumer/test/topic' with UnsubAck code [<UnsubackReasonCode.SUCCESS: 0>] Publisher]: Lifecycle Disconnected [Publisher]: Lifecycle Stopped [Publisher]: Fully stopped Subscriber One]: Lifecycle Disconnected [Subscriber One]: Lifecycle Stopped [Subscriber One]: Fully stopped Subscriber Two]: Lifecycle Disconnected [Subscriber Two]: Lifecycle Stopped [Subscriber Two]: Fully stopped Complete!
  4. Öffnen Sie den MQTT-Testclient in der AWS IoT -Konsole. Abonnieren Sie unter Thema abonnieren das Thema des gemeinsamen Abonnements, z. B.: $share/consumer/test/topic. Sie können bei der Ausführung des Beispiels eine Gruppen-ID angeben, die Ihren Anforderungen entspricht (z. B. --group_identifier consumer). Wenn Sie keine Gruppen-ID angeben, ist der Standardwert python-sample. Weitere Informationen finden Sie im Python-Beispiel für MQTT 5 Shared Subscription und im AWS IoT Core Developer Guide unter Shared Subscriptions.

    Führen Sie in Ihrem Befehlszeilenfenster die Beispiel-App erneut aus und beobachten Sie die Verteilung der Nachrichten in Ihrem MQTT-Testclient der AWS IoT -Konsole und der Befehlszeile.

    Die Ausgabeseite für gemeinsame Abonnements.