

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.

# AWS IoT Jobs API-Operationen
<a name="jobs-api"></a>

AWS IoT Die Jobs-API kann für eine der folgenden Kategorien verwendet werden:
+ Administrative Aufgaben wie die Verwaltung und Kontrolle von Aufträgen. Dies ist die *Steuerebene*.
+ Geräte, die diese Aufgaben ausführen. Dies ist die *Datenebene*, mit der Sie Daten senden und empfangen können.

Die Auftragsverwaltung und die Auftragssteuerung verwenden eine HTTPS-Protokoll-API. Geräte können eine MQTT- oder eine HTTPS-Protokoll-API verwenden. Die Steuerebenen-API ist für eine geringe Anzahl von Aufrufen ausgelegt, wie sie für die Erstellung und Verfolgung von Aufträgen typisch sind. In der Regel öffnet sie eine Verbindung für eine einzelne Anforderung und schließt diese dann nach dem Eingang der Antwort. Die Datenebene HTTPS und die MQTT-API ermöglichen lange Abfragen. Diese API-Vorgänge sind für große Datenmengen ausgelegt, die auf Millionen von Geräten skaliert werden können.

Jede AWS IoT Jobs-HTTPS-API hat einen entsprechenden Befehl, mit dem Sie die API über AWS Command Line Interface (AWS CLI) aufrufen können. Die Befehle werden in Kleinbuchstaben mit Bindestrichen zwischen den Wörtern, aus denen die API besteht, ausgedrückt. Beispielsweise können Sie die `CreateJob`-API in der CLI aufrufen, indem Sie Folgendes eingeben:

```
aws iot create-job ...
```

Wenn während eines Vorgangs ein Fehler auftritt, erhalten Sie eine Fehlerantwort, die Informationen über den Fehler enthält.

## ErrorResponse
<a name="jobs-mqtt-error-response"></a>

Enthält Informationen zu einem Fehler, der während einer Operation des AWS IoT Jobs-Service aufgetreten ist.

Das folgende Beispiel zeigt die Syntax dieser Operation:

```
{
    "code": "ErrorCode",
    "message": "string",
    "clientToken": "string",
    "timestamp": timestamp,
    "executionState": JobExecutionState
}
```

Im Folgenden finden Sie eine Beschreibung dieser `ErrorResponse`:

`code`  
ErrorCode kann wie folgt eingestellt werden:    
InvalidTopic  
Die Anfrage wurde an ein Thema im AWS IoT Jobs-Namespace gesendet, das keiner API-Operation zugeordnet ist.  
InvalidJson  
Der Inhalt der Anforderung konnte nicht als gültiger nach UTF-8 kodierter JSON-Inhalt interpretiert werden.  
InvalidRequest  
Der Inhalt der Anforderung war nicht gültig. Dieser Code wird beispielsweise ausgegeben, wenn eine `UpdateJobExecution`-Anforderung ungültige Statusdetails enthält. Die Mitteilung enthält Einzelheiten zu dem Fehler.  
InvalidStateTransition  
Bei einem Update wurde versucht, die Auftragsausführung in einen Status zu ändern, der aufgrund des aktuellen Status der Auftragsausführung nicht gültig ist. Beispiel: Ein Versuch, eine Anforderung im Status SUCCEED in den Status IN\$1PROGRESS zu ändern. In diesem Fall enthält der Text der Fehlermeldung auch das Feld `executionState`.  
ResourceNotFound  
Die von dem Anforderungsthema angegebene `JobExecution` ist nicht vorhanden.   
VersionMismatch  
Die in der Anfrage angegebene erwartete Version stimmt nicht mit der Version der Jobausführung im AWS IoT Jobs-Service überein. In diesem Fall enthält der Text der Fehlermeldung auch das Feld `executionState`.  
InternalError  
Bei der Verarbeitung der Anforderung ist ein interner Fehler aufgetreten.  
RequestThrottled  
Die Anforderung wurde gedrosselt.  
TerminalStateReached  
Tritt auf, wenn ein Befehl zum Beschreiben eines Auftrags für einen Auftrag im Status „Terminal“ durchgeführt wird.

`message`  
Eine Fehlermeldungszeichenfolge.

`clientToken`  
Eine beliebige Zeichenfolge für die Korrelierung einer Anforderung mit der jeweiligen Antwort.

`timestamp`  
Die seit der Epoche vergangene Zeit (in Sekunden).

`executionState`  
Ein [https://docs.aws.amazon.com/iot/latest/apireference/API_iot-jobs-data_JobExecutionState.html](https://docs.aws.amazon.com/iot/latest/apireference/API_iot-jobs-data_JobExecutionState.html)-Objekt. Dieses Feld ist nur enthalten, wenn das Feld `code` den Wert `InvalidStateTransition` oder `VersionMismatch` hat. Dadurch ist es in diesen Fällen nicht erforderlich, eine separate `DescribeJobExecution`-Anforderung durchzuführen, um die Daten zum Status der aktuellen Auftragsausführung abzurufen.

**Topics**
+ [Auftragsverwaltung und -steuerung API und Datentypen](jobs-management-control-api.md)
+ [Aufträge, Geräte, MQTT- und HTTPS-API-Operationen und Datentypen](jobs-mqtt-https-api.md)

# Auftragsverwaltung und -steuerung API und Datentypen
<a name="jobs-management-control-api"></a>

**Topics**
+ [Datentypen für Auftragsverwaltung und -steuerung](#jobs-control-plane-data-types)
+ [API-Operationen zur Auftragsverwaltung und -steuerung](#jobs-http-api)

Führen Sie diesen Befehl aus, um den *endpoint-url* Parameter für Ihre CLI-Befehle zu ermitteln.

```
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 `x-amzn-http-ca` nicht.  
Wenn Sie Dual-Stack-Endpunkte (IPv6 und IPv6) verwenden, verwenden Sie den `iot:Data-ATS` Endpunkt. Der `iot:Jobs` Endpunkt unterstützt nur. IPv4

## Datentypen für Auftragsverwaltung und -steuerung
<a name="jobs-control-plane-data-types"></a>

Die folgenden Datentypen werden von Verwaltungs- und Steuerungsanwendungen für die Kommunikation mit AWS IoT Jobs verwendet.

### Aufgabe
<a name="jobs-job"></a>

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
    }
}
```

Für weitere Informationen siehe [https://docs.aws.amazon.com/iot/latest/apireference/API_Job.html](https://docs.aws.amazon.com/iot/latest/apireference/API_Job.html) oder [https://docs.aws.amazon.com/cli/latest/reference/iot/job.html](https://docs.aws.amazon.com/cli/latest/reference/iot/job.html). 

### JobSummary
<a name="jobs-job-summary"></a>

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
}
```

Für weitere Informationen siehe [https://docs.aws.amazon.com/iot/latest/apireference/API_JobSummary.html](https://docs.aws.amazon.com/iot/latest/apireference/API_JobSummary.html) oder [https://docs.aws.amazon.com/cli/latest/reference/iot/job-summary.html](https://docs.aws.amazon.com/cli/latest/reference/iot/job-summary.html).

### JobExecution
<a name="jobs-job-execution"></a>

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 der Steuerebene verwenden, enthält der Datentyp `JobExecution` kein `JobDocument`-Feld. Um diese Informationen zu erhalten, können Sie die [https://docs.aws.amazon.com/iot/latest/apireference/API_GetJobDocument.html](https://docs.aws.amazon.com/iot/latest/apireference/API_GetJobDocument.html) API-Operation oder den [https://docs.aws.amazon.com/cli/latest/reference/get-job-document.html](https://docs.aws.amazon.com/cli/latest/reference/get-job-document.html) CLI-Befehl verwenden.

```
{
    "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
}
```

Für weitere Informationen siehe [https://docs.aws.amazon.com/iot/latest/apireference/API_JobExecution.html](https://docs.aws.amazon.com/iot/latest/apireference/API_JobExecution.html) oder [https://docs.aws.amazon.com/cli/latest/reference/iot/job-execution.html](https://docs.aws.amazon.com/cli/latest/reference/iot/job-execution.html).

### JobExecutionSummary
<a name="jobs-job-execution-summary"></a>

Das `JobExecutionSummary`-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"
}
```

Für weitere Informationen siehe [https://docs.aws.amazon.com/iot/latest/apireference/API_JobExecutionSummary.html](https://docs.aws.amazon.com/iot/latest/apireference/API_JobExecutionSummary.html) oder [https://docs.aws.amazon.com/cli/latest/reference/iot/job-execution-summary.html](https://docs.aws.amazon.com/cli/latest/reference/iot/job-execution-summary.html).

### JobExecutionSummaryForJob
<a name="jobs-job-execution-summary-for-job"></a>

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
            }
        }, 
        ...
    ]
}
```

Für weitere Informationen siehe [https://docs.aws.amazon.com/iot/latest/apireference/API_JobExecutionSummaryForJob.html](https://docs.aws.amazon.com/iot/latest/apireference/API_JobExecutionSummaryForJob.html) oder [https://docs.aws.amazon.com/cli/latest/reference/iot/job-execution-summary-for-job.html](https://docs.aws.amazon.com/cli/latest/reference/iot/job-execution-summary-for-job.html).

### JobExecutionSummaryForThing
<a name="jobs-job-execution-summary-for-thing"></a>

Das `JobExecutionSummaryForThing` Objekt enthält eine Zusammenfassung von Informationen über die Ausführung eines Jobs an einem bestimmten Objekt. FThe Das folgende Beispiel zeigt die Syntax:

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

Für weitere Informationen siehe [https://docs.aws.amazon.com/iot/latest/apireference/API_JobExecutionSummaryForThing.html](https://docs.aws.amazon.com/iot/latest/apireference/API_JobExecutionSummaryForThing.html) oder [https://docs.aws.amazon.com/cli/latest/reference/iot/job-execution-summary-for-thing.html](https://docs.aws.amazon.com/cli/latest/reference/iot/job-execution-summary-for-thing.html).

## API-Operationen zur Auftragsverwaltung und -steuerung
<a name="jobs-http-api"></a>

Verwenden Sie die folgenden API-Vorgänge oder CLI-Befehle:

### AssociateTargetsWithJob
<a name="jobs-AssociateTargetsWithJob"></a>

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 [https://docs.aws.amazon.com/iot/latest/apireference/API_AssociateTargetsWithJob.html](https://docs.aws.amazon.com/iot/latest/apireference/API_AssociateTargetsWithJob.html). 

------
#### [ 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 [https://docs.aws.amazon.com/cli/latest/reference/iot/associate-targets-with-job.html](https://docs.aws.amazon.com/cli/latest/reference/iot/associate-targets-with-job.html).

------

### CancelJob
<a name="jobs-CancelJob"></a>

Bricht einen Auftrag ab.

------
#### [ HTTPS request ]

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

Weitere Informationen finden Sie unter [https://docs.aws.amazon.com/iot/latest/apireference/API_CancelJob.html](https://docs.aws.amazon.com/iot/latest/apireference/API_CancelJob.html). 

------
#### [ 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 [https://docs.aws.amazon.com/cli/latest/reference/iot/cancel-job.html](https://docs.aws.amazon.com/cli/latest/reference/iot/cancel-job.html). 

------

### CancelJobExecution
<a name="jobs-CancelJobExecution"></a>

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 [https://docs.aws.amazon.com/iot/latest/apireference/API_CancelJobExecution.html](https://docs.aws.amazon.com/iot/latest/apireference/API_CancelJobExecution.html).

------
#### [ 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 [https://docs.aws.amazon.com/cli/latest/reference/iot/cancel-job-execution.html](https://docs.aws.amazon.com/cli/latest/reference/iot/cancel-job-execution.html).

------

### CreateJob
<a name="jobs-CreateJob"></a>

Erstellt einen Auftrag. Sie können das Auftragsdokument als Link zu einer Datei in einem Amazon S3-Bucket (Parameter `documentSource`) oder im Text der Anfrage (Parameter `document`) bereitstellen.

Ein Auftrag kann *kontinuierlich* gemacht werden, indem Sie den optionalen Parameter `targetSelection` auf `CONTINUOUS` setzen (der Standard ist `SNAPSHOT`). Ein kontinuierlicher Auftrag 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 Objekte gestartet wird. Dies kann auch dann der Fall sein, wenn die Objekte, die sich zum Zeitpunkt der Auftragserstellung in der Gruppe befanden, den Auftrag abgeschlossen haben.

Ein Job kann einen optionalen Wert haben [TimeoutConfig](https://docs.aws.amazon.com//iot/latest/apireference/API_TimeoutConfig.html), der den Wert des Timers für die Bearbeitung 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 `targets` Argument muss eine Liste gültiger Dinge oder Dinggruppen ARNs sein. Alle Dinge und Dinggruppen müssen in Ihrer sein AWS-Konto.
+ Das Argument `documentSource` muss eine gültige Amazon S3-URL zu einem Auftragsdokument sein. Amazon S3 URLs haben das 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 für eine MQTT-Nachricht (128 KB) und die Verschlüsselung auf 32 KB begrenzt.
+ Das `jobId` muss in Ihrem einzigartig sein AWS-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 [https://docs.aws.amazon.com/iot/latest/apireference/API_CreateJob.html](https://docs.aws.amazon.com/iot/latest/apireference/API_CreateJob.html). 

------
#### [ 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 [https://docs.aws.amazon.com/cli/latest/reference/iot/create-job.html](https://docs.aws.amazon.com/cli/latest/reference/iot/create-job.html). 

------

### DeleteJob
<a name="jobs-DeleteJob"></a>

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\$1IN\$1PROGRESS“ angezeigt. Der Versuch, einen Auftrag zu löschen oder abzubrechen, dessen Status bereits „DELETION\$1IN\$1PROGRESS“ ist, führt zu einem Fehler.

------
#### [ HTTPS request ]

```
DELETE /jobs/jobId?force=force 
```

Weitere Informationen finden Sie unter [https://docs.aws.amazon.com/iot/latest/apireference/API_DeleteJob.html](https://docs.aws.amazon.com/iot/latest/apireference/API_DeleteJob.html).

------
#### [ 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 [https://docs.aws.amazon.com/cli/latest/reference/iot/delete-job.html](https://docs.aws.amazon.com/cli/latest/reference/iot/delete-job.html).

------

### DeleteJobExecution
<a name="jobs-DeleteJobExecution"></a>

Löscht eine Auftragsausführung.

------
#### [ HTTPS request ]

```
DELETE /things/thingName/jobs/jobId/executionNumber/executionNumber?force=force
```

Weitere Informationen finden Sie unter [https://docs.aws.amazon.com/iot/latest/apireference/API_DeleteJobExecution.html](https://docs.aws.amazon.com/iot/latest/apireference/API_DeleteJobExecution.html).

------
#### [ 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 [https://docs.aws.amazon.com/cli/latest/reference/iot/delete-job-execution.html](https://docs.aws.amazon.com/cli/latest/reference/iot/delete-job-execution.html).

------

### DescribeJob
<a name="jobs-DescribeJob"></a>

Ruft die Details der Auftragsausführung ab.

------
#### [ HTTPS request ]

```
GET /jobs/jobId
```

Weitere Informationen finden Sie unter [https://docs.aws.amazon.com/iot/latest/apireference/API_DescribeJob.html](https://docs.aws.amazon.com/iot/latest/apireference/API_DescribeJob.html).

------
#### [ 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 [https://docs.aws.amazon.com/cli/latest/reference/iot/describe-job.html](https://docs.aws.amazon.com/cli/latest/reference/iot/describe-job.html).

------

### DescribeJobExecution
<a name="jobs-DescribeJobExecution"></a>

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 [https://docs.aws.amazon.com/iot/latest/apireference/API_DescribeJobExecution.html](https://docs.aws.amazon.com/iot/latest/apireference/API_DescribeJobExecution.html).

------
#### [ 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 [https://docs.aws.amazon.com/cli/latest/reference/iot/describe-job-execution.html](https://docs.aws.amazon.com/cli/latest/reference/iot/describe-job-execution.html).

------

### GetJobDocument
<a name="jobs-GetJobDocument"></a>

Ruft das Auftragsdokument für einen Auftrag ab.

**Anmerkung**  
Platzhalter URLs werden in dem zurückgesandten Dokument nicht durch vorsignierte Amazon S3 URLs ersetzt. Vorsignierte URLs werden nur generiert, wenn der AWS IoT Jobs-Service eine Anfrage über MQTT erhält.

------
#### [ HTTPS request ]

```
GET /jobs/jobId/job-document
```

Weitere Informationen finden Sie unter [https://docs.aws.amazon.com/iot/latest/apireference/API_GetJobDocument.html](https://docs.aws.amazon.com/iot/latest/apireference/API_GetJobDocument.html).

------
#### [ 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 [https://docs.aws.amazon.com/cli/latest/reference/iot/get-job-document.html](https://docs.aws.amazon.com/cli/latest/reference/iot/get-job-document.html).

------

### ListJobExecutionsForJob
<a name="jobs-listJobExecutionsForJob"></a>

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 [https://docs.aws.amazon.com/iot/latest/apireference/API_ListJobExecutionsForJob.html](https://docs.aws.amazon.com/iot/latest/apireference/API_ListJobExecutionsForJob.html).

------
#### [ 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 [https://docs.aws.amazon.com/cli/latest/reference/iot/list-job-executions-for-job.html](https://docs.aws.amazon.com/cli/latest/reference/iot/list-job-executions-for-job.html).

------

### ListJobExecutionsForThing
<a name="jobs-ListJobExecutionsForThing"></a>

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 [https://docs.aws.amazon.com/iot/latest/apireference/API_ListJobExecutionsForThing.html](https://docs.aws.amazon.com/iot/latest/apireference/API_ListJobExecutionsForThing.html).

------
#### [ 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 [https://docs.aws.amazon.com/cli/latest/reference/iot/list-job-executions-for-thing.html](https://docs.aws.amazon.com/cli/latest/reference/iot/list-job-executions-for-thing.html).

------

### ListJobs
<a name="jobs-listJobs"></a>

Ruft eine Liste der Jobs in Ihrem ab. AWS-Konto

------
#### [ HTTPS request ]

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

Weitere Informationen finden Sie unter [https://docs.aws.amazon.com/iot/latest/apireference/API_ListJobs.html](https://docs.aws.amazon.com/iot/latest/apireference/API_ListJobs.html).

------
#### [ 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 [https://docs.aws.amazon.com/cli/latest/reference/iot/list-jobs.html](https://docs.aws.amazon.com/cli/latest/reference/iot/list-jobs.html).

------

### UpdateJob
<a name="jobs-UpdateJob"></a>

Aktualisiert unterstützte Felder des angegebenen Auftrags. Aktualisierte Werte für `timeoutConfig` werden nur für neu begonnen Launches 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 [https://docs.aws.amazon.com/iot/latest/apireference/API_UpdateJob.html](https://docs.aws.amazon.com/iot/latest/apireference/API_UpdateJob.html).

------
#### [ 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 [https://docs.aws.amazon.com/cli/latest/reference/iot/update-job.html](https://docs.aws.amazon.com/cli/latest/reference/iot/update-job.html).

------

# Aufträge, Geräte, MQTT- und HTTPS-API-Operationen und Datentypen
<a name="jobs-mqtt-https-api"></a>

Die folgenden Befehle stehen über die Protokolle MQTT und HTTPS zur Verfügung. Verwenden Sie diese API-Operationen auf der Datenebene für Geräte, die die Aufträge ausführen.

## Geräte, MQTT- und HTTPS-Datentypen
<a name="jobs-data-plane-data-types"></a>

Die folgenden Datentypen werden für die Kommunikation mit dem AWS IoT Jobs-Dienst über die Protokolle MQTT und HTTPS verwendet.

### JobExecution
<a name="jobs-mqtt-job-execution-data"></a>

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 MQTT und HTTP für die Datenebene verwenden, enthält der Datentyp `JobExecution` ein `JobDocument`-Feld. Ihre Geräte können diese Informationen verwenden, um das Auftragsdokument aus einer Auftragsausführung abzurufen.

```
{
    "jobId" : "string",
    "thingName" : "string",
    "jobDocument" : "string",
    "status": "QUEUED|IN_PROGRESS|FAILED|SUCCEEDED|CANCELED|TIMED_OUT|REJECTED|REMOVED",
    "statusDetails": {
        "string": "string"
    },
    "queuedAt" : "timestamp",
    "startedAt" : "timestamp",
    "lastUpdatedAt" : "timestamp",
    "versionNumber" : "number",
    "executionNumber": long
}
```

Für weitere Informationen siehe [https://docs.aws.amazon.com/iot/latest/apireference/API_iot-jobs-data_JobExecution.html](https://docs.aws.amazon.com/iot/latest/apireference/API_iot-jobs-data_JobExecution.html) oder [https://docs.aws.amazon.com/cli/latest/reference/iot-data/job-execution.html](https://docs.aws.amazon.com/cli/latest/reference/iot-data/job-execution.html).

### JobExecutionState
<a name="jobs-mqtt-job-execution-state"></a>

Das `JobExecutionState` enthält Informationen über den Status einer Auftragsausführung. Im folgenden Beispiel wird die Syntax dargestellt:

```
{
    "status": "QUEUED|IN_PROGRESS|FAILED|SUCCEEDED|CANCELED|TIMED_OUT|REJECTED|REMOVED",
    "statusDetails": {
        "string": "string"
        ...
    }
    "versionNumber": "number"
}
```

Für weitere Informationen siehe [https://docs.aws.amazon.com/iot/latest/apireference/API_iot-jobs-data_JobExecutionState.html](https://docs.aws.amazon.com/iot/latest/apireference/API_iot-jobs-data_JobExecutionState.html) oder [https://docs.aws.amazon.com/cli/latest/reference/iot-data/job-execution-state.html](https://docs.aws.amazon.com/cli/latest/reference/iot-data/job-execution-state.html).

### JobExecutionSummary
<a name="jobs-mqtt-job-execution-summary"></a>

Enthält einen Teil der Informationen zu einer Auftragsausführung. Im folgenden Beispiel wird die Syntax dargestellt:

```
{
    "jobId": "string",
    "queuedAt": timestamp,
    "startedAt": timestamp,
    "lastUpdatedAt": timestamp,
    "versionNumber": "number",
    "executionNumber": long 
}
```

Für weitere Informationen siehe [https://docs.aws.amazon.com/iot/latest/apireference/API_iot-jobs-data_JobExecutionSummary.html](https://docs.aws.amazon.com/iot/latest/apireference/API_iot-jobs-data_JobExecutionSummary.html) oder [https://docs.aws.amazon.com/cli/latest/reference/iot-data/job-execution-summary.html](https://docs.aws.amazon.com/cli/latest/reference/iot-data/job-execution-summary.html).

**Topics**
+ [Geräte, MQTT- und HTTPS-Datentypen](#jobs-data-plane-data-types)
+ [Führt MQTT-API-Operationen auf dem Gerät aus](jobs-mqtt-api.md)
+ [HTTP-API für Aufträge-Geräte](jobs-http-device-api.md)

# Führt MQTT-API-Operationen auf dem Gerät aus
<a name="jobs-mqtt-api"></a><a name="jobs-mqtt-note"></a>

Sie können Gerätebefehle für Aufträge ausgeben, indem Sie MQTT-Nachrichten in den [für Auftragsbefehle verwendeten reservierten Themen](reserved-topics.md#reserved-topics-job) veröffentlichen. 

Ihr geräteseitiger Client muss die Antwortnachrichten-Themen dieser Befehle abonniert haben. Wenn Sie den AWS IoT Geräteclient verwenden, abonniert Ihr Gerät automatisch die Antwortthemen. Das bedeutet, dass der Message Broker die Themen der Antwortnachricht auf dem Client veröffentlicht, der die Befehlsnachricht veröffentlicht hat, unabhängig davon, ob Ihr Client die Themen der Antwortnachricht abonniert hat oder nicht. Diese Antwortnachrichten werden nicht durch den Message Broker weitergeleitet und können auch nicht von anderen Clients oder Regeln abonniert werden.

Wenn Sie den Auftrag und die `jobExecution` Ereignisthemen für Ihre Flottenüberwachungslösung abonnieren, aktivieren Sie zunächst die [Aufgaben- und Auftragsausführungsereignisse](iot-events.md), um alle Ereignisse auf der Cloud-Seite zu empfangen. Auftragsfortschrittsnachrichten, die über den Message Broker verarbeitet werden und von AWS IoT -Regeln verwendet werden können, werden veröffentlicht als [Auftragsereignisse](events-jobs.md). Da der Message Broker Antwortnachrichten auch ohne ausdrückliches Abonnement veröffentlicht, muss Ihr Client so konfiguriert sein, dass er die empfangenen Nachrichten empfängt und identifiziert. Ihr Kunde muss außerdem bestätigen, dass das Thema *thingName* in der eingehenden Nachricht für den Dingnamen des Kunden gilt, bevor der Client auf die Nachricht reagiert.

**Anmerkung**  
Nachrichten, die als Antwort auf MQTT Jobs API-Befehlsnachrichten AWS IoT gesendet werden, werden Ihrem Konto in Rechnung gestellt, unabhängig davon, ob Sie sie explizit abonniert haben oder nicht.

Im Folgenden werden die MQTT-API-Operationen und ihre Anfrage- und Antwortsyntax gezeigt. Alle MQTT-API-Operationen haben die folgenden Parameter:

clientToken  
Ein optionaler Client-Token zur Korrelierung von Anforderungen und Antworten. Geben Sie hier einen beliebigen Wert ein, und dieser wird in der Antwort reflektiert.

`timestamp`  
Die Zeit in Sekunden seit der Epoche, in der die Nachricht gesendet wurde, vergangene Zeit.

## GetPendingJobExecutions
<a name="mqtt-getpendingjobexecutions"></a>

Ruft die Liste aller Aufträge für ein bestimmtes Objekt ab, die sich nicht in einem Terminal-Zustand befinden.

Veröffentlichen Sie zum Aufruf dieser API eine Nachricht auf `$aws/things/thingName/jobs/get`.

Anforderungsnutzlast:

```
{ "clientToken": "string" }
```

Der Message Broker veröffentlicht `$aws/things/thingName/jobs/get/accepted` und `$aws/things/thingName/jobs/get/rejected` auch ohne ein bestimmtes Abonnement. Damit Ihr Kunde die Nachrichten empfangen kann, muss er sie jedoch abhören. Weitere Informationen finden Sie [in der Anmerkung zu Jobs API-Nachrichten](#jobs-mqtt-note).

Antwortnutzlast:

```
{
"inProgressJobs" : [ JobExecutionSummary ... ], 
"queuedJobs" : [ JobExecutionSummary ... ],
"timestamp" : 1489096425069,
"clientToken" : "client-001"
}
```

Wenn `inProgressJobs` und `queuedJobs` eine Liste von [JobExecutionSummary](jobs-mqtt-https-api.md#jobs-mqtt-job-execution-summary) Objekten zurückgibt, die den Status `IN_PROGRESS` oder `QUEUED` haben.

## StartNextPendingJobExecution
<a name="mqtt-startnextpendingjobexecution"></a>

Ruft die nächste anstehende Auftragsausführung für ein Objekt ab und startet sie (Status `IN_PROGRESS` oder `QUEUED`). 
+ Alle Auftragsausführungen mit dem Status `IN_PROGRESS` werden zuerst zurückgegeben.
+ Auftragsausführungen werden in der Reihenfolge zurückgegeben, in der sie zur Warteschlange hinzugefügt wurden. Wenn der Zielgruppe für Ihren Auftrag etwas hinzugefügt oder daraus entfernt wird, überprüfen Sie die Rollout-Reihenfolge aller neuen Auftragsausführungen im Vergleich zu bestehenden Auftragsausführungen.
+ Wenn die nächste ausstehende Auftragsausführung den Status `QUEUED` hat, wechselt ihr Status zu `IN_PROGRESS`, und die Statusdetails der Auftragsausführung werden wie angegeben eingerichtet.
+ Wenn die nächste ausstehende Auftragsausführung bereits den Status `IN_PROGRESS` hat, werden ihre Statusdetails nicht geändert.
+ Wenn keine Auftragsausführungen ausstehen, enthält die Antwort das Feld `execution` nicht.
+ Optional können Sie einen Schritt-Timer erstellen, indem Sie einen Wert für die `stepTimeoutInMinutes`-Eigenschaft angeben. Falls Sie den Wert dieser Eigenschaft nicht aktualisieren, indem Sie `UpdateJobExecution` ausführen, läuft die Auftragsausführung ab, wenn der Schritt-Timer abläuft.

Veröffentlichen Sie zum Aufruf dieser API eine Nachricht auf `$aws/things/thingName/jobs/start-next`.

Anforderungsnutzlast:

```
{ 
"statusDetails": {
    "string": "job-execution-state"
    ...
},
"stepTimeoutInMinutes": long,
"clientToken": "string"
}
```

`statusDetails`  
Eine Sammlung von Name/Wert-Paaren, die den Status der Auftragsausführung beschreiben. Wenn nicht angegeben, sind die `statusDetails` nicht geändert.

`stepTimeOutInMinutes`  
Gibt die Dauer an, die dieses Gerät für den Abschluss der Ausführung dieses Auftrags hat. Wenn der Status der Auftragsausführung vor Ablauf oder Zurücksetzen des Timers (durch Aufrufen von `UpdateJobExecution`, Setzen des Status auf `IN_PROGRESS` und Angeben eines neuen Zeitüberschreitungswerts im Feld `stepTimeoutInMinutes`) auf keinen Terminal-Zustand gesetzt wird, wird der Status der Auftragsausführung auf `TIMED_OUT` gesetzt. Das Festlegen dieser Zeitüberschreitung hat keinen Einfluss auf die Zeitüberschreitung für die Auftragsausführung, die möglicherweise beim Erstellen des Auftrags festgelegt wurde (`CreateJob` mithilfe des Feldes `timeoutConfig`).   
Gültige Werte für diesen Parameter liegen im Bereich von 1 bis 10 080 (1 Minute bis 7 Tage). Ein Wert von -1 ist ebenfalls gültig und beendet den aktuellen Step-Timer (der durch eine frühere Verwendung von UpdateJobExecutionRequest erstellt wurde).

Der Message Broker veröffentlicht `$aws/things/thingName/jobs/start-next/accepted` und `$aws/things/thingName/jobs/start-next/rejected` auch ohne ein bestimmtes Abonnement. Damit Ihr Kunde die Nachrichten empfangen kann, muss er sie jedoch abhören. Weitere Informationen finden Sie [in der Anmerkung zu Jobs API-Nachrichten](#jobs-mqtt-note).

Antwortnutzlast:

```
{
"execution" : JobExecutionData,
"timestamp" : timestamp,
"clientToken" : "string"
}
```

Wo `execution` ein [JobExecution](jobs-mqtt-https-api.md#jobs-mqtt-job-execution-data)-Objekt ist. Beispiel:

```
{
"execution" : {
    "jobId" : "022",
    "thingName" : "MyThing",
    "jobDocument" : "< contents of job document >",
    "status" : "IN_PROGRESS",
    "queuedAt" : 1489096123309,
    "lastUpdatedAt" : 1489096123309,
    "versionNumber" : 1,
    "executionNumber" : 1234567890
},
"clientToken" : "client-1",
"timestamp" : 1489088524284,
}
```

## DescribeJobExecution
<a name="mqtt-describejobexecution"></a>

Ruft detaillierte Informationen zu einer Auftragsausführung ab.

Sie können die `jobId` auf `$next` setzen, um die nächste ausstehende Auftragsausführung für ein Objekt (mit Status `IN_PROGRESS` oder `QUEUED`) zurückzugeben.

Veröffentlichen Sie zum Aufruf dieser API eine Nachricht auf `$aws/things/thingName/jobs/jobId/get`. 

Anforderungsnutzlast:

```
{ 
"jobId" : "022",
"thingName" : "MyThing",
"executionNumber": long,
"includeJobDocument": boolean,
"clientToken": "string" 
}
```

`thingName`  
Der Name des dem Gerät zugeordneten Objekts.

`jobId`  
Die eindeutige Kennung, die diesem Auftrag bei seiner Erstellung zugewiesen wurde.   
Sie können `$next` verwenden, um die nächste ausstehende Auftragsausführung für ein Objekt (mit Status `IN_PROGRESS` oder `QUEUED`) zurückzugeben. In diesem Fall werden alle Auftragsausführungen mit dem Status `IN_PROGRESS` zuerst zurückgegeben. Auftragsausführungen werden in der Reihenfolge zurückgegeben, in der sie erstellt wurden.

`executionNumber`  
(Optional) Eine Nummer, die eine Auftragsausführung auf einem Gerät identifiziert. Wenn nicht angegeben, wird die letzte Auftragsausführung zurückgegeben.

`includeJobDocument`  
(Optional) Sofern nicht auf `false` gesetzt, enthält die Antwort das Auftragsdokument. Der Standardwert ist `true`.

Der Message Broker veröffentlicht `$aws/things/thingName/jobs/jobId/get/accepted` und `$aws/things/thingName/jobs/jobId/get/rejected` auch ohne ein bestimmtes Abonnement. Damit Ihr Kunde die Nachrichten empfangen kann, muss er sie jedoch abhören. Weitere Informationen finden Sie [in der Anmerkung zu Jobs API-Nachrichten](#jobs-mqtt-note).

Antwortnutzlast:

```
{
"execution" : JobExecutionData,
"timestamp": "timestamp",
"clientToken": "string"
}
```

Wo `execution` ein [JobExecution](jobs-mqtt-https-api.md#jobs-mqtt-job-execution-data)-Objekt ist.

## UpdateJobExecution
<a name="mqtt-updatejobexecution"></a>

Aktualisiert den Status einer Auftragsausführung. Sie können optional einen Schritt-Timer erstellen, indem Sie einen Wert für die `stepTimeoutInMinutes`-Eigenschaft angeben. Falls Sie den Wert dieser Eigenschaft nicht aktualisieren, indem Sie `UpdateJobExecution` erneut ausführen, läuft die Auftragsausführung ab, wenn der Schritt-Timer abläuft.

Veröffentlichen Sie zum Aufruf dieser API eine Nachricht auf `$aws/things/thingName/jobs/jobId/update`. 

Anforderungsnutzlast:

```
{
"status": "job-execution-state",
"statusDetails": { 
    "string": "string"
    ...
},
"expectedVersion": "number",
"executionNumber": long,
"includeJobExecutionState": boolean,
"includeJobDocument": boolean,
"stepTimeoutInMinutes": long,
"clientToken": "string"
}
```

`status`  
Der neue Status für die Auftragsausführung (`IN_PROGRESS`, `FAILED`, `SUCCEEDED` oder `REJECTED`). Dieser muss bei jeder Aktualisierung angegeben werden.

`statusDetails`  
Eine Sammlung von Name/Wert-Paaren, die den Status der Auftragsausführung beschreiben. Wenn nicht angegeben, sind die `statusDetails` nicht geändert.

`expectedVersion`  
Die erwartete aktuelle Version der Auftragsausführung. Bei jeder Aktualisierung der Auftragsausführung wird die Version erhöht. Wenn die im Jobs-Service gespeicherte Version der AWS IoT Auftragsausführung nicht übereinstimmt, wird die Aktualisierung mit einem `VersionMismatch` Fehler abgelehnt. Eine [ErrorResponse](jobs-api.md#jobs-mqtt-error-response), die den aktuellen Status der Auftragsausführung enthält, wird ebenfalls zurückgegeben. (Dadurch ist es nicht erforderlich, eine separate `DescribeJobExecution`-Anforderung durchzuführen, um die Daten zum Status der Auftragsausführung abzurufen.)

`executionNumber`  
(Optional) Eine Nummer, die eine Auftragsausführung auf einem Gerät identifiziert. Wenn nicht angegeben, wird die letzte Auftragsausführung verwendet.

`includeJobExecutionState`  
(Optional) Wenn enthalten und auf `true` gesetzt, enthält die Antwort das Feld `JobExecutionState`. Der Standardwert ist `false`.

`includeJobDocument`  
(Optional) Wenn enthalten und auf `true` gesetzt, enthält die Antwort das `JobDocument`. Der Standardwert ist `false`.

`stepTimeoutInMinutes`  
Gibt die Dauer an, die dieses Gerät für den Abschluss der Ausführung dieses Auftrags hat. Wenn der Status der Auftragsausführung nicht in einen Terminal-Zustand gesetzt wird, bevor dieser Timer abläuft oder bevor der Timer zurückgesetzt wird, wird der Status der Auftragsausführung auf `TIMED_OUT` gesetzt. Das Festlegen oder Zurücksetzen dieser Zeitüberschreitung hat keinen Einfluss auf die Zeitüberschreitung der Auftragsausführung, die möglicherweise beim Erstellen des Auftrags festgelegt wurde. 

Der Message Broker veröffentlicht `$aws/things/thingName/jobs/jobId/update/accepted` und `$aws/things/thingName/jobs/jobId/update/rejected` auch ohne ein bestimmtes Abonnement. Damit Ihr Kunde die Nachrichten empfangen kann, muss er sie jedoch abhören. Weitere Informationen finden Sie [in der Anmerkung zu Jobs API-Nachrichten](#jobs-mqtt-note).

Antwortnutzlast:

```
{
"executionState": JobExecutionState,
"jobDocument": "string",
"timestamp": timestamp,
"clientToken": "string"
}
```

`executionState`  
Ein [JobExecutionState](jobs-mqtt-https-api.md#jobs-mqtt-job-execution-state)-Objekt.

`jobDocument`  
Ein [-Auftragsdokument](key-concepts-jobs.md)-Objekt.  
In MQTT-Antworten ist das `jobDocument` Feld ein JSON-Objekt. In HTTP-Antworten ist es eine Zeichenkettendarstellung des JSON-Objekts.

`timestamp`  
Die Zeit in Sekunden seit der Epoche, in der die Nachricht gesendet wurde, vergangene Zeit.

`clientToken`  
Ein Client-Token zur Korrelierung von Anforderungen und Antworten.

Wenn Sie das MQTT-Protokoll verwenden, können Sie auch die folgenden Updates durchführen:

## JobExecutionsChanged
<a name="mqtt-jobexecutionschanged"></a>

Wird gesendet, wenn eine Auftragsausführung der Liste ausstehender Auftragsausführungen für ein Objekt hinzugefügt oder daraus entfernt wird.

Verwenden Sie das -Thema:

`$aws/things/thingName/jobs/notify`

Nachrichtennutzlast:

```
{
"jobs" : {
    "JobExecutionState": [ [https://docs.aws.amazon.com/iot/latest/apireference/API_JobExecutionSummary.html](https://docs.aws.amazon.com/iot/latest/apireference/API_JobExecutionSummary.html) ... ]
         },
    "timestamp": timestamp
}
```

## NextJobExecutionChanged
<a name="mqtt-nextjobexecutionchanged"></a>

Wird gesendet, wenn sich ändert, welche Auftragsausführung die nächste auf der Liste der ausstehenden Auftragsausführungen für ein Objekt ist, wie für [https://docs.aws.amazon.com/iot/latest/apireference/API_DescribeJobExecution.html](https://docs.aws.amazon.com/iot/latest/apireference/API_DescribeJobExecution.html) mit `jobId` `$next` definiert. Diese Nachricht wird nicht gesendet, wenn sich die Details der nächsten Auftragsausführung ändern, sondern nur, wenn sich der nächste Auftrag geändert hat, der von `DescribeJobExecution` mit `jobId` `$next` ausgegeben würde. Nehmen wir als Beispiel die Auftragsausführungen J1 und J2 mit dem Status `QUEUED`. J1 ist die nächste ausstehende Auftragsausführung auf der Liste. Wenn sich der Status von J2 zu `IN_PROGRESS` ändert und der Status von J1 unverändert bleibt, wird diese Benachrichtigung gesendet und enthält Details von J2.

Verwenden Sie das -Thema:

`$aws/things/thingName/jobs/notify-next`

Nachrichtennutzlast:

```
{
"execution" : [https://docs.aws.amazon.com/iot/latest/apireference/API_JobExecution.html](https://docs.aws.amazon.com/iot/latest/apireference/API_JobExecution.html),
"timestamp": timestamp,
}
```

# HTTP-API für Aufträge-Geräte
<a name="jobs-http-device-api"></a>

Geräte können mithilfe der HTTP-Signaturversion 4 an Port 443 mit AWS IoT Jobs kommunizieren. Dies ist die Methode, die von der AWS SDKs AND-CLI verwendet wird. Weitere Informationen zu diesen Tools finden Sie unter [AWS CLI Befehlsreferenz: iot-jobs-data](https://docs.aws.amazon.com/cli/latest/reference/iot-jobs-data/index.html) oder [AWS SDKs und Tools](https://aws.amazon.com/tools/#sdk).

Für Geräte, die die Aufträge ausführen, sind die folgenden Befehle verfügbar. Hinweise zur Verwendung von API-Operationen mit dem MQTT-Protokoll finden Sie unter [Führt MQTT-API-Operationen auf dem Gerät aus](jobs-mqtt-api.md).

## GetPendingJobExecutions
<a name="http-getpendingjobexecutions"></a>

Ruft die Liste aller Aufträge für ein bestimmtes Objekt ab, die sich nicht in einem Terminal-Zustand befinden.

------
#### [ HTTPS request ]

```
GET /things/thingName/jobs
```

Antwort:

```
{
"inProgressJobs" : [ JobExecutionSummary ... ], 
"queuedJobs" : [ JobExecutionSummary ... ]
}
```

Weitere Informationen finden Sie unter [https://docs.aws.amazon.com/iot/latest/apireference/API_iot-jobs-data_GetPendingJobExecutions.html](https://docs.aws.amazon.com/iot/latest/apireference/API_iot-jobs-data_GetPendingJobExecutions.html). 

------
#### [ CLI syntax ]

```
aws iot-jobs-data get-pending-job-executions \
--thing-name <value>  \
[--cli-input-json <value>] \
[--generate-cli-skeleton]
```

 `cli-input-json` format:

```
{
"thingName": "string"
}
```

Weitere Informationen finden Sie unter [https://docs.aws.amazon.com/cli/latest/reference/iot-jobs-data/get-pending-job-executions.html](https://docs.aws.amazon.com/cli/latest/reference/iot-jobs-data/get-pending-job-executions.html).

------

## StartNextPendingJobExecution
<a name="http-startnextpendingjobexecution"></a>

Ruft die nächste anstehende Auftragsausführung für ein Objekt ab und startet sie (mit Status `IN_PROGRESS` oder `QUEUED`). 
+ Alle Auftragsausführungen mit dem Status `IN_PROGRESS` werden zuerst zurückgegeben.
+ Auftragsausführungen werden in der Reihenfolge zurückgegeben, in der sie erstellt wurden.
+ Wenn die nächste ausstehende Auftragsausführung den Status `QUEUED` hat, wechselt ihr Status zu `IN_PROGRESS`, und die Statusdetails der Auftragsausführung werden wie angegeben eingerichtet.
+ Wenn die nächste ausstehende Auftragsausführung bereits den Status `IN_PROGRESS` hat, ändern sich ihre Statusdetails nicht.
+ Wenn keine Auftragsausführungen ausstehen, enthält die Antwort das Feld `execution` nicht.
+ Optional können Sie einen Schritt-Timer erstellen, indem Sie einen Wert für die `stepTimeoutInMinutes`-Eigenschaft angeben. Falls Sie den Wert dieser Eigenschaft nicht aktualisieren, indem Sie `UpdateJobExecution` ausführen, läuft die Auftragsausführung ab, wenn der Schritt-Timer abläuft.

------
#### [ HTTPS request ]

Im folgenden Beispiel wird die Anfragesyntax dargestellt:

```
PUT /things/thingName/jobs/$next
{
"statusDetails": { 
    "string": "string" 
    ... 
},
"stepTimeoutInMinutes": long
}
```

Weitere Informationen finden Sie unter [https://docs.aws.amazon.com/iot/latest/apireference/API_iot-jobs-data_StartNextPendingJobExecution.html](https://docs.aws.amazon.com/iot/latest/apireference/API_iot-jobs-data_StartNextPendingJobExecution.html).

------
#### [ CLI syntax ]

**Syntax:**

```
aws iot-jobs-data  start-next-pending-job-execution \
--thing-name <value> \
{--step-timeout-in-minutes <value>] \
[--status-details <value>]  \
[--cli-input-json <value>] \
[--generate-cli-skeleton]
```

 `cli-input-json` format:

```
{
"thingName": "string",
"statusDetails": {
"string": "string"
},
"stepTimeoutInMinutes": long
}
```

Weitere Informationen finden Sie unter [https://docs.aws.amazon.com/cli/latest/reference/iot-jobs-data/start-next-pending-job-execution.html](https://docs.aws.amazon.com/cli/latest/reference/iot-jobs-data/start-next-pending-job-execution.html).

------

## DescribeJobExecution
<a name="http-describejobexecution"></a>

Ruft detaillierte Informationen zu einer Auftragsausführung ab.

Sie können die `jobId` auf `$next` setzen, um die nächste ausstehende Auftragsausführung für ein Objekt zurückzugeben. Der Ausführungsstatus des Auftrags muss `QUEUED` oder `IN_PROGRESS` sein.

------
#### [ HTTPS request ]

Anforderung:

```
GET /things/thingName/jobs/jobId?executionNumber=executionNumber&includeJobDocument=includeJobDocument
```

Antwort:

```
{
"execution" : JobExecution,
}
```

Weitere Informationen finden Sie unter [https://docs.aws.amazon.com/iot/latest/apireference/API_iot-jobs-data_DescribeJobExecution.html](https://docs.aws.amazon.com/iot/latest/apireference/API_iot-jobs-data_DescribeJobExecution.html).

------
#### [ CLI syntax ]

**Syntax:**

```
aws iot-jobs-data  describe-job-execution \
--job-id <value> \
--thing-name <value> \
[--include-job-document | --no-include-job-document] \
[--execution-number <value>]  \
[--cli-input-json <value>] \
[--generate-cli-skeleton]
```

 `cli-input-json` format:

```
{
"jobId": "string",
"thingName": "string",
"includeJobDocument": boolean,
"executionNumber": long
}
```

Weitere Informationen finden Sie unter [https://docs.aws.amazon.com/cli/latest/reference/iot-data/describe-job-execution.html](https://docs.aws.amazon.com/cli/latest/reference/iot-data/describe-job-execution.html).

------

## UpdateJobExecution
<a name="http-updatejobexecution"></a>

Aktualisiert den Status einer Auftragsausführung. Optional können Sie einen Schritt-Timer erstellen, indem Sie einen Wert für die `stepTimeoutInMinutes`-Eigenschaft angeben. Falls Sie den Wert dieser Eigenschaft nicht aktualisieren, indem Sie `UpdateJobExecution` erneut ausführen, läuft die Auftragsausführung ab, wenn der Schritt-Timer abläuft.

------
#### [ HTTPS request ]

Anforderung:

```
POST /things/thingName/jobs/jobId
{
"status": "job-execution-state",
"statusDetails": { 
    "string": "string"
    ...
},
"expectedVersion": "number",
"includeJobExecutionState": boolean,
"includeJobDocument": boolean,
"stepTimeoutInMinutes": long,
"executionNumber": long 
}
```

Weitere Informationen finden Sie unter [https://docs.aws.amazon.com/iot/latest/apireference/API_iot-jobs-data_UpdateJobExecution.html](https://docs.aws.amazon.com/iot/latest/apireference/API_iot-jobs-data_UpdateJobExecution.html).

------
#### [ CLI syntax ]

**Syntax:**

```
aws iot-jobs-data  update-job-execution \
--job-id <value> \
--thing-name <value> \
--status <value> \
[--status-details <value>] \
[--expected-version <value>] \
[--include-job-execution-state | --no-include-job-execution-state] \
[--include-job-document | --no-include-job-document] \
[--execution-number <value>]  \
[--cli-input-json <value>] \
[--step-timeout-in-minutes <value>] \
[--generate-cli-skeleton]
```

 `cli-input-json` format:

```
{
"jobId": "string",
"thingName": "string",
"status": "string",
"statusDetails": {
"string": "string"
},
"stepTimeoutInMinutes": number,
"expectedVersion": long,
"includeJobExecutionState": boolean,
"includeJobDocument": boolean,
"executionNumber": long
}
```

Weitere Informationen finden Sie unter [https://docs.aws.amazon.com/cli/latest/reference/iot-data/update-job-execution.html](https://docs.aws.amazon.com/cli/latest/reference/iot-data/update-job-execution.html).

------