API und Datentypen für Auftragsverwaltung und -kontrolle - 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.

API und Datentypen für Auftragsverwaltung und -kontrolle

Die folgenden Befehle sind für die Auftragsverwaltung und -steuerung in der CLI und über das HTTPS-Protokoll verfügbar.

Um die zu bestimmenEndpunkt-URLParameter für Ihre CLI-Befehle, führen Sie diesen Befehl aus.

aws iot describe-endpoint --endpoint-type=iot:Jobs

Dieser Befehl gibt die folgende Ausgabe zurück.

{ "endpointAddress": "account-specific-prefix.jobs.iot.aws-region.amazonaws.com" }
Anmerkung

Der Jobs-Endpunkt unterstützt ALPN nichtz-amzn-http-ca.

Datentypen für Auftragsverwaltung und -steuerung

Die folgenden Datentypen werden von Verwaltungs- und Kontrollanwendungen für die Kommunikation mit verwendetAWS IoTJobs.

Das Objekt Job enthält Details zu einem Auftrag. Im folgenden Beispiel wird die Syntax dargestellt:

{ "jobArn": "string", "jobId": "string", "status": "IN_PROGRESS|CANCELED|SUCCEEDED", "forceCanceled": boolean, "targetSelection": "CONTINUOUS|SNAPSHOT", "comment": "string", "targets": ["string"], "description": "string", "createdAt": timestamp, "lastUpdatedAt": timestamp, "completedAt": timestamp, "jobProcessDetails": { "processingTargets": ["string"], "numberOfCanceledThings": long, "numberOfSucceededThings": long, "numberOfFailedThings": long, "numberOfRejectedThings": long, "numberOfQueuedThings": long, "numberOfInProgressThings": long, "numberOfRemovedThings": long, "numberOfTimedOutThings": long }, "presignedUrlConfig": { "expiresInSec": number, "roleArn": "string" }, "jobExecutionsRolloutConfig": { "exponentialRate": { "baseRatePerMinute": integer, "incrementFactor": integer, "rateIncreaseCriteria": { "numberOfNotifiedThings": integer, // Set one or the other "numberOfSucceededThings": integer // of these two values. }, "maximumPerMinute": integer } }, "abortConfig": { "criteriaList": [ { "action": "string", "failureType": "string", "minNumberOfExecutedThings": integer, "thresholdPercentage": integer } ] }, "SchedulingConfig": { "startTime": string "endTime": string "timeZone": string "endTimeBehavior": string }, "timeoutConfig": { "inProgressTimeoutInMinutes": long } }

Weitere Informationen finden Sie unter Job oder job.

Das Objekt JobSummary enthält eine Auftragszusammenfassung. Im folgenden Beispiel wird die Syntax dargestellt:

{ "jobArn": "string", "jobId": "string", "status": "IN_PROGRESS|CANCELED|SUCCEEDED|SCHEDULED", "targetSelection": "CONTINUOUS|SNAPSHOT", "thingGroupId": "string", "createdAt": timestamp, "lastUpdatedAt": timestamp, "completedAt": timestamp }

Weitere Informationen finden Sie unter JobSummary oder job-summary.

Das Objekt JobExecution repräsentiert die Ausführung eines Auftrags auf einem Gerät. Im folgenden Beispiel wird die Syntax dargestellt:

Anmerkung

Wenn Sie die API-Operationen auf der Steuerungsebene verwenden,JobExecutionDer Datentyp enthält keinJobDocumentFeld. Um diese Informationen zu erhalten, können Sie dieGetJobDocumentAPI-Betrieb oder derget-job-documentCLI-Befehl.

{ "approximateSecondsBeforeTimedOut": 50, "executionNumber": 1234567890, "forceCanceled": true|false, "jobId": "string", "lastUpdatedAt": timestamp, "queuedAt": timestamp, "startedAt": timestamp, "status": "QUEUED|IN_PROGRESS|FAILED|SUCCEEDED|CANCELED|TIMED_OUT|REJECTED|REMOVED", "forceCanceled": boolean, "statusDetails": { "detailsMap": { "string": "string" ... }, "status": "string" }, "thingArn": "string", "versionNumber": 123 }

Weitere Informationen finden Sie unter JobExecution oder job-execution.

DerJobExecutionSummaryDas Objekt enthält zusammenfassende Informationen zur Auftragsausführung. Im folgenden Beispiel wird die Syntax dargestellt:

{ "executionNumber": 1234567890, "queuedAt": timestamp, "lastUpdatedAt": timestamp, "startedAt": timestamp, "status": "QUEUED|IN_PROGRESS|FAILED|SUCCEEDED|CANCELED|TIMED_OUT|REJECTED|REMOVED" }

Weitere Informationen finden Sie unter JobExecutionSummary oder job-execution-summary.

Das Objekt JobExecutionSummaryForJob enthält eine Zusammenfassung der Informationen zu Auftragsausführungen für einen bestimmten Auftrag. Im folgenden Beispiel wird die Syntax dargestellt:

{ "executionSummaries": [ { "thingArn": "arn:aws:iot:us-west-2:123456789012:thing/MyThing", "jobExecutionSummary": { "status": "IN_PROGRESS", "lastUpdatedAt": 1549395301.389, "queuedAt": 1541526002.609, "executionNumber": 1 } }, ... ] }

Weitere Informationen finden Sie unter JobExecutionSummaryForJob oder job-execution-summary-for-job.

Das Objekt JobExecutionSummaryForThing enthält eine Zusammenfassung der Informationen zu einer Auftragsausführung für ein bestimmtes Objekt. Das folgende Beispiel zeigt die Syntax:

{ "executionSummaries": [ { "jobExecutionSummary": { "status": "IN_PROGRESS", "lastUpdatedAt": 1549395301.389, "queuedAt": 1541526002.609, "executionNumber": 1 }, "jobId": "MyThingJob" }, ... ] }

Weitere Informationen finden Sie unter JobExecutionSummaryForThing oder job-execution-summary-for-thing.

API-Operationen für Auftragsverwaltung und -kontrolle

Verwenden Sie die folgenden API-Operationen oder CLI-Befehle:

Weist eine Gruppe einem kontinuierlichen Auftrag zu. Die folgenden Kriterien müssen erfüllt sein:

  • Der Auftrag muss mit der Einstellung des Feldes targetSelection auf CONTINUOUS erstellt worden sein.

  • Der Auftrag muss den Status IN_PROGRESS haben.

  • Die Gesamtzahl der mit einem Auftrag verbundenen Ziele darf 100 nicht überschreiten.

HTTPS request
POST /jobs/jobId/targets { "targets": [ "string" ], "comment": "string" }

Weitere Informationen finden Sie unter AssociateTargetsWithJob.

CLI syntax
aws iot associate-targets-with-job \ --targets <value> \ --job-id <value> \ [--comment <value>] \ [--cli-input-json <value>] \ [--generate-cli-skeleton]

cli-input-json format:

{ "targets": [ "string" ], "jobId": "string", "comment": "string" }

Weitere Informationen finden Sie unter associate-targets-with-job.

Bricht einen Auftrag ab.

HTTPS request
PUT /jobs/jobId/cancel { "force": boolean, "comment": "string", "reasonCode": "string" }

Weitere Informationen finden Sie unter CancelJob.

CLI syntax
aws iot cancel-job \ --job-id <value> \ [--force <value>] \ [--comment <value>] \ [--reasonCode <value>] \ [--cli-input-json <value>] \ [--generate-cli-skeleton]

cli-input-json format:

{ "jobId": "string", "force": boolean, "comment": "string" }

Weitere Informationen finden Sie unter cancel-job.

Bricht eine Auftragsausführung auf einem Gerät ab.

HTTPS request
PUT /things/thingName/jobs/jobId/cancel { "force": boolean, "expectedVersion": "string", "statusDetails": { "string": "string" ... } }

Weitere Informationen finden Sie unter CancelJobExecution.

CLI syntax
aws iot cancel-job-execution \ --job-id <value> \ --thing-name <value> \ [--force | --no-force] \ [--expected-version <value>] \ [--status-details <value>] \ [--cli-input-json <value>] \ [--generate-cli-skeleton]

cli-input-json format:

{ "jobId": "string", "thingName": "string", "force": boolean, "expectedVersion": long, "statusDetails": { "string": "string" } }

Weitere Informationen finden Sie unter cancel-job-execution.

Erstellt einen Auftrag. Sie können das Stellendokument als Link zu einer Datei in einem Amazon S3-Bucket bereitstellen (documentSourceParameter) oder im Text der Anfrage (documentParameter).

Ein Job kann gemacht werdenkontinuierlicheindem Sie das Optionale einstellentargetSelectionParameter bisCONTINUOUS(die Standardeinstellung istSNAPSHOT). Ein kontinuierlicher Job kann verwendet werden, um Geräte zu integrieren oder zu aktualisieren, wenn sie zu einer Gruppe hinzugefügt werden, da er weiterhin ausgeführt wird und für neu hinzugefügte Dinge gestartet wird. Dies kann auch dann der Fall sein, wenn die Elemente in der Gruppe zum Zeitpunkt der Auftragserstellung den Job abgeschlossen haben.

Ein Job kann optional seinTimeoutConfig, der den Wert des laufenden Timers festlegt. Der Timer für „In Bearbeitung“ kann nicht aktualisiert werden und gilt für alle Ausführungen des Auftrags.

Die folgenden Validierungen werden auf Argumenten der CreateJob-API durchgeführt:

  • Das Argument targets muss eine Liste gültiger Objekt- oder Objektgruppen-ARNs sein. Alle Dinge und Dinggruppen müssen in deinemAWS-Konto.

  • DerdocumentSourceDas Argument muss eine gültige Amazon S3-URL zu einem Auftragsdokument sein. Amazon S3-URLs haben das folgende Format:https://s3.amazonaws.com/bucketName/objectName.

  • Das in der vom Argument documentSource angegebenen URL gespeicherte Dokument muss ein nach UTF-8 kodiertes JSON-Dokument sein.

  • Die Größe eines Auftragsdokuments ist aufgrund der Größenbeschränkung einer MQTT-Nachricht (128 KB) und der Verschlüsselung auf 32 KB begrenzt.

  • DerjobIdmuss einzigartig sein in IhremAWS-Konto.

HTTPS request
PUT /jobs/jobId { "targets": [ "string" ], "document": "string", "documentSource": "string", "description": "string", "jobTemplateArn": "string", "presignedUrlConfigData": { "roleArn": "string", "expiresInSec": "integer" }, "targetSelection": "CONTINUOUS|SNAPSHOT", "jobExecutionsRolloutConfig": { "exponentialRate": { "baseRatePerMinute": integer, "incrementFactor": integer, "rateIncreaseCriteria": { "numberOfNotifiedThings": integer, // Set one or the other "numberOfSucceededThings": integer // of these two values. }, "maximumPerMinute": integer } }, "abortConfig": { "criteriaList": [ { "action": "string", "failureType": "string", "minNumberOfExecutedThings": integer, "thresholdPercentage": integer } ] }, "SchedulingConfig": { "startTime": string "endTime": string "timeZone": string "endTimeBehavior": string } "timeoutConfig": { "inProgressTimeoutInMinutes": long } }

Weitere Informationen finden Sie unter CreateJob.

CLI syntax
aws iot create-job \ --job-id <value> \ --targets <value> \ [--document-source <value>] \ [--document <value>] \ [--description <value>] \ [--job-template-arn <value>] \ [--presigned-url-config <value>] \ [--target-selection <value>] \ [--job-executions-rollout-config <value>] \ [--abort-config <value>] \ [--timeout-config <value>] \ [--document-parameters <value>] \ [--cli-input-json <value>] \ [--generate-cli-skeleton]

cli-input-json format:

{ "jobId": "string", "targets": [ "string" ], "documentSource": "string", "document": "string", "description": "string", "jobTemplateArn": "string", "presignedUrlConfig": { "roleArn": "string", "expiresInSec": long }, "targetSelection": "string", "jobExecutionsRolloutConfig": { "exponentialRate": { "baseRatePerMinute": integer, "incrementFactor": integer, "rateIncreaseCriteria": { "numberOfNotifiedThings": integer, // Set one or the other "numberOfSucceededThings": integer // of these two values. }, "maximumPerMinute": integer } }, "abortConfig": { "criteriaList": [ { "action": "string", "failureType": "string", "minNumberOfExecutedThings": integer, "thresholdPercentage": integer } ] }, "timeoutConfig": { "inProgressTimeoutInMinutes": long }, "documentParameters": { "string": "string" } }

Weitere Informationen finden Sie unter create-job.

Löscht einen Auftrag und die damit verbundenen Auftragsausführungen.

Das Löschen eines Auftrags kann einige Zeit in Anspruch nehmen, abhängig von der Anzahl der Auftragsausführungen für den Auftrag und verschiedenen anderen Faktoren. Während der Auftrag gelöscht wird, wird der Status des Auftrags als „DELETION_IN_PROGRESS“ angezeigt. Der Versuch, einen Job zu löschen oder abzubrechen, dessen Status bereits „DELETION_IN_PROGRESS“ ist, führt zu einem Fehler.

HTTPS request
DELETE /jobs/jobId?force=force

Weitere Informationen finden Sie unter DeleteJob.

CLI syntax
aws iot delete-job \ --job-id <value> \ [--force | --no-force] \ [--cli-input-json <value>] \ [--generate-cli-skeleton]

cli-input-json format:

{ "jobId": "string", "force": boolean }

Weitere Informationen finden Sie unter delete-job.

Löscht eine Auftragsausführung.

HTTPS request
DELETE /things/thingName/jobs/jobId/executionNumber/executionNumber?force=force

Weitere Informationen finden Sie unter DeleteJobExecution.

CLI syntax
aws iot delete-job-execution \ --job-id <value> \ --thing-name <value> \ --execution-number <value> \ [--force | --no-force] \ [--cli-input-json <value>] \ [--generate-cli-skeleton]

cli-input-json format:

{ "jobId": "string", "thingName": "string", "executionNumber": long, "force": boolean }

Weitere Informationen finden Sie unter delete-job-execution.

Ruft die Details der Auftragsausführung ab.

HTTPS request
GET /jobs/jobId

Weitere Informationen finden Sie unter DescribeJob.

CLI syntax
aws iot describe-job \ --job-id <value> \ [--cli-input-json <value>] \ [--generate-cli-skeleton]

cli-input-json format:

{ "jobId": "string" }

Weitere Informationen finden Sie unter describe-job.

Ruft Details einer Auftragsausführung ab. Der Ausführungsstatus des Auftrags muss SUCCEEDED oder FAILED sein.

HTTPS request
GET /things/thingName/jobs/jobId?executionNumber=executionNumber

Weitere Informationen finden Sie unter DescribeJobExecution.

CLI syntax
aws iot describe-job-execution \ --job-id <value> \ --thing-name <value> \ [--execution-number <value>] \ [--cli-input-json <value>] \ [--generate-cli-skeleton]

cli-input-json format:

{ "jobId": "string", "thingName": "string", "executionNumber": long }

Weitere Informationen finden Sie unter describe-job-execution.

Ruft das Auftragsdokument für einen Auftrag ab.

Anmerkung

Platzhalter-URLs werden im zurückgegebenen Dokument nicht durch vorsignierte Amazon S3-URLs ersetzt. Vorsignierte URLs werden nur generiert, wenn der AWS IoT Jobs-Service eine Anforderung über MQTT erhält.

HTTPS request
GET /jobs/jobId/job-document

Weitere Informationen finden Sie unter GetJobDocument.

CLI syntax
aws iot get-job-document \ --job-id <value> \ [--cli-input-json <value>] \ [--generate-cli-skeleton]

cli-input-json format:

{ "jobId": "string" }

Weitere Informationen finden Sie unter get-job-document.

Ruft eine Liste der Auftragsausführungen für einen Auftrag ab.

HTTPS request
GET /jobs/jobId/things?status=status&maxResults=maxResults&nextToken=nextToken

Weitere Informationen finden Sie unter ListJobExecutionsForJob.

CLI syntax
aws iot list-job-executions-for-job \ --job-id <value> \ [--status <value>] \ [--max-results <value>] \ [--next-token <value>] \ [--cli-input-json <value>] \ [--generate-cli-skeleton]

cli-input-json format:

{ "jobId": "string", "status": "string", "maxResults": "integer", "nextToken": "string" }

Weitere Informationen finden Sie unter list-job-executions-for-job.

Ruft eine Liste der Auftragsausführungen für ein Objekt ab.

HTTPS request
GET /things/thingName/jobs?status=status&maxResults=maxResults&nextToken=nextToken

Weitere Informationen finden Sie unter ListJobExecutionsForThing.

CLI syntax
aws iot list-job-executions-for-thing \ --thing-name <value> \ [--status <value>] \ [--max-results <value>] \ [--next-token <value>] \ [--cli-input-json <value>] \ [--generate-cli-skeleton]

cli-input-json format:

{ "thingName": "string", "status": "string", "maxResults": "integer", "nextToken": "string" }

Weitere Informationen finden Sie unter list-job-executions-for-thing.

Ruft eine Liste der Jobs in IhremAWS-Konto.

HTTPS request
GET /jobs?status=status&targetSelection=targetSelection&thingGroupName=thingGroupName&thingGroupId=thingGroupId&maxResults=maxResults&nextToken=nextToken

Weitere Informationen finden Sie unter ListJobs.

CLI syntax
aws iot list-jobs \ [--status <value>] \ [--target-selection <value>] \ [--max-results <value>] \ [--next-token <value>] \ [--thing-group-name <value>] \ [--thing-group-id <value>] \ [--cli-input-json <value>] \ [--generate-cli-skeleton]

cli-input-json format:

{ "status": "string", "targetSelection": "string", "maxResults": "integer", "nextToken": "string", "thingGroupName": "string", "thingGroupId": "string" }

Weitere Informationen finden Sie unter list-jobs.

Aktualisiert unterstützte Felder des angegebenen Auftrags. Aktualisierte Werte fürtimeoutConfigwerden nur für neu in Bearbeitung befindliche Starts wirksam. Derzeit werden laufende Starts weiterhin mit der vorherigen Timeout-Konfiguration gestartet.

HTTPS request
PATCH /jobs/jobId { "description": "string", "presignedUrlConfig": { "expiresInSec": number, "roleArn": "string" }, "jobExecutionsRolloutConfig": { "exponentialRate": { "baseRatePerMinute": number, "incrementFactor": number, "rateIncreaseCriteria": { "numberOfNotifiedThings": number, "numberOfSucceededThings": number }, "maximumPerMinute": number }, "abortConfig": { "criteriaList": [ { "action": "string", "failureType": "string", "minNumberOfExecutedThings": number, "thresholdPercentage": number } ] }, "timeoutConfig": { "inProgressTimeoutInMinutes": number } }

Weitere Informationen finden Sie unter UpdateJob.

CLI syntax
aws iot update-job \ --job-id <value> \ [--description <value>] \ [--presigned-url-config <value>] \ [--job-executions-rollout-config <value>] \ [--abort-config <value>] \ [--timeout-config <value>] \ [--cli-input-json <value>] \ [--generate-cli-skeleton]

cli-input-json format:

{ "description": "string", "presignedUrlConfig": { "expiresInSec": number, "roleArn": "string" }, "jobExecutionsRolloutConfig": { "exponentialRate": { "baseRatePerMinute": number, "incrementFactor": number, "rateIncreaseCriteria": { "numberOfNotifiedThings": number, "numberOfSucceededThings": number } }, "maximumPerMinute": number }, "abortConfig": { "criteriaList": [ { "action": "string", "failureType": "string", "minNumberOfExecutedThings": number, "thresholdPercentage": number } ] }, "timeoutConfig": { "inProgressTimeoutInMinutes": number } }

Weitere Informationen finden Sie unter update-job.