Jobs vorbereiten 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.

Jobs vorbereiten AWS IoT

AWS IoT Device Management Der Softwarepaketkatalog erweitert AWS IoT Jobs um Ersetzungsparameter und die Integration mit AWS IoT Flottenindizierung, dynamischen Dinggruppen und dem reservierten Named AWS IoT Shadow des Dings.

Anmerkung

Um alle Funktionen nutzen zu können, die der Softwarepaketkatalog bietet, müssen Sie die folgenden AWS Identity and Access Management (IAM-) Rollen und Richtlinien erstellen: AWS IoT Job-Rechte zum Bereitstellen von Paketversionen und AWS IoT Job-Rechte zum Aktualisieren des reservierten Named Shadow. Weitere Informationen finden Sie unter Vorbereitung der Sicherheit

Ersetzungsparameter für Jobs AWS IoT

Sie können Substitutionsparameter als Platzhalter in Ihrem AWS IoT Jobdokument verwenden. Wenn der Auftragsservice auf einen Substitutionsparameter stößt, verweist er den Auftrag auf das Attribut einer benannten Softwareversion für den Parameterwert. Sie können diesen Prozess verwenden, um ein einzelnes Auftragsdokument zu erstellen und die Metadaten über allgemeine Attribute an den Auftrag zu übergeben. Sie könnten z. B. eine Amazon Simple Storage Service (Amazon S3) -URL, einen Amazon-Ressourcennamen (ARN) eines Softwarepakets (ARN) oder eine Signatur über Paketversionsattribute an das Auftragsdokument übergeben.

Der Substitutionsparameter sollte im Auftragsdokument wie folgt formatiert sein:

${aws:iot:package:<packageName>:version:<versionName>:attributes:<anyAttributeName>}

In diesem Beispiel gibt es ein Softwarepaket mit dem Namen samplePackage, und es hat eine Paketversion 2.1.5 mit den folgenden Attributen:

  • Name: s3URL, Wert: https://EXAMPIEBUCKET.s3.us-west-2.amazonaws.com/exampleCodeFile

    • Dieses Attribut identifiziert den Speicherort der Codedatei, die in Amazon S3 gespeichert ist.

  • Name: signature, Wert: aaaaabbbbbcccccdddddeeeeefffffggggghhhhhiiiiijjjj

    • Dieses Attribut stellt einen Wert für die Codesignatur bereit, den das Gerät als Sicherheitsmaßnahme benötigt. Weitere Informationen finden Sie unter Codesignatur für Aufträge. Hinweis: Dieses Attribut ist ein Beispiel und nicht als Teil des Softwarepaket-Katalogs oder von Aufträgen erforderlich.

Für downloads wird der Auftragsdokumentparameter wie folgt geschrieben:

{ "samplePackage": "${aws:iot:package:samplePackage1:version:2.1.5:attributes:s3URL}" }

Für signature wird der Auftragsdokumentparameter wie folgt geschrieben:

{ "samplePackage": "${aws:iot:package:samplePackage1:version:2.1.5:attributes:signature}" }

Das vollständige Auftragsdokument ist wie folgt geschrieben:

{ ... "Steps": { "uninstall": ["samplePackage"], "download": [ { "samplePackage": "${aws:iot:package:samplePackage1:version:2.1.5:attributes:s3URL}" }, ], "signature": [ "samplePackage" : "${aws:iot:package:samplePackage1:version:2.1.5:attributes:signature}" ] } }

Nachdem die Ersetzung vorgenommen wurde, wird das folgende Auftragsdokument auf den Geräten bereitgestellt:

{ ... "Steps": { "uninstall": ["samplePackage"], "download": [ { "samplePackage": "https://EXAMPIEBUCKET.s3.us-west-2.amazonaws.com/exampleCodeFile" }, ], "signature": [ "samplePackage" : "aaaaabbbbbcccccdddddeeeeefffffggggghhhhhiiiiijjjj" ] } }

Weitere Informationen zu AWS IoT Jobs, zum Erstellen von Jobdokumenten und zum Bereitstellen von Jobs finden Sie unter Jobs.

Vorbereitung des Auftragsdokuments und der Paketversion für die Bereitstellung

Wenn eine Paketversion erstellt wird, befindet sie sich in einem draft Zustand, der anzeigt, dass sie für die Bereitstellung vorbereitet wird. Um die Paketversion für die Bereitstellung vorzubereiten, müssen Sie ein Job-Dokument erstellen, das Dokument an einem Ort speichern, auf den der Job zugreifen kann (z. B. Amazon S3), und sicherstellen, dass die Paketversion die Attributwerte enthält, die das Job-Dokument verwenden soll. (Hinweis: Sie können Attribute für eine Paketversion nur aktualisieren, solange sie sich im draft Status befindet.)

Wenn Sie mit der Paketversion zufrieden sind, veröffentlichen Sie sie entweder über die Seite mit den Softwarepaketdetails in der AWS IoT Konsole oder indem Sie den API-Vorgang UpdatePackageVersion ausführen. Sie können dann bei der Erstellung des Jobs entweder über die AWS IoT Konsole oder durch Ausführen des CreateJobAPI-Vorgangs auf die Paketversion verweisen.

Benennen der Pakete und Versionen bei der Bereitstellung

Wenn Sie einen AWS IoT Auftrag bereitstellen, müssen Sie dieselben Softwarepakete und Paketversionen benennen, die im Auftragsdokument in der Auftragsbereitstellung (destinationPackageVersions) benannt sind. Andernfalls erhalten Sie eine Fehlermeldung mit der Angabe der fehlenden Paketversionen.

Sie können zusätzliche Softwarepakete und Paketversionen hinzufügen, die nicht im Auftragsdokument enthalten sind. Wenn Sie dies tun, gibt der Auftrag dem Gerät keine Anweisungen, was mit diesen Dateien geschehen soll, und es wird erwartet, dass das Gerät weiß, was zu tun ist. Sie können beispielsweise zusätzliche Dateien an das Gerät senden, wenn diese Daten enthalten, auf die das Gerät verweisen könnte.

Jobs mithilfe AWS IoT dynamischer Dinggruppen gezielt ausrichten

Der Softwarepaketkatalog arbeitet mit Flottenindizierung, AWS IoT Aufträgen und AWS IoT dynamischen Objektgruppen, um Geräte innerhalb Ihrer Flotte zu filtern und gezielt auszuwählen, um auszuwählen, welche Paketversion auf Ihren Geräten bereitgestellt werden soll. Sie können eine Flottenindizierungsabfrage auf der Grundlage der aktuellen Paketinformationen Ihres Geräts ausführen und diese Dinge gezielt für einen AWS IoT Job auswählen. Sie können auch Softwareupdates veröffentlichen, jedoch nur für geeignete Zielgeräte. Sie können beispielsweise angeben, dass Sie eine Konfiguration nur für die Geräte bereitstellen möchten, auf denen derzeit die iot-device-client 1.5.09 ausgeführt wird. Weitere Informationen finden Sie unter Erstellen einer dynamischen Objektgruppe.

Reservierte benannte Schatten- und Paketversionen

Falls konfiguriert, können AWS IoT Jobs den reservierten Namen shadow ($package) einer Sache aktualisieren, wenn der Job erfolgreich abgeschlossen wurde. In diesem Fall müssen Sie dem reservierten benannten Schatten eines Objekts keine Paketversion manuell zuordnen.

In den folgenden Situationen können Sie sich dafür entscheiden, eine Paketversion manuell dem reservierten benannten Schatten des Objekts zuzuordnen oder zu aktualisieren:

  • Sie registrieren eine Sache unter, AWS IoT Core ohne die installierte Paketversion zuzuordnen.

  • AWS IoT Jobs ist nicht so konfiguriert, dass es den reservierten Namen Shadow des Dings aktualisiert.

  • Sie verwenden ein internes Verfahren, um Paketversionen an Ihre Flotte zu versenden, und dieser Prozess wird nicht aktualisiert, AWS IoT Core wenn er abgeschlossen ist.

Anmerkung

Wir empfehlen Ihnen, AWS IoT Jobs zu verwenden, um die Paketversion im reservierten Shadow ($package) zu aktualisieren. Das Aktualisieren des Versionsparameters im $package Shadow durch andere Prozesse (z. B. manuelle oder programmatische API-Aufrufe), wenn AWS IoT Jobs ebenfalls für die Aktualisierung des Shadows konfiguriert ist, kann zu Inkonsistenzen zwischen der tatsächlichen Version auf dem Gerät und der Version führen, die an den reservierten benannten Shadow gemeldet wurde.

Sie können eine Paketversion zum reservierten Schatten ($package) eines Objekts über die Konsole oder den UpdateThingShadow-API-Vorgang hinzufügen oder aktualisieren. Weitere Informationen finden Sie unter Eine Paketversion einer Sache zuordnen. AWS IoT

Anmerkung

Durch das Zuordnen einer Paketversion zu einem AWS IoT Ding wird die Gerätesoftware nicht direkt aktualisiert. Sie müssen die Paketversion auf dem Gerät bereitstellen, um die Gerätesoftware zu aktualisieren.

Deinstallation eines Softwarepakets und seiner Paketversion

$nullist ein reservierter Platzhalter, der den AWS IoT Jobs-Dienst auffordert, das vorhandene Softwarepaket und die Paketversion aus dem reservierten benannten Schatten des Geräts zu entfernen. $package Weitere Informationen finden Sie unter Reservierter benannter Schatten.

Um diese Funktion zu verwenden, ersetzen Sie den Versionsnamen am Ende des PackageVersionZiel-Amazon-Ressourcennamens (ARN) durch$null. Anschließend müssen Sie Ihren Service anweisen, die Software vom Gerät zu entfernen.

Der autorisierte ARN verwendet das folgende Format:

arn:aws:iot:<regionCode>:111122223333:package/<packageName>/version/$null

Zum Beispiel

$ aws iot create-job \ ... \ --destinationPackageVersions ["arn:aws:iot:us-east-1:111122223333:package/samplePackage/version/$null"]