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.
Verwalten von Aufträgen
Verwenden Sie Aufträge, um Geräte über ein Software- oder Firmware-Update zu informieren. Sie können die AWS IoT Konsole
Codesignatur für Aufgaben
Wenn Sie Code an Geräte senden, damit Geräte erkennen können, ob der Code während der Übertragung geändert wurde, empfehlen wir, die Codedatei mit dem AWS CLI zu signieren. Anweisungen finden Sie unter Erstellen und Verwalten von Aufträgen mithilfe von AWS CLI.
Weitere Informationen finden Sie unter Wozu dient Codesignatur AWS IoT? .
Auftragsdokument
Bevor Sie einen Auftrag erstellen, müssen Sie ein Auftragsdokument erstellen. Wenn Sie Code Signing für verwenden AWS IoT, müssen Sie Ihr Auftragsdokument in einen versionierten Amazon S3 S3-Bucket hochladen. Weitere Informationen zum Erstellen eines Amazon S3-Buckets und zum Hochladen von Dateien in diesen Bucket finden Sie unter Erste Schritte mit Amazon Simple Storage Service im Amazon S3 Einführungshandbuch.
Tipp
Beispiele für Auftragsdokumente finden Sie im Beispiel jobs-agent.js
Vorsigniert URLs
Ihr Jobdokument kann eine vorsignierte Amazon S3 S3-Datei enthaltenURL, die auf Ihre Codedatei (oder eine andere Datei) verweist. Vorsignierte Amazon S3 URLs sind nur für einen begrenzten Zeitraum gültig und werden generiert, wenn ein Gerät ein Auftragsdokument anfordert. Da das vorsignierte Dokument URL nicht bei der Erstellung des Auftragsdokuments erstellt wird, verwenden Sie stattdessen einen Platzhalter URL in Ihrem Auftragsdokument. Ein Platzhalter URL sieht wie folgt aus:
${aws:iot:s3-presigned-url:https://s3.region.amazonaws.com/
<bucket>
/<code
file>
}
Wobei:
-
bucket
ist der Amazon S3 S3-Bucket, der die Codedatei enthält. -
code file
ist der Amazon S3 S3-Schlüssel der Codedatei.
Wenn ein Gerät das Auftragsdokument anfordert, AWS IoT generiert es das vorsignierte Dokument URL und ersetzt den Platzhalter durch das URL vorsignierte. URL Ihr Auftragsdokument wird dann an das Gerät gesendet.
IAMRolle, um die Erlaubnis zum Herunterladen von Dateien von S3 zu erteilen
Wenn Sie einen Job erstellen, der vorsigniertes Amazon S3 verwendetURLs, müssen Sie eine IAM Rolle angeben. Die Rolle muss die Berechtigung zum Herunterladen von Dateien aus dem Amazon S3-Bucket gewähren, in dem die Daten oder Updates gespeichert sind. Die Rolle muss auch die Berechtigung für AWS IoT zur Übernahme der Rolle gewähren.
Sie können ein optionales Timeout für den vorsignierten Benutzer angeben. URL Weitere Informationen finden Sie unter. CreateJob
Erteilen Sie AWS IoT Jobs die Erlaubnis, Ihre Rolle anzunehmen
-
Gehen Sie zum Rollen-Hub der IAM Konsole
und wählen Sie Ihre Rolle aus. -
Wählen Sie auf der Registerkarte Vertrauensbeziehungen die Option Vertrauensstellung bearbeiten aus und ersetzen Sie das Richtliniendokument durch das FolgendeJSON. Wählen Sie Update Trust Policy (Trust Policy aktualisieren).
{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "iot.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
-
Verwenden Sie die globalen Konditionsschlüssel
aws:SourceArn
undaws:SourceAccount
für die Richtlinie, um vor dem Confused-Deputy-Problem zu schützen.Wichtig
Ihr
aws:SourceArn
muss das Format einhalten:arn:aws:iot:
. Stellen Sie sicher, dassregion
:account-id
:*region
entspricht Ihrer AWS IoT Region undaccount-id
entspricht Ihrer Kundenkonto-ID. Weitere Informationen finden Sie unter Vermeidung des dienstübergreifenden Confused-Deputy-Problems.{ "Effect": "Allow", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "iot.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" }, "ArnLike": { "aws:SourceArn": "arn:aws:iot:*:123456789012:job/*" } } } ] }
-
Wenn Ihr Job ein Jobdokument verwendet, das ein Amazon S3 S3-Objekt ist, wählen Sie Permissions und verwenden Sie FolgendesJSON. Dadurch wird eine Richtlinie hinzugefügt, die das Herunterladen von Dateien aus Ihrem Amazon S3-Bucket gestattet:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::
your_S3_bucket
/*" } ] }
Vorsigniert URL für den Datei-Upload
Wenn Ihre Geräte während einer Auftragsbereitstellung Dateien in einen Amazon S3 S3-Bucket hochladen müssen, können Sie den folgenden vorsignierten URL Platzhalter in Ihr Jobdokument aufnehmen:
${aws:iot:s3-presigned-url-upload:https://s3.region.amazonaws.com/
<bucket>
/<key>
}
Sie können maximal zwei von jedem${thingName}
,${jobId}
, und ${executionNumber}
als reservierte Schlüsselwörter innerhalb des key
Attributs im Platzhalter für den Datei-Upload in Ihrem URL Jobdokument verwenden. Der lokale Platzhalter, der diese reservierten Schlüsselwörter im key
Attribut darstellt, wird analysiert und ersetzt, wenn die Jobausführung erstellt wird. Durch die Verwendung eines lokalen Platzhalters mit reservierten Schlüsselwörtern für jedes Gerät wird sichergestellt, dass jede hochgeladene Datei von einem Gerät spezifisch für dieses Gerät ist und nicht durch eine ähnliche hochgeladene Datei von einem anderen Gerät überschrieben wird, auf das dieselbe Auftragsbereitstellung abzielt. Informationen zur Fehlerbehebung bei lokalen Platzhaltern innerhalb eines vordefinierten URL Platzhalters für das Hochladen von Dateien während einer Auftragsbereitstellung finden Sie unter. Allgemeine Fehlermeldungen zur Fehlerbehebung
Anmerkung
Der Amazon S3 S3-Bucket-Name darf nicht den lokalen Platzhalter enthalten, der die reservierten Schlüsselwörter für die hochgeladene Datei darstellt. Der lokale Platzhalter muss sich im Attribut befinden. key
Dieser vorsignierte URL Platzhalter wird in Ihrem Auftragsdokument URL in einen vorsignierten Amazon S3 S3-Upload umgewandelt, wenn ein Gerät ihn empfängt. Ihre Geräte verwenden dies, um Dateien in einen Amazon S3 S3-Ziel-Bucket hochzuladen.
Anmerkung
Wenn der Amazon S3 S3-Bucket und der Schlüssel nicht im obigen Platzhalter bereitgestellt werdenURL, generiert AWS IoT
Jobs automatisch einen Schlüssel für jedes Gerät, wobei maximal zwei von jeweils ${thingName}
${jobId}
, und ${executionNumber}
verwendet werden.
URLMit Amazon S3 S3-Versionierung vorab signiert
Der Schutz der Integrität einer Datei, die in einem Amazon S3 S3-Bucket gespeichert ist, ist entscheidend für die Gewährleistung sicherer Auftragsbereitstellungen unter Verwendung dieser Datei für Ihre Geräteflotte. Mithilfe der Amazon S3 S3-Versionierung können Sie für jede Variante der in Ihrem Amazon S3 S3-Bucket gespeicherten Datei eine Versions-ID hinzufügen, um jede Version der Datei zu verfolgen. Dies gibt Aufschluss darüber, welche Version der Datei mithilfe AWS IoT von Jobs für Ihre Geräteflotte bereitgestellt wird. Weitere Informationen zu Amazon S3 S3-Buckets, die Versionierung verwenden, finden Sie unter Verwenden der Versionierung in Amazon S3 S3-Buckets.
Wenn die Datei in Amazon S3 gespeichert ist und das Jobdokument einen vorsignierten URL Platzhalter enthält, generiert AWS IoT Jobs mithilfe des Amazon S3-Buckets, des Bucket-Schlüssels und der Version der URL im Amazon S3 S3-Bucket gespeicherten Datei ein im Job-Bucket vorsigniertes Dokument. Dieser im Job-Dokument URL generierte vorsignierte Platzhalter ersetzt den ursprünglich im Job-Dokument vorsignierten URL Platzhalter. Wenn Sie die in Ihrem Amazon S3 S3-Bucket gespeicherte Datei aktualisieren, versionId
wird eine neue Version der Datei und weitere Versionen erstellt, um die vorgenommenen Aktualisierungen zu signalisieren und die Möglichkeit zu bieten, diese spezifische Datei bei future Auftragsbereitstellungen als Ziel zu verwenden.
In den folgenden Beispielen finden Sie eine Vorher- und Nachbetrachtung des Amazon S3, das URLs in Ihrem Auftragsdokument vorsigniert wurde, mit demversionId
:
Vorsignierter Amazon S3 URL S3-Platzhalter (vor der Auftragsbereitstellung)
//Virtual-hosted style URL ${aws:iot:s3-presigned-url:https://
bucket-name
.s3.region-code
.amazonaws.com/key-name
%3FversionId%3Dversion-id
} //Path-style URL ${aws:iot:s3-presigned-url:https://s3.region-code
.amazonaws.com/bucket-name
/key-name
%3FversionId%3Dversion-id
}
Amazon S3 vorab signiert URL (während der Auftragsbereitstellung)
//Virtual-hosted style URL ${aws:iot:s3-presigned-url:https://
sample-bucket-name
.s3.us-west-2
.amazonaws.com/sample-code-file.png
%3FversionId%3Dversion1
} //Path-style ${aws:iot:s3-presigned-url:https://s3.us-west-2
.amazonaws.com/sample-bucket-name
/sample-code-file.png
%3FversionId%3Dversion1
}
Weitere Informationen zu virtuell gehosteten Objekten und URLs Pfadobjekten in Amazon S3 finden Sie unter Virtual-hosted-style Anfragen und Anfragen im Path-Stil.
Anmerkung
Wenn Sie an ein vorsigniertes Amazon S3 anhängen versionId
möchtenURL, muss es der Kodierungsunterstützung entsprechenURL. AWS SDK for Java 2.x Weitere Informationen finden Sie unter Änderungen beim Parsen von Amazon S3 URIs von Version 1 zu Version 2.