

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# AWS IoT 작업 API 작업
<a name="jobs-api"></a>

AWS IoT 작업 API는 다음 범주 중 하나에 사용할 수 있습니다.
+ 작업 관리 및 제어와 같은 관리 작업. 이것은 *제어 영역*입니다.
+ 이러한 작업을 수행하는 디바이스. 이것은 **데이터 영역으로, 데이터를 전송하고 수신하도록 허용합니다.

작업을 관리하고 제어할 때는 HTTPS 프로토콜 API를 사용합니다. 디바이스는 MQTT 또는 HTTPS 프로토콜 API 중에서 하나를 사용할 수 있습니다. 제어 영역 API는 일반적으로 작업을 생성하거나 추적할 때 적은 용량의 호출에 맞게 설계되었습니다. 그래서 단일 요청일 때 연결을 개시하고, 응답이 수신되면 연결을 종료합니다. 데이터 영역 HTTPS 및 MQTT API는 긴 폴링을 허용합니다. 이 API 작업들은 수백만 개의 디바이스까지 확장되는 대용량 트래픽에 맞게 설계되었습니다.

각 AWS IoT 작업 HTTPS API에는 AWS Command Line Interface ()에서 API를 호출할 수 있는 해당 명령이 있습니다AWS CLI. 이러한 명령들은 소문자이며, API 이름을 구성하는 단어들 사이에 하이픈(-)을 사용합니다. 예를 들어 CLI에서 다음과 같이 입력하면 `CreateJob` API를 호출할 수 있습니다.

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

작업 중 오류가 발생하면 오류에 대한 정보가 포함된 오류 응답을 받습니다.

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

 AWS IoT 작업 서비스 작업에서 발생한 오류에 대한 정보가 포함됩니다.

다음 예는 이 작업의 구문을 보여줍니다.

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

다음은 이 `ErrorResponse`에 대한 설명입니다.

`code`  
ErrorCode는 다음과 같이 설정할 수 있습니다.    
InvalidTopic  
요청이 API 작업에 매핑되지 않는 AWS IoT 작업 네임스페이스의 주제로 전송되었습니다.  
InvalidJson  
요청 내용이 유효한 UTF-8-인코딩 JSON으로 해석되지 않았습니다.  
InvalidRequest  
요청 내용이 잘못되었습니다. 예를 들어 `UpdateJobExecution` 요청에 잘못된 상태 세부 정보가 포함되어 있으면 이 코드가 반환됩니다. 메시지에는 오류에 대한 세부 정보가 포함됩니다.  
InvalidStateTransition  
업데이트가 작업 실행의 현재 상태 때문에 유효하지 않은 상태로 작업 실행을 변경하려고 했습니다. 예를 들어, SUCCEEDED 상태의 요청을 IN\$1PROGRESS로 변경하려고 합니다. 이때는 오류 메시지 본문에 `executionState` 필드도 포함됩니다.  
ResourceNotFound  
요청 주제에서 지정한 `JobExecution`이 존재하지 않습니다.  
VersionMismatch  
요청에 지정된 예상 버전이 작업 AWS IoT 서비스의 작업 실행 버전과 일치하지 않습니다. 이때는 오류 메시지 본문에 `executionState` 필드도 포함됩니다.  
InternalError  
요청을 처리하는 도중 내부 오류가 발생했습니다.  
RequestThrottled  
요청에 병목 현상이 발생했습니다.  
TerminalStateReached  
종료 상태의 작업에서 작업을 설명하는 명령을 실행했을 때 발생합니다.

`message`  
오류 메시지 문자열입니다.

`clientToken`  
요청과 응답의 연관성을 나타내는 임의 문자열입니다.

`timestamp`  
epoch 이후 경과 시간(초)입니다.

`executionState`  
[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) 객체입니다. 이 필드는 `code` 필드에 `InvalidStateTransition` 또는 `VersionMismatch` 값이 있을 때만 포함됩니다. 이 두 가지 경우에는 `DescribeJobExecution` 요청을 별도로 실행하여 현재 작업 실행 상태에 대한 데이터를 가져올 필요가 없습니다.

**Topics**
+ [작업 관리 및 제어 API 및 데이터 형식](jobs-management-control-api.md)
+ [작업 디바이스 MQTT API 및 HTTPS API 작업 및 데이터 형식](jobs-mqtt-https-api.md)