

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

# 작업 및 작업 실행 상태
<a name="iot-jobs-lifecycle"></a>

다음 섹션에서는 AWS IoT 작업의 수명 주기와 작업 실행의 수명 주기에 대해 설명합니다.

## 작업 상태
<a name="iot-jobs-states"></a>

다음 다이어그램은 AWS IoT 작업의 다양한 상태를 보여줍니다.

![\[AWS IoT 작업의 다양한 상태를 보여주는 이미지입니다.\]](http://docs.aws.amazon.com/ko_kr/iot/latest/developerguide/images/job-states-diagram.png)


작업을 사용하여 생성하는 AWS IoT 작업은 다음 상태 중 하나일 수 있습니다.
+ 

**SCHEDULED**  
콘솔, [CreateJob](https://docs.aws.amazon.com/iot/latest/apireference/API_CreateJob.html) API 또는 [CreateJobTemplate](https://docs.aws.amazon.com/iot/latest/apireference/API_CreateJobTemplate.html) API를 AWS IoT 사용하여 초기 작업 또는 작업 템플릿을 생성하는 동안 AWS IoT 콘솔에서 또는 [CreateJob](https://docs.aws.amazon.com/iot/latest/apireference/API_CreateJob.html) API 또는 [CreateJobTemplate](https://docs.aws.amazon.com/iot/latest/apireference/API_CreateJobTemplate.html) API`SchedulingConfig`에서 선택적 예약 구성을 선택할 수 있습니다. 특정 `startTime`, `endTime` 및 `endBehavior`를 포함하는 예약된 작업을 시작하면 작업 상태가 `SCHEDULED`로 업데이트됩니다. 작업이 선택한 `startTime` 또는 다음 유지 관리 기간(유지 관리 기간에 작업 롤아웃을 선택한 경우)의 `startTime`에 도달하면 상태가 `SCHEDULED`에서 `IN_PROGRESS`로 전환되며 대상 그룹의 모든 디바이스에 대한 작업 문서 롤아웃이 시작됩니다.
+ 

**IN\$1PROGRESS**  
 AWS IoT 콘솔 또는 [CreateJob](https://docs.aws.amazon.com/iot/latest/apireference/API_CreateJob.html) API를 사용하여 작업을 생성하면 작업 상태가 로 업데이트됩니다`IN_PROGRESS`. 작업 생성 중에 AWS IoT 작업은 대상 그룹의 디바이스에 작업 실행을 롤아웃하기 시작합니다. 모든 작업 실행이 롤아웃된 후 AWS IoT 작업은 디바이스가 원격 작업을 완료할 때까지 기다립니다.

  진행 중인 작업에 적용되는 동시성 및 제한에 대한 자세한 정보는 [AWS IoT 작업 제한](job-limits.md) 섹션을 참조하세요.
**참고**  
`IN_PROGRESS` 작업이 현재 유지 관리 기간의 끝에 도달하면 작업 문서의 롤아웃이 중지됩니다. 작업은 다음 유지 관리 기간의 `startTime`까지 `SCHEDULED`로 업데이트됩니다.
+ 

**COMPLETED**  
연속 작업은 다음 방법 중 하나로 처리됩니다.
  + 선택적 스케줄링 구성을 선택하지 않은 연속 작업의 경우 작업이 항상 진행 중이며 대상 그룹에 추가된 새 디바이스에 대해 계속 실행됩니다.** `COMPLETED` 상태에 절대 도달하지 않습니다.
  + 선택적 예약 구성을 선택한 연속 작업의 경우 다음 설명이 참입니다.**
    + `endTime`이 *제공된* 경우 연속 작업은 `endTime`이 지나고 모든 작업 실행이 최종 상태에 도달하면 `COMPLETED` 상태가 됩니다.
    + 선택적 예약 구성에서 `endTime`이 *제공되지 않은* 경우 연속 작업은 작업 문서 롤아웃을 계속 수행합니다.

스냅샷 작업의 경우 모든 작업 실행이 `SUCCEEDED`, `FAILED`, `TIMED_OUT`, `REMOVED` 또는 `CANCELED`와 같은 최종 상태가 되면 작업 상태가 `COMPLETED`로 변경됩니다.
+ 

**CANCELED**  
 AWS IoT 콘솔, [CancelJob](https://docs.aws.amazon.com/iot/latest/apireference/API_CancelJob.html) API 또는를 사용하여 작업을 취소하면 [작업 중단 구성](jobs-configurations-details.md#job-abort-using)작업 상태가 로 변경됩니다`CANCELED`. 작업 취소 중에 AWS IoT 작업은 이전에 생성된 작업 실행을 취소하기 시작합니다.

  취소 중인 작업에 적용되는 동시성 및 제한에 대한 자세한 정보는 [AWS IoT 작업 제한](job-limits.md) 섹션을 참조하세요.
+ 

**DELETION\$1IN\$1PROGRESS**  
 AWS IoT 콘솔 또는 [DeleteJob](https://docs.aws.amazon.com/iot/latest/apireference/API_DeleteJob.html) API를 사용하여 작업을 삭제하면 작업 상태가 로 변경됩니다`DELETION_IN_PROGRESS`. 작업 삭제 중에 AWS IoT 작업은 이전에 생성된 작업 실행을 삭제하기 시작합니다. 모든 작업 실행이 삭제되면 AWS 계정에서 작업이 사라집니다.

## 작업 실행 상태
<a name="iot-job-execution-states"></a>

다음 표에는 AWS IoT 작업 실행의 다양한 상태와 상태 변경이 디바이스에 의해 시작되는지 아니면 AWS IoT 작업에 의해 시작되는지가 나와 있습니다.


**작업 실행 상태 및 소스**  

| 작업 실행 상태 | 디바이스에 의해 시작 |  AWS IoT 작업에 의해 시작되었나요? | 최종 상태 | 재시도 가능 | 
| --- | --- | --- | --- | --- | 
| QUEUED | 아니요 | 예 | 아니요 | 해당 사항 없음 | 
| IN\$1PROGRESS | 예 | 아니요 | 아니요 | 해당 사항 없음 | 
| SUCCEEDED | 예 | 아니요 | 예 | 해당 사항 없음 | 
| FAILED | 예 | 아니요 | 예 | 예 | 
| TIMED\$1OUT | 아니요 | 예 | 예 | 예 | 
| REJECTED | 예 | 아니요 | 예 | 아니요 | 
| REMOVED | 아니요 | 예 | 예 | 아니요 | 
| CANCELED | 아니요 | 예 | 예 | 아니요 | 

다음 섹션에서는 작업으로 작업을 생성할 때 롤아웃되는 작업 실행의 상태에 대해 자세히 설명합니다 AWS IoT .
+ 

**대기됨**  
 AWS IoT 작업이 대상 디바이스에 대한 작업 실행을 롤아웃하면 작업 실행 상태가 로 설정됩니다`QUEUED`. 작업 실행은 다음까지 `QUEUED` 상태로 유지됩니다.
  + 디바이스가 작업 실행을 수신하고 Jobs API 작업을 호출한 후 상태를 `IN_PROGRESS`로 보고합니다.
  + 사용자가 작업 또는 작업 실행을 취소하거나, 지정한 중단 조건이 충족되거나, 상태가 `CANCELED`로 변경됩니다.
  + 디바이스가 대상 그룹에서 제거되고 상태가 `REMOVED`로 변경됩니다.  
![\[대기 중인 작업 실행의 상태가 IN_PROGRESS로 변경되는 방식과 디바이스가 작업 생성 요청을 수락하지 않는 경우 작업이 어떻게 거부될 수 있는지를 보여주는 이미지입니다.\]](http://docs.aws.amazon.com/ko_kr/iot/latest/developerguide/images/JE-queued-inprogress.png)
+ 

**IN\$1PROGRESS**  
IoT 디바이스가 예약 [작업 주제](reserved-topics.md#reserved-topics-job) `$notify` 및를 구독`$notify-next`하고 디바이스가 상태`StartNextPendingJobExecution`인 API 또는 `UpdateJobExecution` API를 호출하는 경우 `IN_PROGRESS` AWS IoT 작업 실행 상태는 로 설정됩니다`IN_PROGRESS`.

  `UpdateJobExecution` API는 `IN_PROGRESS` 상태로 여러 번 호출될 수 있습니다. `statusDetails` 객체를 사용하여 실행 단계에 대한 추가 세부 정보를 지정할 수 있습니다.
**참고**  
각 디바이스에 대해 여러 작업을 생성하는 경우 AWS IoT 작업과 MQTT 프로토콜은 전송 순서를 보장하지 않습니다.
+ 

**SUCCEEDED**  
디바이스가 원격 작업을 성공적으로 완료하면 디바이스는 작업 실행이 성공했음을 나타내기 `SUCCEEDED` 위해 상태로 `UpdateJobExecution` API를 호출해야 합니다. 그러면 AWS IoT 작업은를 업데이트하고 작업 실행 상태를 로 반환합니다`SUCCEEDED`.  
![\[진행 중인 작업 실행이 실패할 수 있는 경우와 실행을 다시 시도하는 방법을 보여주는 이미지입니다.\]](http://docs.aws.amazon.com/ko_kr/iot/latest/developerguide/images/JE-success-path.png)
+ 

**FAILED**  
디바이스가 원격 작업을 완료하지 못하면 디바이스는 작업 실행이 실패했음을 `Failed` 나타내는 상태로 `UpdateJobExecution` API를 호출해야 합니다. 그러면 AWS IoT 작업은를 업데이트하고 작업 실행 상태를 로 반환합니다`Failed`. [작업 실행 재시도 구성](jobs-configurations-details.md#job-retry-configuration)을 사용하여 디바이스에 대해 이 작업 실행을 다시 시도할 수 있습니다.  
![\[진행 중인 작업 실행이 실패할 수 있는 경우와 실행을 다시 시도하는 방법을 보여주는 이미지입니다.\]](http://docs.aws.amazon.com/ko_kr/iot/latest/developerguide/images/JE-inprogress-failed.png)
+ 

**TIMED\$1OUT**  
상태가 인 경우 디바이스가 작업 단계를 완료하지 못`IN_PROGRESS`하거나 진행 중인 타이머의 제한 시간 내에 원격 작업을 완료하지 못하면 AWS IoT 작업은 작업 실행 상태를 로 설정합니다`TIMED_OUT`. 또한 진행 중인 작업의 각 작업 단계에 대한 단계 타이머가 있으며 작업 실행에만 적용됩니다. 이 진행 타이머 기간은 [작업 실행 시간 제한 구성](jobs-configurations-details.md#job-timeout-configuration)의 `inProgressTimeoutInMinutes` 속성을 사용하여 지정됩니다. [작업 실행 재시도 구성](jobs-configurations-details.md#job-retry-configuration)을 사용하여 디바이스에 대해 이 작업 실행을 다시 시도할 수 있습니다.  
![\[진행 중인 작업 실행이 어떻게 시간 초과될 수 있는지와 실행을 다시 시도하는 방법을 보여주는 이미지입니다.\]](http://docs.aws.amazon.com/ko_kr/iot/latest/developerguide/images/JE-inprogress-timedout.png)
+ 

**REJECTED**  
디바이스가 유효하지 않거나 호환되지 않는 요청을 수신하면 디바이스는 상태가 인 `UpdateJobExecution` API를 호출해야 합니다`REJECTED`. 그러면 AWS IoT 작업이 업데이트되고 작업 실행 상태가 로 반환됩니다`REJECTED`.
+ 

**REMOVED**  
디바이스가 동적 사물 그룹에서 분리된 경우와 같이 디바이스가 더 이상 작업 실행의 유효한 대상이 아닌 경우 AWS IoT Jobs는 작업 실행 상태를 `REMOVED`로 설정합니다. 대상 그룹에 사물을 다시 연결하고 디바이스에 대한 작업 실행을 다시 시작할 수 있습니다.
+ 

**CANCELED**  
콘솔이나 `CancelJob` 또는 `CancelJobExecution` API를 사용하여 작업을 취소하거나 작업 실행을 취소하거나를 사용하여 지정된 중단 기준이 [작업 중단 구성](jobs-configurations-details.md#job-abort-using) 충족되면 AWS IoT 작업은 작업을 취소하고 작업 실행 상태를 로 설정합니다`CANCELED`.