Geräte und Aufträge - 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.

Geräte und Aufträge

Geräte können mit AWS IoT Aufträgen über MQTT, HTTP Signature Version 4 oder HTTP TLS kommunizieren. Um den zu verwendenden Endpunkt zu bestimmen, wenn Ihr Gerät mit AWS IoT Aufträgen kommuniziert, führen Sie den DescribeEndpoint Befehl aus. Wenn Sie z. B. den folgenden Befehl ausführen:

aws iot describe-endpoint --endpoint-type iot:Data-ATS

Das Ergebnis sieht in etwa wie folgt aus:

{ "endpointAddress": "a1b2c3d4e5f6g7-ats.iot.us-west-2.amazonaws.com" }

Geräte können mit AWS IoT Aufträgen über das MQTT-Protokoll kommunizieren. Geräte abonnieren MQTT-Themen, um über neue Aufträge benachrichtigt zu werden und Antworten vom AWS IoT Jobs-Service zu erhalten. Geräte veröffentlichen auf MQTT-Themen, um den Status eines Auftrags-Launch abzufragen oder zu aktualisieren. Jedes Gerät verfügt über ein allgemeines MQTT-Thema. Für weitere Informationen zur Veröffentlichung und zum Abonnement von MQTT-Themen vgl. Gerätekommunikationsprotokolle.

Bei dieser Kommunikationsmethode verwendet Ihr Gerät sein gerätespezifisches Zertifikat und seinen privaten Schlüssel, um sich bei AWS IoT Jobs zu authentifizieren.

Ihre Geräte können die folgenden Themen abonnieren. thing-name ist der Name des Objekts, das mit dem Gerät verknüpft ist.

  • $aws/things/thing-name/jobs/notify

    Abonnieren Sie dieses Thema, um Sie zu benachrichtigen, wenn ein Auftragsstart zur Liste der ausstehenden Auftragsstarts hinzugefügt oder daraus entfernt wird.

  • $aws/things/thing-name/jobs/notify-next

    Abonnieren Sie dieses Thema, um Sie zu benachrichtigen, wenn sich die nächste ausstehende Auftragsausführung geändert hat.

  • $aws/things/thing-name/jobs/request-name/accepted

    Der AWS IoT Jobs-Service veröffentlicht Erfolgs- und Fehlermeldungen zu einem MQTT-Thema. Das Thema wird durch Anhängen von accepted oder rejected an das Thema erstellt, mit dem die Anforderung getätigt wurde. Hier request-name ist der Name einer Anforderung wie Get und das Thema kann sein: $aws/things/myThing/jobs/get. AWS IoT Jobs veröffentlicht dann Erfolgsmeldungen zum $aws/things/myThing/jobs/get/accepted Thema.

  • $aws/things/thing-name/jobs/request-name/rejected

    Hier ist request-name der Name Ihrer Region, z. B. Get. Wenn die Anforderung fehlgeschlagen ist, veröffentlicht AWS IoT Jobs Fehlermeldungen zum $aws/things/myThing/jobs/get/rejected Thema.

Sie können auch die folgenden HTTPS API-Operationen verwenden:

Geräte können mit AWS IoT Aufträgen über HTTP Signature Version 4 auf Port 443 kommunizieren. Dies ist die Methode, die von den AWS SDKs und der CLI verwendet wird. Weitere Informationen zu diesen Tools finden Sie unter -AWS CLI Befehlsreferenz: iot-jobs-data oder AWS -SDKs und -Tools. Weitere Informationen finden Sie im IotJobsDataPlane Abschnitt für Ihre bevorzugte Sprache.

Bei dieser Kommunikationsmethode verwendet Ihr Gerät IAM-Anmeldeinformationen, um sich bei AWS IoT Jobs zu authentifizieren.

Für diese Methode stehen die folgenden Befehle zur Verfügung:

  • DescribeJobExecution

    aws iot-jobs-data describe-job-execution ...

  • GetPendingJobExecutions

    aws iot-jobs-data get-pending-job-executions ...

  • StartNextPendingJobExecution

    aws iot-jobs-data start-next-pending-job-execution ...

  • UpdateJobExecution

    aws iot-jobs-data update-job-execution ...

Geräte können mit AWS IoT Aufträgen über HTTP TLS auf Port 8443 über einen Softwareclient eines Drittanbieters kommunizieren, der dieses Protokoll unterstützt.

Bei dieser Methode verwendet Ihr Gerät eine auf dem X.509-Zertifikat basierende Authentifizierung (z. B. unter Verwendung des gerätespezifischen Zertifikats und des privaten Schlüssels).

Für diese Methode stehen die folgenden Befehle zur Verfügung:

  • DescribeJobExecution

  • GetPendingJobExecutions

  • StartNextPendingJobExecution

  • UpdateJobExecution

Programmieren von Geräten zur Arbeit mit Aufträgen

Die Beispiele in diesem Abschnitt verwenden MQTT, um zu veranschaulichen, wie ein Gerät mit dem AWS IoT Jobs-Service zusammenarbeitet. Oder Sie könnten die entsprechenden API- oder CLI-Befehle verwenden. Bei diesen Beispielen wird davon ausgegangen, dass ein Gerät mit der Bezeichnung MyThing die folgenden MQTT-Themen abonniert hat:

  • $aws/things/MyThing/jobs/notify (oder $aws/things/MyThing/jobs/notify-next)

  • $aws/things/MyThing/jobs/get/accepted

  • $aws/things/MyThing/jobs/get/rejected

  • $aws/things/MyThing/jobs/jobId/get/accepted

  • $aws/things/MyThing/jobs/jobId/get/rejected

Wenn Sie die Codesignatur für verwenden AWS IoT, muss Ihr Gerätecode die Signatur Ihrer Codedatei überprüfen. Die Signatur befindet sich in dem Auftragsdokument in der codesign-Eigenschaft. Weitere Informationen zum Verifizieren einer Codedatei-Signatur finden Sie unter Geräte-Agent-Beispiel.