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.
Erstellen eines OTA Updates mit dem AWS CLI
Wenn Sie das verwenden, um ein OTA Update AWS CLI zu erstellen, gehen Sie wie folgt vor:
-
Signieren Sie Ihr Firmware-Image digital.
-
Erstellen Sie einen Stream Ihres digital signierten Firmware-Images.
-
Starten Sie einen OTA Aktualisierungsjob.
Firmware-Updates digital signieren
Wenn Sie den verwenden, AWS CLI um OTA Updates durchzuführen, können Sie Code Signing für verwenden AWS IoT, oder Sie können Ihr Firmware-Update selbst signieren. Eine Liste der kryptografischen Signaturen und Hashing-Algorithmen, die von Code Signing for unterstützt werden AWS IoT, finden Sie unter. SigningConfigurationOverrides Wenn Sie einen kryptografischen Algorithmus verwenden möchten, der von Code Signing for nicht unterstützt wird AWS IoT, müssen Sie Ihre Firmware-Binärdatei signieren, bevor Sie sie auf Amazon S3 hochladen.
Signieren Sie Ihr Firmware-Image mit Code Signing für AWS IoT
Um Ihr Firmware-Image mit Code Signing for zu signieren AWS IoT, können Sie eines der AWS SDKsBefehlszeilentools oder
Nachdem Sie die Codesignatur-Tools installiert und konfiguriert haben, kopieren Sie Ihr unsigniertes Firmware-Image in Ihren Amazon S3 S3-Bucket und starten Sie einen Codesignatur-Job mit den folgenden Befehlen. AWS CLI Der Befehl put-signing-profile erstellt ein wiederverwendbares Codesignierungsprofil. Der Befehl start-signing-job startet die Signierungsaufgabe.
aws signer put-signing-profile \ --profile-name
your_profile_name
\ --signing-material certificateArn=arn:aws:acm::your-region
:your-aws-account-id
:certificate/your-certificate-id
\ --platformyour-hardware-platform
\ --signing-parameters certname=your_certificate_path_on_device
aws signer start-signing-job \
--source 's3={bucketName=your_s3_bucket
,key=your_s3_object_key
,version=your_s3_object_version_id
}' \
--destination 's3={bucketName=your_destination_bucket
}' \
--profile-name your_profile_name
Anmerkung
your-source-bucket-name
and your-destination-bucket-name
kann derselbe Amazon S3 S3-Bucket sein.
Dies sind die Parameter für die Befehle put-signing-profile und start-signing-job:
source
-
Gibt den Speicherort der unsignierten Firmware in einem S3-Bucket an.
-
bucketName
: Der Name des S3-Buckets. -
key
: Der Schlüssel (Dateiname) Ihrer Firmware in Ihrem S3-Bucket. -
version
: Die S3-Version Ihrer Firmware in Ihrem S3-Bucket. Diese unterscheidet sich von Ihrer Firmware-Version. Sie finden es, indem Sie zur Amazon S3 S3-Konsole gehen, Ihren Bucket auswählen und oben auf der Seite neben Versionen die Option Anzeigen auswählen.
-
destination
-
Das Ziel auf dem Gerät, auf das die signierte Firmware im S3-Bucket kopiert wird. Das Format dieses Parameters ist mit dem von Parameter
source
identisch. signing-material
-
Das ARN Ihres Codesignaturzertifikats. Dies ARN wird generiert, wenn Sie Ihr Zertifikat in importieren. ACM
signing-parameters
-
Eine Zuordnung aus Schlüssel-Wert-Paaren für die Signierung. Diese können alle Informationen beinhalten, die Sie beim Signieren verwenden möchten.
Anmerkung
Dieser Parameter ist erforderlich, wenn Sie ein Codesignaturprofil zum Signieren von OTA Updates mit Code Signing for erstellen. AWS IoT
platform
-
Die
platformId
der Hardwareplattform, auf die Sie das Update verteilen. OTAUm eine Liste der verfügbaren Plattformen und ihrer
platformId
-Werte zurückzugeben, verwenden Sie den Befehlaws signer list-signing-platforms
.
Der Signaturauftrag wird gestartet und das signierte Firmware-Image wird in den Amazon S3-Ziel-Bucket geschrieben. Der Dateiname für das signierte Firmware-Image ist GUID a. Sie benötigen diesen Dateinamen, wenn Sie einen Stream erstellen. Sie finden den Dateinamen, indem Sie zur Amazon S3-Konsole gehen und Ihren Bucket auswählen. Wenn Sie keine Datei mit einem GUID Dateinamen sehen, aktualisieren Sie Ihren Browser.
Der Befehl zeigt einen Job ARN und eine Job-ID an. Diese Werte benötigen Sie später. Weitere Informationen zu Code Signing für AWS IoT finden Sie unter Code Signing for AWS IoT.
Firmware-Images manuell signieren
Signieren Sie Ihr Firmware-Image digital und laden Sie Ihr signiertes Firmware-Image in Ihren Amazon S3 S3-Bucket hoch.
Erstellen eines Streams Ihres Firmware-Updates
Ein Stream ist eine abstrakte Schnittstelle zu Daten, die von einem Gerät verarbeitet werden können. Ein Stream kann die Komplexität des Zugriffs auf Daten verbergen, die an verschiedenen Speicherorten oder in verschiedenen cloudbasierten Services gespeichert sind. Mit dem OTA Update Manager-Service können Sie mehrere Daten verwenden, die an verschiedenen Orten in Amazon S3 gespeichert sind, um ein OTA Update durchzuführen.
Wenn Sie ein AWS IoT OTA Update erstellen, können Sie auch einen Stream erstellen, der Ihr signiertes Firmware-Update enthält. Erstellen Sie eine JSON Datei (stream.json
), die Ihr signiertes Firmware-Image identifiziert. Die JSON Datei sollte Folgendes enthalten.
[
{
"fileId":"your_file_id
",
"s3Location":{
"bucket":"your_bucket_name
",
"key":"your_s3_object_key
"
}
}
]
Dies sind die Attribute in der JSON Datei:
fileId
-
Eine beliebige Ganzzahl zwischen 0 und 255, die Ihr Firmware-Image identifiziert.
s3Location
-
Der Bucket und der Schlüssel für die zu streamende Firmware.
bucket
-
Der Amazon S3 S3-Bucket, in dem Ihr unsigniertes Firmware-Image gespeichert ist.
key
-
Der Dateiname Ihres signierten Firmware-Images im Amazon S3 S3-Bucket. Sie finden diesen Wert in der Amazon S3 S3-Konsole, indem Sie sich den Inhalt Ihres Buckets ansehen.
Wenn Sie Code Signing for verwenden AWS IoT, wird der Dateiname von Code Signing for GUID generiert AWS IoT.
Verwenden Sie den Befehl create-stream AWS CLI , um einen Stream zu erstellen.
aws iot create-stream \ --stream-id
your_stream_id
\ --descriptionyour_description
\ --files file://stream.json
\ --role-arnyour_role_arn
Dies sind die Argumente für den create-stream AWS CLI Befehl:
stream-id
-
Eine beliebige Zeichenfolge zur Identifizierung des Streams.
description
-
Eine optionale Beschreibung des Streams.
files
-
Ein oder mehrere Verweise auf JSON Dateien, die Daten über Firmware-Images enthalten, die gestreamt werden sollen. Die JSON Datei muss die folgenden Attribute enthalten:
fileId
-
Eine beliebige Datei-ID.
s3Location
-
Der Bucket-Name, unter dem das signierte Firmware-Image gespeichert ist und der Schlüssel (Dateiname) des signierten Firmware-Images.
bucket
-
Der Amazon S3 S3-Bucket, in dem das signierte Firmware-Image gespeichert ist.
key
-
Der Schlüssel (Dateiname) des signierten Firmware-Images.
Wenn Sie Code Signing for verwenden AWS IoT, ist dieser Schlüssel einGUID.
Im Folgenden sehen Sie ein Beispiel für eine
stream.json
-Datei.[ { "fileId":123, "s3Location": { "bucket":"codesign-ota-bucket", "key":"48c67f3c-63bb-4f92-a98a-4ee0fbc2bef6" } } ]
role-arn
-
Die OTAServicerolle, die auch Zugriff auf den Amazon S3 S3-Bucket gewährt, in dem das Firmware-Image gespeichert ist.
Um den Amazon S3 S3-Objektschlüssel Ihres signierten Firmware-Images zu finden, verwenden Sie den aws signer describe-signing-job --job-id
my-job-id
Befehl where my-job-id
is the job id displayed by the create-signing-job AWS CLI command. Die Ausgabe des Befehls describe-signing-job enthält den Schlüssel des signierten Firmware-Images.
... text deleted for brevity ...
"signedObject": {
"s3": {
"bucketName": "ota-bucket",
"key": "7309da2c-9111-48ac-8ee4-5a4262af4429"
}
}
... text deleted for brevity ...
Ein OTA Update erstellen
Verwenden Sie den create-ota-update AWS CLI Befehl, um einen OTA Aktualisierungsauftrag zu erstellen.
Anmerkung
Verwenden Sie keine persönlich identifizierbaren Informationen (PII) in Ihrer OTA Update-Job-ID. Beispiele für personenbezogene Daten sind:
-
Namen.
-
IP-Adressen.
-
E-Mail-Adressen.
-
Speicherorte.
-
Bankverbindung
-
Medizinische Informationen
aws iot create-ota-update \ --ota-update-id
value
\ [--descriptionvalue
] \ --targetsvalue
\ [--protocolsvalue
] \ [--target-selectionvalue
] \ [--aws-job-executions-rollout-configvalue
] \ [--aws-job-presigned-url-configvalue
] \ [--aws-job-abort-configvalue
] \ [--aws-job-timeout-configvalue
] \ --filesvalue
\ --role-arnvalue
\ [--additional-parametersvalue
] \ [--tagsvalue
] \ [--cli-input-jsonvalue
] \ [--generate-cli-skeleton]
cli-input-json
-Format
{
"otaUpdateId": "string",
"description": "string",
"targets": [
"string"
],
"protocols": [
"string"
],
"targetSelection": "string",
"awsJobExecutionsRolloutConfig": {
"maximumPerMinute": "integer",
"exponentialRate": {
"baseRatePerMinute": "integer",
"incrementFactor": "double",
"rateIncreaseCriteria": {
"numberOfNotifiedThings": "integer",
"numberOfSucceededThings": "integer"
}
}
},
"awsJobPresignedUrlConfig": {
"expiresInSec": "long"
},
"awsJobAbortConfig": {
"abortCriteriaList": [
{
"failureType": "string",
"action": "string",
"thresholdPercentage": "double",
"minNumberOfExecutedThings": "integer"
}
]
},
"awsJobTimeoutConfig": {
"inProgressTimeoutInMinutes": "long"
},
"files": [
{
"fileName": "string",
"fileType": "integer",
"fileVersion": "string",
"fileLocation": {
"stream": {
"streamId": "string",
"fileId": "integer"
},
"s3Location": {
"bucket": "string",
"key": "string",
"version": "string"
}
},
"codeSigning": {
"awsSignerJobId": "string",
"startSigningJobParameter": {
"signingProfileParameter": {
"certificateArn": "string",
"platform": "string",
"certificatePathOnDevice": "string"
},
"signingProfileName": "string",
"destination": {
"s3Destination": {
"bucket": "string",
"prefix": "string"
}
}
},
"customCodeSigning": {
"signature": {
"inlineDocument": "blob"
},
"certificateChain": {
"certificateName": "string",
"inlineDocument": "string"
},
"hashAlgorithm": "string",
"signatureAlgorithm": "string"
}
},
"attributes": {
"string": "string"
}
}
],
"roleArn": "string",
"additionalParameters": {
"string": "string"
},
"tags": [
{
"Key": "string",
"Value": "string"
}
]
}
Name |
Typ |
Beschreibung |
---|---|---|
|
Zeichenfolge (max:128 min:1) |
Die ID des OTA Updates, das erstellt werden soll. |
|
Zeichenfolge (max:2028) |
Die Beschreibung des OTA Updates. |
|
auflisten |
Die Geräte, die OTA Updates erhalten sollen. |
|
auflisten |
Das Protokoll, das für die Übertragung des OTA Aktualisierungsabbilds verwendet wurde. Gültige Werte sind [HTTP], [MQTT], [HTTP,MQTT]. Wenn HTTP sowohl als auch angegeben MQTT sind, kann das Zielgerät das Protokoll wählen. |
|
Zeichenfolge |
Gibt an, ob das Update weiterhin ausgeführt wird (CONTINUOUS) oder ob es abgeschlossen ist, nachdem alle als Ziele angegebenen Elemente das Update abgeschlossen haben (SNAPSHOT). Bei „continuous“ kann das Update auch für ein Objekt ausgeführt werden, wenn eine Änderung in einem Ziel erkannt wird. Beispielsweise wird ein Update für ein Objekt ausgeführt, wenn das Objekt einer Zielgruppe hinzugefügt wird, auch wenn das Update von allen ursprünglich in der Gruppe befindlichen Objekten abgeschlossen wurde. Gültige Werte: CONTINUOUS |SNAPSHOT. Aufzählung: | CONTINUOUS SNAPSHOT |
|
Konfiguration für den Rollout von Updates. OTA |
|
|
Ganzzahl (max:1000 min:1) |
Die maximale Anzahl der pro Minute gestarteten OTA Aktualisierungsauftragsausführungen. |
|
Die Wachstumsrate für einen Auftrags-Rollout. Dieser Parameter ermöglicht das Definieren eines exponentiellen Anstiegs der Rate für einen Aufgaben-Rollout. |
|
|
Ganzzahl (max:1000 min:1) |
Die Mindestanzahl der Objekte pro Minute, die zu Beginn des Aufgaben-Rollouts über eine anstehende Aufgabe benachrichtigt werden. Dies ist die anfängliche Rate des Rollouts. |
|
Die Kriterien zur Initiierung der Erhöhung der Rollout-Rate für einen Auftrag. AWS IoT unterstützt bis zu einer Nachkommastelle (z. B. 1,5, aber nicht 1,55). |
|
|
Ganzzahl (min:1) |
Wenn diese Anzahl von Objekten benachrichtigt wurde, wird eine Erhöhung der Rollout-Rate initiiert. |
|
Ganzzahl (min:1) |
Wenn diese Anzahl von Objekten in ihrer Aufgabenausführung erfolgreich war, wird eine Erhöhung der Rollout-Rate initiiert. |
|
Konfigurationsinformationen für vorsignierteURLs. |
|
|
long |
Wie lange (in Sekunden) vorsignierte Zeichen gültig URLs sind. Gültige Werte sind 60 - 3600, der Standardwert ist 1800 Sekunden. Vorsignierte URLs werden generiert, wenn eine Anfrage für das Auftragsdokument eingeht. |
|
Die Kriterien, die bestimmen, wann und wie eine Auftragsunterbrechung stattfindet. |
|
|
auflisten |
Die Liste der Kriterien, die bestimmen, wann und wie der Job beendet werden soll. |
|
Zeichenfolge |
Die Art der Fehler bei der Auftragsausführung, die zu einer Unterbrechung des Jobs führen können. Aufzählung: FAILED | | _ REJECTED | TIMED OUT ALL |
|
Zeichenfolge |
Die Art der Jobaktion, die ergriffen werden soll, um den Jobstopp einzuleiten. Aufzählung: CANCEL |
|
Ganzzahl (min:1) |
Die Mindestanzahl von Dingen, die Benachrichtigungen zur Auftragsausführung erhalten müssen, bevor der Job gestoppt werden kann. |
|
Gibt die Dauer an, die jedes Gerät für den Abschluss der Ausführung des Auftrags hat. Ein Timer wird gestartet, wenn der Status der Auftragsausführung auf |
|
|
long |
Gibt die Dauer in Minuten an, die dieses Gerät für den Abschluss der Ausführung dieses Auftrags hat. Das Intervall für die Zeitüberschreitung kann zwischen 1 Minute und 7 Tage (1 bis 10 080 Minuten) betragen. Der Timer für „In Bearbeitung“ kann nicht aktualisiert werden und gilt für alle Auftragsausführungen für den Auftrag. Immer wenn eine Auftragsausführung länger als dieses Intervall im PROGRESS Status IN_ verbleibt, schlägt die Auftragsausführung fehl und wechselt in den |
|
auflisten |
Die Dateien, die mit dem Update gestreamt werden sollen. OTA |
|
Zeichenfolge |
Der Name der Datei. |
|
Ganzzahl range- max:255 min:0 |
Ein ganzzahliger Wert, den Sie in das Auftragsdokument aufnehmen können, damit Ihre Geräte den Typ der von der Cloud empfangenen Datei identifizieren können. |
|
Zeichenfolge |
Die Dateiversion. |
|
Der Speicherort der aktualisierten Firmware. |
|
|
Der Stream, der das OTA Update enthält. |
|
|
Zeichenfolge (max:128 min:1) |
Die Stream-ID. |
|
Ganzzahl (max:255 min:0) |
Die ID einer mit einem Stream verbundenen Datei. |
|
Der Speicherort der aktualisierten Firmware in S3. |
|
|
Zeichenfolge (min:1) |
Der S3-Bucket. |
|
Zeichenfolge (min:1) |
Der S3-Schlüssel |
|
Zeichenfolge |
Die S3-Bucket-Version. |
|
Die Codesignaturmethode der Datei. |
|
|
Zeichenfolge |
Die ID der Datei AWSSignerJob , die zum Signieren der Datei erstellt wurde. |
|
Beschreibt den Code-Signierungsauftrag. |
|
|
Beschreibt das Code-Signierungsprofil. |
|
|
Zeichenfolge |
ZertifikatARN. |
|
Zeichenfolge |
Die Hardware-Plattform Ihres Geräts. |
|
Zeichenfolge |
Der Speicherort des Zertifikats zur Codesignierung auf Ihrem Gerät. |
|
Zeichenfolge |
Der Name des Code-Signierungsprofils. |
|
Der Speicherort für die mit Code signierte Datei. |
|
|
Beschreibt den Speicherort der aktualisierten Firmware in S3. |
|
|
Zeichenfolge (min:1) |
Der S3-Bucket, der die aktualisierte Firmware enthält. |
|
Zeichenfolge |
Das S3-Präfix. |
|
Eine benutzerdefinierte Methode zum Signieren einer Datei. |
|
|
Die Signatur für die Datei. |
|
|
blob |
Eine base64-kodierte binäre Repräsentation der Codesignatur-Signatur. |
|
Die Zertifikatskette. |
|
|
Zeichenfolge |
Der Name des Zertifikats. |
|
Zeichenfolge |
Eine base64-kodierte binäre Repräsentation der Codesignatur-Zertifikatskette. |
|
Zeichenfolge |
Der für die Codesignatur der Datei verwendete Hash-Algorithmus |
|
Zeichenfolge |
Der für die Codesignatur der Datei verwendete Signatur-Algorithmus |
|
map |
Eine Liste von Name/Attribut-Paaren. |
|
Zeichenfolge (max:2048 min:20) |
Die IAM Rolle, die AWS IoT Zugriff auf die Amazon S3 S3-Ressourcen, AWS IoT Jobs und AWS Code Signing-Ressourcen gewährt, um einen OTA Aktualisierungsjob zu erstellen. |
|
map |
Eine Liste zusätzlicher OTA Aktualisierungsparameter, bei denen es sich um Name-Wert-Paare handelt. |
|
auflisten |
Metadaten, die verwendet werden können, um Updates zu verwalten. |
|
Zeichenfolge (max:128 min:1) |
Der Tag-Schlüssel. |
|
Zeichenfolge (max:256 min:1) |
Der Tag-Wert. |
Output
{
"otaUpdateId": "string",
"awsIotJobId": "string",
"otaUpdateArn": "string",
"awsIotJobArn": "string",
"otaUpdateStatus": "string"
}
Name |
Typ |
Beschreibung |
---|---|---|
|
Zeichenfolge (max:128 min:1) |
Die OTA Update-ID. |
|
Zeichenfolge |
Die mit dem OTA Update verknüpfte AWS IoT Job-ID. |
|
Zeichenfolge |
Das OTA UpdateARN. |
|
Zeichenfolge |
Der mit ARN dem OTA Update verknüpfte AWS IoT Job. |
|
Zeichenfolge |
Der OTA Aktualisierungsstatus. Aufzählung: CREATE _ PENDING | CREATE _IN_ PROGRESS | CREATE _ COMPLETE CREATE FAILED |
Im Folgenden finden Sie ein Beispiel für eine JSON Datei, die an den create-ota-update Befehl übergeben wurde, der Code Signing for verwendet. AWS IoT
[
{
"fileName": "firmware.bin",
"fileType": 1,
"fileLocation": {
"stream": {
"streamId": "004",
"fileId":123
}
},
"codeSigning": {
"awsSignerJobId": "48c67f3c-63bb-4f92-a98a-4ee0fbc2bef6"
}
}
]
Im Folgenden finden Sie ein Beispiel für eine JSON Datei, die an den create-ota-update AWS CLI Befehl übergeben wurde und eine Inline-Datei verwendet, um benutzerdefiniertes Codesignaturmaterial bereitzustellen.
[
{
"fileName": "firmware.bin",
"fileType": 1,
"fileLocation": {
"stream": {
"streamId": "004",
"fileId": 123
}
},
"codeSigning": {
"customCodeSigning":{
"signature":{
"inlineDocument":"your_signature
"
},
"certificateChain": {
"certificateName": "your_certificate_name
",
"inlineDocument":"your_certificate_chain
"
},
"hashAlgorithm":"your_hash_algorithm
",
"signatureAlgorithm":"your_signature_algorithm
"
}
}
}
]
Im Folgenden finden Sie ein Beispiel für eine an den create-ota-update AWS CLI Befehl übergebene JSON Datei, die es Free ermöglicht, einen Codesignaturauftrag RTOS OTA zu starten und ein Codesignaturprofil und einen Stream zu erstellen.
[
{
"fileName": "your_firmware_path_on_device
",
"fileType": 1,
"fileVersion": "1",
"fileLocation": {
"s3Location": {
"bucket": "your_bucket_name
",
"key": "your_object_key
",
"version": "your_S3_object_version
"
}
},
"codeSigning":{
"startSigningJobParameter":{
"signingProfileName": "myTestProfile
",
"signingProfileParameter": {
"certificateArn": "your_certificate_arn
",
"platform": "your_platform_id
",
"certificatePathOnDevice": "certificate_path
"
},
"destination": {
"s3Destination": {
"bucket": "your_destination_bucket
"
}
}
}
}
}
]
Das Folgende ist ein Beispiel für eine JSON Datei, die an den create-ota-update AWS CLI Befehl übergeben wird, der ein OTA Update erstellt, das einen Codesignaturauftrag mit einem vorhandenen Profil startet und den angegebenen Stream verwendet.
[
{
"fileName": "your_firmware_path_on_device
",
"fileType": 1,
"fileVersion": "1",
"fileLocation": {
"s3Location": {
"bucket": "your_s3_bucket_name
",
"key": "your_object_key
",
"version": "your_S3_object_version
"
}
},
"codeSigning":{
"startSigningJobParameter":{
"signingProfileName": "your_unique_profile_name
",
"destination": {
"s3Destination": {
"bucket": "your_destination_bucket
"
}
}
}
}
}
]
Das Folgende ist ein Beispiel für eine an den create-ota-update AWS CLI Befehl übergebene JSON Datei, die es Free ermöglicht, einen Stream mit einer vorhandenen Codesignatur-Job-ID RTOS OTA zu erstellen.
[
{
"fileName": "your_firmware_path_on_device
",
"fileType": 1,
"fileVersion": "1",
"codeSigning":{
"awsSignerJobId": "your_signer_job_id
"
}
}
]
Das Folgende ist ein Beispiel für eine JSON Datei, die an den create-ota-update AWS CLI Befehl übergeben wird, der ein OTA Update erstellt. Das Update erstellt einen Stream aus dem angegebenen S3-Objekt und verwendet die benutzerdefinierte Codesignierung:
[
{
"fileName": "your_firmware_path_on_device
",
"fileType": 1,
"fileVersion": "1",
"fileLocation": {
"s3Location": {
"bucket": "your_bucket_name
",
"key": "your_object_key
",
"version": "your_S3_object_version
"
}
},
"codeSigning":{
"customCodeSigning": {
"signature":{
"inlineDocument":"your_signature
"
},
"certificateChain": {
"inlineDocument":"your_certificate_chain
",
"certificateName": "your_certificate_path_on_device
"
},
"hashAlgorithm":"your_hash_algorithm
",
"signatureAlgorithm":"your_sig_algorithm
"
}
}
}
]
OTAAktualisierungen auflisten
Sie können den list-ota-updates AWS CLI Befehl verwenden, um eine Liste aller OTA Updates abzurufen.
aws iot list-ota-updates
Die Ausgabe des Befehls list-ota-updates sieht wie folgt aus:
{
"otaUpdates": [
{
"otaUpdateId": "my_ota_update2",
"otaUpdateArn": "arn:aws:iot:us-west-2
:123456789012
:otaupdate/my_ota_update2",
"creationDate": 1522778769.042
},
{
"otaUpdateId": "my_ota_update1",
"otaUpdateArn": "arn:aws:iot:us-west-2
:123456789012
:otaupdate/my_ota_update1",
"creationDate": 1522775938.956
},
{
"otaUpdateId": "my_ota_update",
"otaUpdateArn": "arn:aws:iot:us-west-2
:123456789012
:otaupdate/my_ota_update",
"creationDate": 1522775151.031
}
]
}
Informationen über ein OTA Update abrufen
Sie können den get-ota-update AWS CLI Befehl verwenden, um den Erstellungs- oder Löschstatus eines OTA Updates abzurufen.
aws iot get-ota-update --ota-update-id
your-ota-update-id
Die Ausgabe des Befehls get-ota-update sieht wie folgt aus.
{
"otaUpdateInfo": {
"otaUpdateId": "ota-update-001",
"otaUpdateArn": "arn:aws:iot:region
:123456789012:otaupdate/ota-update-001",
"creationDate": 1575414146.286,
"lastModifiedDate": 1575414149.091,
"targets": [
"arn:aws:iot:region
:123456789012:thing/myDevice"
],
"protocols": [ "HTTP" ],
"awsJobExecutionsRolloutConfig": {
"maximumPerMinute": 0
},
"awsJobPresignedUrlConfig": {
"expiresInSec": 1800
},
"targetSelection": "SNAPSHOT",
"otaUpdateFiles": [
{
"fileName": "my_firmware.bin",
"fileType": 1,
"fileLocation": {
"s3Location": {
"bucket": "my-bucket",
"key": "my_firmware.bin",
"version": "AvP3bfJC9gyqnwoxPHuTqM5GWENt4iii"
}
},
"codeSigning": {
"awsSignerJobId": "b7a55a54-fae5-4d3a-b589-97ed103737c2",
"startSigningJobParameter": {
"signingProfileParameter": {},
"signingProfileName": "my-profile-name",
"destination": {
"s3Destination": {
"bucket": "some-ota-bucket",
"prefix": "SignedImages/"
}
}
},
"customCodeSigning": {}
}
}
],
"otaUpdateStatus": "CREATE_COMPLETE",
"awsIotJobId": "AFR_OTA-ota-update-001",
"awsIotJobArn": "arn:aws:iot:region
:123456789012
:job/AFR_OTA-ota-update-001"
}
}
Für otaUpdateStatus
können folgende Werte zurückgegeben werden:
CREATE_PENDING
-
Die Erstellung eines OTA Updates steht noch aus.
CREATE_IN_PROGRESS
-
Ein OTA Update wird gerade erstellt.
CREATE_COMPLETE
-
Ein OTA Update wurde erstellt.
CREATE_FAILED
-
Die Erstellung eines OTA Updates ist fehlgeschlagen.
DELETE_IN_PROGRESS
-
Ein OTA Update wird gelöscht.
DELETE_FAILED
-
Das Löschen eines OTA Updates ist fehlgeschlagen.
Anmerkung
Um den Ausführungsstatus eines OTA Updates nach seiner Erstellung abzurufen, müssen Sie den describe-job-execution Befehl verwenden. Weitere Informationen finden Sie unter Beschreibung der Jobausführung.
Löschen OTA verwandter Daten
Derzeit können Sie die AWS IoT Konsole nicht zum Löschen von Streams oder OTA Updates verwenden. Sie können den verwenden, AWS CLI um Streams, OTA Updates und die während eines OTA Updates erstellten AWS IoT Jobs zu löschen.
Einen OTA Stream löschen
Wenn Sie ein OTA Update erstellen, das verwendetMQTT, können Sie entweder die Befehlszeile oder die AWS IoT Konsole verwenden, um einen Stream zu erstellen, um die Firmware in Teile aufzuteilen, sodass sie gesendet werden kann. MQTT Sie können diesen Stream mit dem delete-stream AWS CLI Befehl löschen, wie im folgenden Beispiel gezeigt.
aws iot delete-stream --stream-id
your_stream_id
Ein OTA Update löschen
Wenn Sie ein OTA Update erstellen, wird Folgendes erstellt:
-
Ein Eintrag in der Datenbank für OTA Aktualisierungsaufträge.
-
Ein AWS IoT Job zur Durchführung des Updates.
-
Eine AWS IoT Jobausführung für jedes Gerät, das aktualisiert wird.
Der delete-ota-update Befehl löscht nur den Eintrag in der OTA Update-Job-Datenbank. Zum Löschen des AWS IoT -Jobs müssen Sie den Befehl delete-job verwenden.
Verwenden Sie den delete-ota-update Befehl, um ein OTA Update zu löschen.
aws iot delete-ota-update --ota-update-id
your_ota_update_id
ota-update-id
-
Die ID des zu löschenden OTA Updates.
delete-stream
-
Löscht den mit dem OTA Update verknüpften Stream.
force-delete-aws-job
-
Löscht den mit dem AWS IoT Update verknüpften OTA Job. Wenn dieses Flag nicht gesetzt ist und der Job den Status
In_Progress
hat, wird der Job nicht gelöscht.
Löschen eines IoT-Jobs, der für ein OTA Update erstellt wurde
Free RTOS erstellt einen AWS IoT Job, wenn Sie ein OTA Update erstellen. Auch für jedes Gerät, das den Job verarbeitet, wird eine Job-Ausführung erstellt. Sie können den delete-job AWS CLI Befehl verwenden, um einen Job und die zugehörigen Jobausführungen zu löschen.
aws iot delete-job --job-id
your-job-id
--no-force
Der no-force
Parameter gibt an, dass nur Jobs gelöscht werden können, die sich in einem Terminalstatus (COMPLETEDoderCANCELLED) befinden. Indem Sie den Parameter force
übergeben, können Sie einen Job löschen, der sich nicht in einem Beendigungsstatus befindet. Weitere Informationen finden Sie unter DeleteJob API.
Anmerkung
Durch das Löschen eines Auftrags mit dem Status IN_ werden alle PROGRESS Auftragsausführungen unterbrochen, die sich PROGRESS auf Ihren Geräten im Status IN_ befinden. Dies kann dazu führen, dass ein Gerät in einem nicht deterministischen Zustand belassen wird. Stellen Sie sicher, dass jedes Gerät, das einen gelöschten Job ausführt, zu einem bekannten Status zurückkehren kann.
Abhängig von der Anzahl der für die Aufgabe erstellten Aufgabenausführungen und anderen Faktoren kann das Löschen einer Aufgabe einige Minuten dauern. Während der Job gelöscht wird, ist sein Status _IN_. DELETION PROGRESS Der Versuch, einen Job zu löschen oder abzubrechen, dessen Status bereits DELETION _IN_ ist, PROGRESS führt zu einem Fehler.
Mit der delete-job-execution können Sie eine Job-Ausführung löschen. Möglicherweise möchten Sie eine Job-Ausführung löschen, wenn eine kleine Anzahl von Geräten einen Job nicht verarbeiten kann. Dadurch wird die Job-Ausführung für ein einzelnes Gerät gelöscht, wie im folgenden Beispiel gezeigt.
aws iot delete-job-execution --job-id
your-job-id
--thing-nameyour-thing-name
--execution-numberyour-job-execution-number
--no-force
Wie beim delete-job AWS CLI Befehl können Sie den --force
Parameter an die übergeben, delete-job-execution um das Löschen einer Jobausführung zu erzwingen. Weitere Informationen finden Sie unter DeleteJobExecutionAPI.
Anmerkung
Wenn Sie eine Auftragsausführung mit dem Status IN_ löschen, werden alle Auftragsausführungen, die sich PROGRESS auf Ihren Geräten im Status IN_ befinden, PROGRESS unterbrochen. Dies kann dazu führen, dass ein Gerät in einem nicht deterministischen Zustand belassen wird. Stellen Sie sicher, dass jedes Gerät, das einen gelöschten Job ausführt, zu einem bekannten Status zurückkehren kann.
Weitere Informationen zur Verwendung der Update-Demo-Anwendung finden Sie unterOTA. Over-the-air aktualisiert die Demo-Anwendung