

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

# 작업 구성
<a name="jobs-configurations"></a>

지정된 대상에 배포하는 각 작업에 대해 다음과 같은 추가 구성을 지정할 수 있습니다.
+ **롤아웃**: 분당 작업 문서를 수신하는 디바이스 수를 정의합니다.
+ **예약**: 반복 유지 관리 기간을 사용하는 것 외에도 미래 날짜 및 시간에 작업을 예약합니다.
+ **중단**: 일부 디바이스가 작업 알림을 받지 못하거나 디바이스에서 작업 실행에 대한 실패를 보고하는 경우와 같은 사례에서 작업을 취소합니다.
+ **시간 제한(Timeout)**: 작업 실행이 시작된 후 일정 기간 내에 작업 대상에서 응답이 없는 경우 작업이 실패할 수 있습니다.
+ **재시도**: 디바이스가 작업 실행을 완료하려고 할 때 실패를 보고하거나 작업 실행 시간이 초과된 경우 작업 실행을 재시도합니다.

이러한 구성을 사용하여 작업 실행 상태를 모니터링하고 잘못된 업데이트가 전체 플릿으로 전송되는 것을 방지할 수 있습니다.

**Topics**
+ [작업 구성 작동 방식](jobs-configurations-details.md)
+ [추가 구성 지정](jobs-configurations-specify.md)

# 작업 구성 작동 방식
<a name="jobs-configurations-details"></a>

작업을 배포할 때 롤아웃 및 중단 구성을 사용하고 작업을 실행할 때 제한 시간 및 재시도 구성을 사용합니다. 다음 섹션은 이러한 구성의 작동 방식에 대한 자세한 정보를 보여줍니다.

**Topics**
+ [작업 롤아웃, 예약 및 중단 구성](#job-rollout-abort-scheduling)
+ [작업 실행 제한 시간 및 재시도 구성](#job-timeout-retry)

## 작업 롤아웃, 예약 및 중단 구성
<a name="job-rollout-abort-scheduling"></a>

작업 롤아웃, 예약, 중단 구성을 사용하여 작업 문서를 수신하는 디바이스 수를 정의하고, 작업 롤아웃을 예약하고, 작업을 취소하는 기준을 결정할 수 있습니다.

### 작업 롤아웃 구성
<a name="job-rollout-configuration"></a>

대상에게 대기 중인 작업 실행을 얼마나 빨리 알릴지 지정할 수 있습니다. 또한 단계별 롤아웃을 생성하여 업데이트, 재부팅 및 기타 작업을 효과적으로 관리할 수 있습니다. 대상에게 알릴 방법을 지정하려면 작업 롤아웃 속도를 사용합니다.

#### 작업 롤아웃 속도
<a name="job-rollout-using"></a>

상수 롤아웃 속도 또는 기하급수적인 롤아웃 속도를 사용하여 롤아웃 구성을 생성할 수 있습니다. 분당 알릴 최대 작업 대상 수를 지정하려면 상수 롤아웃 속도를 사용합니다.

AWS IoT 다양한 기준과 임계값이 충족되면 지수 롤아웃 비율을 사용하여 작업을 배포할 수 있습니다. 실패한 작업 수가 지정한 기준과 일치하면 작업 롤아웃을 취소할 수 있습니다. 작업을 생성할 때 [https://docs.aws.amazon.com/iot/latest/apireference/API_JobExecutionsRolloutConfig.html](https://docs.aws.amazon.com/iot/latest/apireference/API_JobExecutionsRolloutConfig.html) 객체를 사용하여 작업 롤아웃 속도 기준을 설정합니다. 또한 작업 생성 시 [https://docs.aws.amazon.com/iot/latest/apireference/API_AbortConfig.html](https://docs.aws.amazon.com/iot/latest/apireference/API_AbortConfig.html) 객체를 사용하여 작업 중단 기준을 설정합니다.

다음 예에서는 롤아웃 속도가 작동하는 방식을 보여줍니다. 분당 50개의 기본 속도, 증분 계수 2, 알림을 받고 성공한 분당 디바이스의 수 1,000을 사용하는 작업 롤아웃을 예로 들면, 작업은 분당 50개의 작업을 실행하는 속도로 시작되고 1000개의 사물이 작업 실행 알림을 수신하거나 1,000개의 성공적인 작업 실행이 발생할 때까지 해당 속도로 계속됩니다.

다음 표는 처음 4회의 증가에 걸쳐 롤아웃이 어떻게 진행되는지 보여줍니다.


|  |  |  |  |  | 
| --- |--- |--- |--- |--- |
|  분당 롤아웃 속도  |  50  |  100  |  200  |  400  | 
|  속도 증가를 충족하기 위한 알림을 받는 디바이스 또는 성공한 작업 실행의 수  |  1,000  |  2,000  |  3,000  |  4,000  | 

**참고**  
최대 동시 작업 제한인 500개 작업(`isConcurrent = True`)에 도달하면 모든 활성 작업은 `IN-PROGRESS` 상태로 유지되며 동시 작업 수가 499개 이하(`isConcurrent = False)`)가 될 때까지 새 작업 실행이 롤아웃되지 않습니다. 이는 스냅샷 작업과 연속 작업에 적용됩니다.  
`isConcurrent = True`인 경우 현재 작업이 대상 그룹의 모든 디바이스에 작업 실행을 롤아웃하는 중입니다. `isConcurrent = False`인 경우 이 작업은 대상 그룹의 모든 디바이스에 대한 모든 작업 실행 롤아웃을 완료한 것입니다. 대상 그룹의 모든 디바이스가 최종 상태에 도달하거나 대상 그룹의 임계값 백분율에 도달할 때(작업 중단 구성을 선택한 경우) 상태가 업데이트됩니다. `isConcurrent = True` 및 `isConcurrent = False`인 경우 작업 수준 상태는 모두 `IN_PROGRESS`입니다.  
활성 및 동시 작업 제한에 대한 자세한 내용은 [활성 및 동시 작업 제한](job-limits.md#job-limits-active-concurrent) 섹션을 참조하세요.

#### 동적 사물 그룹을 사용한 연속 작업의 작업 롤아웃 속도
<a name="job-rollout-dynamic-groups"></a>

연속 작업을 사용하여 플릿에서 원격 작업을 롤아웃하면 AWS IoT 작업에서는 대상 사물 그룹의 디바이스에 대한 작업 실행을 롤아웃합니다. 새 디바이스가 동적 사물 그룹에 추가되는 경우 이러한 작업 실행은 작업이 생성된 후에도 새로 추가된 디바이스로 계속 롤아웃됩니다.

롤아웃 구성은 작업을 만들 때까지 그룹에 추가된 디바이스에 대해서만 롤아웃 속도를 제어할 수 있습니다. 작업이 생성된 후 새 디바이스에 대해 디바이스가 대상 그룹에 조인하자마자 거의 실시간으로 작업 실행이 만들어집니다.

### 작업 예약 구성
<a name="job-scheduling"></a>

미리 결정된 시작 시간, 종료 시간 및 종료 동작(종료 시간에 도달할 때 각 작업 실행에 발생하는 일)을 사용하여 최대 1년 전에 연속 또는 스냅샷 작업을 예약할 수 있습니다. 또한 연속 작업의 빈도, 시작 시간 및 기간을 유연하게 조정할 수 있는 선택적 반복 유지 관리 기간을 만들어 대상 그룹 내의 모든 디바이스에 작업 문서를 롤아웃할 수 있습니다.

#### 작업 예약 구성
<a name="jobs-scheduling-without-maintenance-window"></a>

**시작 시간**

예약된 작업의 시작 시간은 작업이 대상 그룹의 모든 디바이스에 대한 작업 문서 롤아웃을 시작할 미래 날짜 및 시간입니다. 예약된 작업의 시작 시간은 연속 작업과 스냅샷 작업에 적용됩니다. 예약된 작업이 처음 생성되면 `SCHEDULED` 상태를 유지합니다. 선택한 `startTime`에 도달하면 `IN_PROGRESS`로 업데이트되고 작업 문서 롤아웃이 시작됩니다. `startTime`은 예약된 작업을 처음 생성한 날짜 및 시간으로부터 1년 이내여야 합니다.

API 명령 또는를 사용할 `startTime` 때의 구문에 대한 자세한 내용은 [타임스탬프](https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-parameters-types.html#parameter-type-timestamp)를 AWS CLI참조하세요.

일광 절약 시간(DST)을 준수하는 위치에서 반복되는 유지 관리 기간 중에 수행되는 선택적 예약 구성을 사용하는 작업의 경우 DST에서 표준 시간으로, 표준 시간에서 DST로 전환하면 시간이 1시간 변경됩니다.

**참고**  
에 표시되는 시간대는 현재 시스템 시간대 AWS Management Console 입니다. 그러나 이러한 시간대는 시스템에서 UTC로 변환됩니다.

**종료 시간**

예약된 작업의 종료 시간은 작업이 대상 그룹의 나머지 디바이스에 대한 작업 문서 롤아웃을 중지할 미래 날짜 및 시간입니다. 예약된 작업의 종료 시간은 연속 작업과 스냅샷 작업에 적용됩니다. 예약된 작업이 선택한 `endTime`에 도달하고 모든 작업 실행이 최종 상태에 도달하면 상태 상태가 `IN_PROGRESS`에서 `COMPLETED`로 업데이트됩니다. `endTime`은 예약된 작업을 처음 생성한 날짜 및 시간으로부터 2년 이내여야 합니다. `startTime`과 `endTime` 사이의 최소 기간은 30분입니다. 작업이 `endTime`에 도달할 때까지 작업 실행 재시도가 수행되며 `endBehavior`에 따라 이후 진행 방법이 결정됩니다.

API 명령 또는를 사용할 `endTime` 때의 구문에 대한 자세한 내용은 [타임스탬프](https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-parameters-types.html#parameter-type-timestamp)를 AWS CLI참조하세요.

일광 절약 시간(DST)을 준수하는 위치에서 반복되는 유지 관리 기간 중에 수행되는 선택적 예약 구성을 사용하는 작업의 경우 DST에서 표준 시간으로, 표준 시간에서 DST로 전환하면 시간이 1시간 변경됩니다.

**참고**  
에 표시되는 시간대는 현재 시스템 시간대 AWS Management Console 입니다. 그러나 이러한 시간대는 시스템에서 UTC로 변환됩니다.

**종료 동작**

예약된 작업의 종료 동작은 작업이 선택한 `endTime`에 도달할 때 해당 작업 및 완료되지 않은 모든 작업 실행에 발생하는 일을 결정합니다.

작업 또는 작업 템플릿을 생성할 때 선택할 수 있는 종료 동작은 다음과 같습니다.
+ `STOP_ROLLOUT`
  + `STOP_ROLLOUT`은 작업 대상 그룹의 나머지 모든 디바이스에 대한 작업 문서 롤아웃을 중지합니다. 또한 모든 `QUEUED` 및 `IN_PROGRESS` 작업 실행은 최종 상태에 도달할 때까지 계속됩니다. `CANCEL` 또는 `FORCE_CANCEL`을 선택하지 않는 한, 이것이 기본 종료 동작입니다.
+ `CANCEL`
  + `CANCEL`은 작업 대상 그룹의 나머지 모든 디바이스에 대한 작업 문서 롤아웃을 중지합니다. 또한 모든 `QUEUED` 작업 실행은 취소되지만 모든 `IN_PROGRESS` 작업 실행은 최종 상태에 도달할 때까지 계속됩니다.
+ `FORCE_CANCEL`
  + `FORCE_CANCEL`은 작업 대상 그룹의 나머지 모든 디바이스에 대한 작업 문서 롤아웃을 중지합니다. 또한 모든 `QUEUED` 및 `IN_PROGRESS` 작업 실행이 취소됩니다.

**참고**  
`endtime`을 선택하려면 `endbehavior` 하나를 선택해야 합니다.

**최대 기간**

예약된 작업의 최대 기간은 `startTime` 및 `endTime`에 관계없이 2년 이하여야 합니다.

다음 테이블은 예약된 작업의 일반적인 기간 시나리오입니다.


| **예약된 작업 예시 번호** | startTime**** | endTime**** | **최대 기간** | 
| --- | --- | --- | --- | 
|  1  |  최초 작업 생성 직후  |  최초 작업 생성 1년 후  |  1년  | 
|  2  |  최초 작업 생성 1개월 후  |  최초 작업 생성 13개월 후  |  1년  | 
|  3  |  최초 작업 생성 1년 후  |  최초 작업 생성 2년 후  |  1년  | 
|  4  |  최초 작업 생성 직후  |  최초 작업 생성 2년 후  |  2년  | 

#### 반복 유지 관리 기간
<a name="jobs-scheduling-maintenance-window"></a>

유지 관리 기간은의 예약 구성 내에서 AWS Management Console , 그리고 `CreateJob` 및 `CreateJobTemplate` API `SchedulingConfig` 내에서 선택적 구성입니다. APIs 미리 정해진 시작 시간, 기간 및 유지 관리 기간이 발생하는 빈도(매일, 매주 또는 매월)로 반복 유지 관리 기간을 설정할 수 있습니다. 유지 관리 기간은 연속 작업에만 적용됩니다. 반복 유지 관리 기간의 최대 기간은 23시간 50분입니다.

다음 다이어그램은 선택적으로 유지 관리 기간이 적용된 다양한 예약된 작업 시나리오의 작업 상태를 보여줍니다.

![\[특정 이벤트에서 SCHEDULED, IN_PROGRESS, CANCELLED 및 DELETION_IN_PROGRESS 상태를 통해 진행되는 연속 작업의 수명 주기를 보여주는 다이어그램입니다.\]](http://docs.aws.amazon.com/ko_kr/iot/latest/developerguide/images/job-states-diagram-scheduled-maintenance-window.png)


작업 상태에 대한 자세한 내용은 [작업 및 작업 실행 상태](iot-jobs-lifecycle.md) 섹션을 참조하세요.

**참고**  
유지 관리 기간 중에 작업이 `endTime`에 도달하면 `IN_PROGRESS`에서 `COMPLETED`로 업데이트됩니다. 또한 나머지 모든 작업 실행은 작업의 `endBehavior`에 따라 실행됩니다.

**Cron 표현식**

사용자 지정 빈도를 사용하여 유지 관리 기간 중에 작업 문서를 롤아웃하는 예약된 작업의 경우 사용자 지정 빈도는 cron 표현식을 사용하여 입력됩니다. Cron 표현식에는 각각 공백으로 구분되는 필수 필드 6개가 있습니다.

**구문**

```
cron(fields)
```


| **필드** | **값** | **와일드카드** | 
| --- | --- | --- | 
|  Minutes  |  0\$159  |  , - \$1 /  | 
|  시간  |  0\$123  |  , - \$1 /  | 
|  날짜  |  1\$131  |  , - \$1 ? / L W  | 
|  월  |  1-12 또는 JAN-DEC  |  , - \$1 /  | 
|  요일  |  1-7 또는 SUN-SAT  |  , - \$1 ? L \$1  | 
|  연도  |  1970\$12199  |  , - \$1 /  | 

**와일드카드**
+ **,**(쉼표) 와일드카드는 추가 값을 포함합니다. 예컨대, Month 필드에서 JAN, FEB, MAR은 1월, 2월, 3월을 포함한다는 의미입니다.
+ **-**(대시) 와일드카드는 범위를 지정합니다. 예컨대, Day 필드에서 1-15는 지정된 달의 1일에서 15일까지 포함한다는 의미입니다.
+ **\$1**(별표) 와일드카드는 필드의 모든 값을 포함합니다. '시간' 필드에서 **\$1**는 모든 시간을 포함한다는 의미입니다. '일' 및 '요일' 필드 모두에서 **\$1**를 사용할 수 없습니다. 필드 중 하나에 사용할 경우 다른 하나에는 반드시 **?**를 사용해야 합니다.
+ **/**(슬래시) 와일드카드로 증분을 지정합니다. 예를 들어, '분' 필드에 1/10을 입력하면 지정한 시간의 1분부터 시작해서 매 10분 간격을 지정할 수 있습니다(즉, 11분, 21분, 31분 등).
+ **?**(물음표) 와일드카드는 어떤 한 가지나 다른 것을 지정합니다. '일' 필드에 **7**을 입력하고 '요일' 필드에는 **?**을 입력하면 매월 7일이 무슨 요일이든 상관없이 7번째 되는 날을 지정한다는 의미입니다.
+ '날짜' 또는 '요일' 필드에서 **L** 와일드카드로 해당 월 또는 주의 마지막 날을 지정할 수 있습니다.
+ '날짜' 필드에서는 **W** 와일드카드로 어떤 한 평일을 지정할 수 있습니다. 예를 들어 '날짜' 필드에 **3W**를 입력하면 해당 월의 세 번째 평일에 가장 가까운 날을 지정할 수 있습니다.
+ '요일' 필드의 **\$1** 와일드카드는 그 달에 속한 정해진 요일의 특정 인스턴스를 지정합니다. 예를 들어, 3\$12는 그 달의 두 번째 화요일입니다. 3은 각 주의 셋째 날이므로 화요일을 나타내고 2는 그 달의 두 번째 해당 요일입니다.
**참고**  
'\$1' 문자를 사용하는 경우 요일(day-of-week) 필드에 하나의 표현식만 정의할 수 있습니다. 예를 들어 `"3#1,6#3"`은 두 개의 표현식으로 해석되기 때문에 유효하지 않습니다.

**제한 사항**
+ 같은 cron 표현식에서 '날짜' 및 '요일' 필드를 지정할 수 없습니다. 이들 필드 중 하나에 값(또는 \$1)을 지정하는 경우에는 다른 필드에서 반드시 **?**를 사용해야 합니다.

**예시**

반복 유지 관리 기간의 `startTime`에 cron 표현식을 사용할 때는 다음 샘플 cron 문자열을 참조하세요.


| **분** | **시간** | **일** | **월** | **요일** | **연도** | **의미** | 
| --- | --- | --- | --- | --- | --- | --- | 
| 0 | 10 | \$1 | \$1 | ? | \$1 |  매일 오전 10시(UTC)에 실행  | 
| 15 | 12 | \$1 | \$1 | ? | \$1 |  매일 오후 12시 15분(UTC)에 실행  | 
| 0 | 18 | ? | \$1 | 월-금 | \$1 |  매주 월요일부터 금요일까지 오후 6시(UTC)에 실행  | 
| 0 | 8 | 1 | \$1 | ? | \$1 |  매월 1일 오전 8시(UTC)에 실행  | 

#### 반복 유지 관리 기간 종료 로직
<a name="jobs-scheduling-maintenance-window-end-behavoir"></a>

유지 관리 기간 중 작업 롤아웃이 현재 유지 관리 기간 종료 시점에 도달하면 다음과 같은 작업이 수행됩니다.
+ 작업은 대상 그룹의 나머지 모든 디바이스에 대한 작업 문서 롤아웃을 중지합니다. 다음 유지 관리 기간의 `startTime`에 재개됩니다.
+ 상태가 `QUEUED`인 모든 작업 실행은 다음 유지 관리 기간의 `startTime`까지 `QUEUED` 상태로 유지됩니다. 다음 기간에는 디바이스가 작업 문서에 지정된 작업을 수행할 준비가 되었을 때 `IN_PROGRESS`로 전환할 수 있습니다.
+ 상태가 `IN_PROGRESS`인 모든 작업 실행은 최종 상태에 도달할 때까지 작업 문서에 지정된 작업을 계속 수행합니다. `JobExecutionsRetryConfig`에 지정된 대로 모든 재시도는 다음 유지 관리 기간의 `startTime`에 이루어집니다.

### 작업 중단 구성
<a name="job-abort-using"></a>

이 구성을 사용하여 디바이스의 임계값 비율이 해당 기준을 충족할 때 작업을 취소하는 기준을 생성할 수 있습니다. 예를 들어, 이 구성을 사용하여 다음과 같은 경우 작업을 취소할 수 있습니다.
+ 임계값 비율의 디바이스가 작업 실행 알림을 받지 못하는 경우(예: 디바이스가 무선 업데이트(OTA)와 호환되지 않는 경우). 이 경우 디바이스가 `REJECTED` 상태를 보고할 수 있습니다.
+ 임계값 비율의 디바이스가 작업 실행에 대해 실패를 보고하는 경우(예: Amazon S3 URL에서 작업 문서를 다운로드하려고 할 때 디바이스 연결이 끊어지는 경우). 이와 같은 경우 디바이스는 `FAILURE` 상태를 AWS IoT에 보고하도록 프로그래밍되어야 합니다.
+ 작업 실행이 시작된 후 임계값 비율의 디바이스에 대해 작업 실행이 시간 초과되어 `TIMED_OUT` 상태가 보고되는 경우.
+ 재시도 실패가 여러 번 있는 경우. 재시도 구성을 추가하는 경우 각 재시도가 AWS 계정에 추가 요금을 발생시킬 수 있습니다. 이와 같은 경우 작업을 취소하면 대기열에 있는 작업 실행을 취소하고 이러한 실행에 대한 재시도를 방지할 수 있습니다. 재시도 구성 및 이 구성을 중단 구성과 함께 사용하는 것에 대한 자세한 내용은 [작업 실행 제한 시간 및 재시도 구성](#job-timeout-retry) 섹션을 참조하세요.

 AWS IoT 콘솔 또는 작업 API를 사용하여 AWS IoT 작업 중단 조건을 설정할 수 있습니다.

## 작업 실행 제한 시간 및 재시도 구성
<a name="job-timeout-retry"></a>

작업 실행 제한 시간 구성을 사용하면 작업 실행이 설정된 기간보다 오래 진행되는 경우 [작업 알림](jobs-comm-notifications.md)을 전송할 수 있습니다. 작업 실행 재시도 구성을 사용하면 작업이 실패하거나 시간 초과되는 경우 실행을 재시도할 수 있습니다.

### 작업 실행 시간 제한 구성
<a name="job-timeout-configuration"></a>

작업 실행 시간 제한 구성을 사용하면 작업 실행이 예상치 않게 장시간 동안 `IN_PROGRESS` 상태에 멈출 때마다 알림을 받을 수 있습니다. 작업이 `IN_PROGRESS` 상태이면 작업 실행의 진행 상황을 모니터링할 수 있습니다.

#### 작업 시간 제한 타이머
<a name="job-timeout-timers"></a>

타이머에는 진행 중 타이머와 단계 타이머 두 가지 유형이 있습니다.

**진행 중 타이머**  
작업 또는 작업 템플릿을 생성할 때 진행 중 타이머에 1분에서 7일 사이의 값을 지정할 수 있습니다. 작업 실행 전에는 이 타이머의 값을 업데이트할 수 있습니다. 타이머가 시작된 후에는 업데이트할 수 없으며 타이머 값은 해당 작업의 모든 작업 실행에 적용됩니다. 작업 실행이이 간격보다 오래 `IN_PROGRESS` 상태를 유지할 때마다 작업 실행이 실패하고 터미널 `TIMED_OUT` 상태로 전환됩니다. AWS IoT 또한는 MQTT 알림을 게시합니다.

**단계 타이머**  
업데이트하려는 작업 실행에만 적용되는 단계 타이머를 설정할 수도 있습니다. 이 타이머는 진행 중 타이머에는 영향을 주지 않습니다. 작업 실행을 업데이트할 때마다 이 타이머에 대해 새 값을 설정할 수 있습니다. 사물에 대해 대기 중인 다음 작업 실행을 시작할 때 새 단계 타이머를 생성할 수도 있습니다. 작업 실행이 단계 타이머 간격보다 오랫동안 `IN_PROGRESS` 상태를 유지하는 경우, 해당 작업 실행은 실패하며 터미널 상태인 `TIMED_OUT`으로 전환됩니다.

**참고**  
 AWS IoT 콘솔 또는 AWS IoT 작업 API를 사용하여 진행 중인 타이머를 설정할 수 있습니다. 단계 타이머를 지정하려면 API를 사용합니다.

#### 작업 시간 제한에 대해 타이머가 작동하는 방식
<a name="job-timeout-timers-works"></a>

다음은 20분 시간 제한 기간 동안 진행 중 시간 제한과 단계 시간 제한이 서로 상호 작용하는 방식을 설명합니다.

![\[진행 중인 타이머가 20분이고 중첩된 단계 타이머가 7, 5, 8분인 타임라인입니다.\]](http://docs.aws.amazon.com/ko_kr/iot/latest/developerguide/images/timeout-diagram.png)


다음은 여러 단계를 보여줍니다.

1. 

**12:00**  
새 작업이 생성되고 작업을 생성할 때 20분 동안 진행 중 타이머가 시작됩니다. 진행 중 타이머가 실행되기 시작하고 작업 실행은 `IN_PROGRESS` 상태로 전환됩니다.

1. 

**12:05 PM**  
7분 값으로 새 단계 타이머가 생성됩니다. 이제 작업 실행이 오후 12시 12분에 시간 초과됩니다.

1. 

**12:10 PM**  
5분 값으로 새 단계 타이머가 생성됩니다. 새 단계 타이머가 생성되면 이전 단계 타이머가 삭제되고 이제 작업 실행은 오후 12시 15분에 시간 초과됩니다.

1. 

**12:13 PM**  
9분 값으로 새 단계 타이머가 생성됩니다. 이전 단계 타이머가 삭제되고 이제 작업 실행은 진행 중 타이머가 오후 12시 20분에 시간 초과되므로 오후 12시 20분에 시간 초과됩니다. 단계 타이머는 진행 중 타이머의 절대 한계를 초과할 수 없습니다.

### 작업 실행 재시도 구성
<a name="job-retry-configuration"></a>

재시도 구성을 사용하여 특정 조건 집합이 충족될 때 작업 실행을 재시도할 수 있습니다. 작업이 시간 초과되거나 디바이스가 실패할 때 재시도를 시도할 수 있습니다. 시간 제한 실패로 인해 실행을 재시도하려면 시간 제한 구성을 사용하도록 설정해야 합니다.

**재시도 구성 사용 방법**  
다음 단계에 따라 구성을 재시도합니다.

1. `FAILED`, `TIMED_OUT` 또는 두 실패 기준 모두에 대해 재시도 구성을 사용할지 여부를 결정합니다. `TIMED_OUT` 상태의 경우 상태가 보고되면 AWS IoT 작업에서 디바이스에 대한 작업 실행을 자동으로 재시도합니다.

1. `FAILED` 상태의 경우 작업 실행 실패를 재시도할 수 있는지 확인합니다. 재시도 가능한 경우 디바이스를 `FAILURE` 상태를 AWS IoT에 보고하도록 프로그래밍합니다. 다음 섹션에서는 재시도 가능한 실패와 재시도 불가능한 실패에 대해 자세히 설명합니다.

1. 앞의 정보를 사용하여 각 실패 유형에 사용할 재시도 횟수를 지정합니다. 단일 디바이스의 경우 두 실패 유형을 모두 합하여 최대 10회의 재시도를 지정할 수 있습니다. 재시도는 실행이 성공하거나 지정된 시도 횟수에 도달하면 자동으로 중지됩니다.

1. 반복적으로 재시도가 실패하는 경우 많은 재시도 횟수로 인해 추가 요금이 발생하지 않도록 작업을 취소하려면 중단 구성을 추가합니다.

**참고**  
작업이 반복 유지 관리 기간 종료에 도달하면 모든 `IN_PROGRESS` 작업 실행은 최종 상태에 도달할 때까지 작업 문서에 명시된 작업을 계속 수행합니다. 작업 실행이 최종 상태인 `FAILED` 또는 유지 관리 기간을 벗어난 `TIMED_OUT` 상태에 도달하면 시도 횟수가 모두 소진되지 않았으면 다음 기간에 재시도가 이루어집니다. 다음 유지 관리 기간의 `startTime`에 새 작업 실행이 생성되고 디바이스를 시작할 준비가 될 때까지 `QUEUED`의 상태가 됩니다.

**재시도 및 중단 구성**  
재시도할 때마다에 추가 요금이 발생합니다 AWS 계정. 반복적인 재시도 실패로 인한 추가 요금이 발생하지 않도록 하려면 중단 구성을 추가하는 것이 좋습니다. 요금에 대한 자세한 내용은 [AWS IoT Device Management 요금](https://aws.amazon.com/iot-device-management/pricing/)을 참조하세요.

높은 임계값 비율의 디바이스가 시간 초과되거나 실패를 보고하는 경우 재시도 실패 여러 번 발생할 수 있습니다. 이 경우 중단 구성을 사용하여 작업을 취소하고 대기열에 있는 모든 작업 실행이나 추가적인 재시도를 방지할 수 있습니다.

**참고**  
작업 실행을 취소하기 위한 중단 기준이 충족되는 경우 `QUEUED` 작업 실행만 취소됩니다. 대기열에 있는 디바이스에 대한 재시도는 시도되지 않습니다. 그러나 `IN_PROGRESS` 상태인 현재 작업 실행은 취소되지 않습니다.

또한 실패한 작업 실행을 재시도하기 전에 다음 섹션에 설명된 대로 작업 실행 실패가 재시도 가능한지 여부를 확인하는 것이 좋습니다.

**`FAILED` 실패 유형에 대한 재시도**  
`FAILED` 실패 유형에 대한 재시도를 시도하려면 디바이스를 실패한 작업 실행에 대한 `FAILURE` 상태를 AWS IoT에 보고하도록 프로그래밍해야 합니다. `FAILED` 작업 실행을 재시도하는 기준으로 재시도 구성을 설정하고 수행할 재시도 횟수를 지정해야 합니다. AWS IoT 작업이 `FAILURE` 상태를 감지하면 디바이스에 대한 작업 실행을 자동으로 재시도합니다. 재시도는 작업 실행이 성공하거나 최대 재시도 횟수에 도달할 때까지 계속됩니다.

각 재시도 및 이러한 디바이스에서 실행 중인 작업을 추적할 수 있습니다. 실행 상태를 추적하여 지정된 횟수의 재시도가 시도된 후 디바이스를 사용하여 실패를 보고하고 다른 재시도를 초기화할 수 있습니다.

**재시도 가능한 실패와 재시도 불가능한 실패**  
작업 실행 실패는 재시도 가능하거나 재시도 불가능할 수 있습니다. 각 재시도 시 AWS 계정에 요금이 부과될 수 있습니다. 여러 번의 재시도로 인해 추가 요금이 발생하지 않도록 하려면 먼저 작업 실행 실패가 재시도 가능한지 여부를 확인하는 것이 좋습니다. 재시도 가능한 실패의 예로는 Amazon S3 URL에서 작업 문서를 다운로드하려고 시도하는 동안 디바이스에서 발생하는 연결 오류가 있습니다. 작업 실행 실패가 재시도 가능하면 작업 실행이 실패한 경우 `FAILURE` 상태를 보고하도록 디바이스를 프로그래밍합니다. 그런 다음 `FAILED` 실행을 재시도하도록 재시도 구성을 설정합니다.

실행을 재시도할 수 없는 경우 재시도하거나 계정에 추가 요금이 부과될 가능성이 없도록 `REJECTED` 상태를 AWS IoT에 보고하도록 디바이스를 프로그래밍하는 것이 좋습니다. 재시도 불가능한 실패의 예로는 디바이스가 작업 업데이트 수신과 호환되지 않는 경우 또는 작업을 실행하는 동안 메모리 오류가 발생하는 경우를 들 수 있습니다. 이러한 경우 AWS IoT 작업은 `FAILED` 또는 `TIMED_OUT` 상태를 감지할 때만 작업 실행을 재시도하기 때문에 작업 실행을 재시도하지 않습니다.

작업 실행 실패가 재시도 가능하다고 확인된 후에도 재시도가 여전히 실패할 경우 디바이스 로그를 확인하는 것이 좋습니다.

**참고**  
선택적 예약 구성이 있는 작업이 해당 `endTime`에 도달하면, `endBehavior`가 대상 그룹의 나머지 모든 디바이스에 대한 작업 문서 롤아웃을 중지하고 나머지 작업 실행을 진행하는 방법을 결정합니다. 재시도 구성을 통해 선택한 경우 재시도됩니다.

**`TIMEOUT` 실패 유형에 대한 재시도**  
작업을 생성할 때 제한 시간을 활성화하면 상태가에서 로 변경될 때 AWS IoT 작업이 디바이스에 대한 작업 실행을 다시 시도`IN_PROGRESS`합니다`TIMED_OUT`. 이 상태 변경은 진행 중 타이머가 시간 초과되거나 지정한 단계 타이머가 `IN_PROGRESS` 상태이다가 시간 초과될 경우 발생할 수 있습니다. 재시도는 작업 실행이 성공하거나 이 실패 유형에 대한 최대 재시도 횟수에 도달할 때까지 계속됩니다.

**연속 작업 및 사물 그룹 멤버십 업데이트**  
작업 상태가 `IN_PROGRESS`인 연속 작업의 경우 사물의 그룹 멤버십이 업데이트되면 재시도 횟수가 0으로 재설정됩니다. 예를 들어, 다섯 번의 재시도 횟수를 지정했고 세 번의 재시도가 이미 수행되었다고 가정해 보겠습니다. 이제 동적 사물 그룹의 경우와 같이 사물이 사물 그룹에서 제거되었다가 그룹에 다시 가입하면 재시도 횟수가 0으로 재설정됩니다. 이제 사물 그룹에 대해 남은 두 번의 시도 대신 다섯 번의 재시도를 수행할 수 있습니다. 또한 사물 그룹에서 사물이 제거되면 추가 재시도 시도가 취소됩니다.

# 추가 구성 지정
<a name="jobs-configurations-specify"></a>

작업 또는 작업 템플릿을 생성할 때 이러한 추가 구성을 지정할 수 있습니다. 다음은 이러한 구성을 지정할 수 있는 경우를 보여 줍니다.
+ 사용자 정의 작업 템플릿을 생성하는 경우. 템플릿에서 작업을 생성할 때 지정한 추가 구성 설정이 저장됩니다.
+ 작업 파일을 사용하여 사용자 정의 작업을 생성하는 경우. 작업 파일은 S3 버킷에 업로드되는 JSON 파일일 수 있습니다.
+ 사용자 정의 작업 템플릿을 사용하여 사용자 정의 작업을 생성하는 경우. 이미 템플릿에 이러한 설정이 지정된 경우 설정을 재사용하거나 새 구성 설정을 지정하여 재정의할 수 있습니다.
+  AWS 관리형 템플릿을 사용하여 사용자 지정 작업을 생성하는 경우.

**Topics**
+ [를 사용하여 작업 구성 지정 AWS Management Console](job-configurations-console.md)
+ [작업 API를 사용하여 AWS IoT 작업 구성 지정](job-configurations-api.md)

# 를 사용하여 작업 구성 지정 AWS Management Console
<a name="job-configurations-console"></a>

 AWS IoT 콘솔을 사용하여 작업에 대한 다양한 구성을 추가할 수 있습니다. 작업을 생성한 후 작업 세부 정보 페이지에서 작업 구성의 상태 세부 정보를 확인할 수 있습니다. 다양한 구성 및 구성 작동 방식에 대한 자세한 내용은 [작업 구성 작동 방식](jobs-configurations-details.md) 섹션을 참조하세요.

작업 또는 작업 템플릿을 생성할 때 작업 구성을 추가합니다.

**사용자 정의 작업 템플릿을 생성하는 경우**  
사용자 정의 작업 템플릿을 생성할 때 롤아웃 구성을 지정하려면

1. [AWS IoT 콘솔의 작업 템플릿 허브로](https://console.aws.amazon.com/iot/home#/jobtemplatehub) 이동하여 **작업 템플릿 생성을** 선택합니다.

1. 작업 템플릿 속성을 지정하고, 작업 문서를 제공하고, 추가할 구성을 확장한 다음 구성 파라미터를 지정합니다.

**사용자 정의 작업을 생성하는 경우**  
사용자 정의 작업을 생성할 때 롤아웃 구성을 지정하려면

1. [AWS IoT 콘솔의 작업 허브로](https://console.aws.amazon.com/iot/home#/jobhub) 이동하여 **작업 생성을** 선택합니다.

1. **사용자 정의 작업 생성(Create a custom job)**을 선택하고 작업 속성, 대상 및 작업 문서에 대해 작업 파일 또는 템플릿을 사용할지 여부를 지정합니다. 사용자 지정 템플릿 또는 AWS 관리형 템플릿을 사용할 수 있습니다.

1. 작업 구성을 선택한 다음 **롤아웃 구성(Rollout configuration)**을 확장하여 **상수 속도(Constant rate)**를 사용할지, 아니면 **지수 속도(Exponential rate)**를 사용할지를 지정합니다. 그런 다음 구성 파라미터를 지정합니다.

다음 섹션에서는 각 구성에 대해 지정할 수 있는 파라미터를 보여줍니다.

## 롤아웃 구성
<a name="job-rollout-console"></a>

상수 롤아웃 속도를 사용할지, 아니면 지수 속도를 사용할지를 지정할 수 있습니다.
+ 

**상수 롤아웃 속도 설정**  
작업 실행에 대해 상수 속도를 설정하려면 **상수 속도**를 선택한 다음 속도의 상한에 대한 **분당 최대**를 지정합니다. 이 값은 선택 사항이며 범위는 1\$11,000입니다. 이 값을 설정하지 않으면 1,000이 기본값으로 사용됩니다.
+ 

**기하급수적 롤아웃 속도 설정**  
기하급수적 속도를 설정하려면 **지수 속도(Exponential rate)**를 선택하고 다음 파라미터를 지정합니다.
  + 

**분당 기본 속도**  
**속도 증가 기준**에서 **알림을 받은 디바이스 수** 또는 **성공한 디바이스 수** 임계값이 충족될 때까지 작업이 실행되는 속도입니다.
  + 

**증분 계수**  
**속도 증가 기준(Rate increase criteria)**에서 **알림을 받는 디바이스 수(Number of notified devices)** 또는 **성공한 디바이스 수(Number of succeeded devices)** 임계값이 충족된 후 롤아웃 속도 증가에 사용되는 지수 인자입니다.
  + 

**속도 증가 기준**  
**알림을 받는 디바이스 수(Number of notified devices)** 또는 **성공한 디바이스 수(Number of succeeded devices)**에 대한 임계값입니다.

## 중단 구성
<a name="job-abort-console"></a>

**새 구성 추가(Add new configuration)**를 선택하고 각 구성에 대해 다음 파라미터를 지정합니다.
+ 

**실패 유형**  
작업 중단을 시작하는 실패 유형을 지정합니다. 여기에는 **FAILED**, **REJECTED**, **TIMED\$1OUT** 또는 **ALL**이 포함됩니다.
+ 

**증분 계수**  
작업 중단 기준이 충족되기 전에 발생해야 하는 완료된 작업 실행 수를 지정합니다.
+ 

**임계값 비율**  
작업 중단을 시작하는 실행된 총 사물 수를 지정합니다.

## 예약 구성
<a name="job-scheduling-console"></a>

각 작업을 처음 생성 시 바로 시작하거나 이후 날짜 및 시간에 시작되도록 예약하거나 반복 유지 관리 기간에 시작하도록 할수 있습니다.

**새 구성 추가(Add new configuration)**를 선택하고 각 구성에 대해 다음 파라미터를 지정합니다.
+ 

**Job start(작업 시작)**  
작업이 시작될 날짜와 시간을 지정합니다.
+ 

**반복 유지 관리 기간**  
반복 유지 관리 기간은 작업이 작업의 대상 디바이스에 작업 문서를 배포할 수 있는 특정 날짜 및 시간을 정의합니다. 유지 관리 기간은 매일, 매주, 매월 또는 사용자 지정 날짜 및 시간에 반복될 수 있습니다.
+ 

**Job end(작업 종료)**  
작업이 종료될 날짜와 시간을 지정합니다.
+ 

**Job end behavior(작업 종료 동작)**  
작업이 끝날 때 완료되지 않은 모든 작업 실행에 대한 종료 동작을 선택합니다.

**참고**  
선택적 예약 구성과 종료 시간이 있는 작업이 해당 종료 시간에 도달하면 대상 그룹의 나머지 모든 디바이스에 대한 롤아웃을 중지합니다. 또한 나머지 작업 실행을 진행하는 방법에 대해 선택한 종료 동작과 재시도 구성에 따른 재시도를 활용합니다.

## 제한 시간 구성
<a name="job-timeout-console"></a>

기본적으로 제한 시간이 없으며 작업 실행은 취소되거나 삭제됩니다. 제한 시간을 사용하려면 **제한 시간 활성화**를 선택하고 1분에서 7일 사이의 제한 시간 값을 지정합니다.

## 재시도 구성
<a name="job-retry-console"></a>

**참고**  
작업이 생성된 후에는 재시도 횟수를 업데이트할 수 없습니다. 모든 실패 유형에 대한 재시도 구성을 제거할 수만 있습니다. 작업을 생성할 때 구성에 사용할 적절한 재시도 횟수를 고려합니다. 잠재적인 재시도 실패로 인해 과도한 비용이 발생하지 않도록 하려면 중단 구성을 추가합니다.

**새 구성 추가(Add new configuration)**를 선택하고 각 구성에 대해 다음 파라미터를 지정합니다.
+ 

**실패 유형**  
작업 실행 재시도를 트리거해야 하는 실패 유형을 지정합니다. 여기에는 **실패(Failed)**, **제한 시간(Timeout)** 및 **모두(All)**가 포함됩니다.
+ 

**재시도 횟수**  
선택한 **실패 유형(Failure type)**에 대한 재시도 횟수를 지정합니다. 두 실패 유형을 합하여 최대 10번의 재시도를 시도할 수 있습니다.

# 작업 API를 사용하여 AWS IoT 작업 구성 지정
<a name="job-configurations-api"></a>

[CreateJob](https://docs.aws.amazon.com/iot/latest/apireference/API_CreateJob.html) 또는 [CreateJobTemplate](https://docs.aws.amazon.com/iot/latest/apireference/API_CreateJobTemplate.html) API를 사용하여 다양한 작업 구성을 지정할 수 있습니다. 다음 섹션에서는 이러한 구성을 추가하는 방법을 설명합니다. 구성을 추가한 후 [JobExecutionSummary](https://docs.aws.amazon.com/iot/latest/apireference/API_JobExecutionSummary.html) 및 [JobExecutionSummaryForJob](https://docs.aws.amazon.com/iot/latest/apireference/API_JobExecutionSummaryForJob.html)을 사용하여 상태를 볼 수 있습니다.

다양한 구성 및 구성 작동 방식에 대한 자세한 내용은 [작업 구성 작동 방식](jobs-configurations-details.md) 섹션을 참조하세요.

## 롤아웃 구성
<a name="job-rollout-api"></a>

롤아웃 구성에 대해 상수 롤아웃 속도 또는 기하급수적 롤아웃 속도를 지정할 수 있습니다.
+ 

**상수 롤아웃 속도 설정**  
상수 롤아웃 속도를 설정하려면 [https://docs.aws.amazon.com/iot/latest/apireference/API_JobExecutionsRolloutConfig.html](https://docs.aws.amazon.com/iot/latest/apireference/API_JobExecutionsRolloutConfig.html) 객체를 사용하여 `maximumPerMinute` 파라미터를 `CreateJob` 요청에 추가합니다. 이 파라미터는 작업 실행이 발생할 수 있는 속도의 상한을 지정합니다. 이 값은 선택 사항이며 범위는 1\$11,000입니다. 이 값을 설정하지 않으면 1,000이 기본값으로 사용됩니다.

  ```
      "jobExecutionsRolloutConfig": {
          "maximumPerMinute": 1000
      }
  ```
+ 

**기하급수적 롤아웃 속도 설정**  
가변 작업 롤아웃 속도를 설정하려면 [https://docs.aws.amazon.com/iot/latest/apireference/API_JobExecutionsRolloutConfig.html](https://docs.aws.amazon.com/iot/latest/apireference/API_JobExecutionsRolloutConfig.html) 객체를 사용합니다. `CreateJob` API 작업을 실행할 때 `ExponentialRolloutRate` 속성을 구성할 수 있습니다. 다음 예에서는 `exponentialRate` 파라미터를 사용하여 기하급수적 롤아웃 속도를 설정합니다. 파라미터에 대한 자세한 내용은 [https://docs.aws.amazon.com/iot/latest/apireference/API_ExponentialRolloutRate.html](https://docs.aws.amazon.com/iot/latest/apireference/API_ExponentialRolloutRate.html) 섹션을 참조하세요.

  ```
  {
  ...
    "jobExecutionsRolloutConfig": {
      "exponentialRate": {
        "baseRatePerMinute": 50,
        "incrementFactor": 2,
        "rateIncreaseCriteria": {
          "numberOfNotifiedThings": 1000,
          "numberOfSucceededThings": 1000
        },
        "maximumPerMinute": 1000
      }
    }
  ...
  }
  ```

여기서 파라미터는 다음과 같습니다.

**baseRatePerMinute**  
`numberOfNotifiedThings` 또는 `numberOfSucceededThings` 임계값이 충족될 때까지 작업이 실행되는 속도를 지정합니다.

**incrementFactor**  
`numberOfNotifiedThings` 또는 `numberOfSucceededThings` 임계값이 충족된 후 롤아웃 속도 증가의 기준이 되는 지수 인자를 지정합니다.

**rateIncreaseCriteria**  
`numberOfNotifiedThings` 또는 `numberOfSucceededThings` 임계값을 지정합니다.

## Abort configuration(중단 구성)
<a name="job-abort-api"></a>

API를 사용하여 이 구성을 추가하려면 [https://docs.aws.amazon.com/iot/latest/apireference/API_CreateJob.html](https://docs.aws.amazon.com/iot/latest/apireference/API_CreateJob.html) 또는 [https://docs.aws.amazon.com/iot/latest/apireference/API_CreateJobTemplate.html](https://docs.aws.amazon.com/iot/latest/apireference/API_CreateJobTemplate.html) API 작업을 실행할 때 [https://docs.aws.amazon.com/iot/latest/apireference/API_AbortConfig.html](https://docs.aws.amazon.com/iot/latest/apireference/API_AbortConfig.html) 파라미터를 지정합니다. 다음 예제에서는 `CreateJob` API 작업에 지정된 대로 여러 번의 실패한 실행이 발생한 작업 롤아웃에 대한 중단 구성을 보여줍니다.

**참고**  
작업 실행 삭제는 완료된 전체 실행의 계산 값에 영향을 미칩니다. 작업이 중단되면 서비스는 자동화된 `comment` 및 `reasonCode`을 생성해 사용자 주도 취소를 작업 중단 취소와 구분합니다.

```
   "abortConfig": { 
      "criteriaList": [ 
         { 
            "action": "CANCEL",
            "failureType": "FAILED",
            "minNumberOfExecutedThings": 100,
            "thresholdPercentage": 20
         },
         { 
            "action": "CANCEL",
            "failureType": "TIMED_OUT",
            "minNumberOfExecutedThings": 200,
            "thresholdPercentage": 50
         }
      ]
    }
```

여기서 파라미터는 다음과 같습니다.

**action**  
중단 기준 충족 시 취할 조치를 지정합니다. 이는 필수 파라미터로, `CANCEL`이 유일하게 유효한 값입니다.

**failureType**  
작업 중단을 시작해야 하는 실패 유형을 지정합니다. 유효한 값은 `FAILED`, `REJECTED`, `TIMED_OUT` 및 `ALL`입니다.

**minNumberOfExecutedThings**  
작업 중단 기준이 충족되기 전에 발생해야 하는 완료된 작업 실행 수를 지정합니다. 이 예제에서 AWS IoT 는 100개 이상의 디바이스에서 작업 실행을 완료할 때까지 작업 중단이 발생해야 하는지 확인하지 않습니다.

**thresholdPercentage**  
작업 중단을 시작할 수 있는 작업이 실행된 총 사물 수를 지정합니다. 이 예제에서는 순차적으로를 AWS IoT 확인하고 임계값 백분율이 충족되면 작업 중단을 시작합니다. 100번의 실행이 완료된 후 전체 실행의 20% 이상이 실패하는 경우 작업 롤아웃이 취소됩니다. 이 기준이 충족되지 않으면 AWS IoT 는 완료된 실행의 50% 이상이 200회 실행이 완료된 후 시간 초과되었는지 확인합니다. 이 경우 작업 롤아웃이 취소됩니다.

## Scheduling configuration(예약 구성)
<a name="job-scheduling-api"></a>

API를 사용하여 이 구성을 추가하려면 [https://docs.aws.amazon.com/iot/latest/apireference/API_CreateJob.html](https://docs.aws.amazon.com/iot/latest/apireference/API_CreateJob.html) 또는 [https://docs.aws.amazon.com/iot/latest/apireference/API_CreateJobTemplate.html](https://docs.aws.amazon.com/iot/latest/apireference/API_CreateJobTemplate.html) API 작업을 실행할 때 선택적 [https://docs.aws.amazon.com/iot/latest/apireference/API_SchedulingConfig.html](https://docs.aws.amazon.com/iot/latest/apireference/API_SchedulingConfig.html)를 지정합니다.

```
    "SchedulingConfig": { 
      "endBehavior": string
      "endTime": string
      "maintenanceWindows": string
      "startTime": string
   }
```

여기서 파라미터는 다음과 같습니다.

startTime****  
작업이 시작될 날짜와 시간을 지정합니다.

**endTime**  
작업이 종료될 날짜와 시간을 지정합니다.

**maintenanceWindows**  
작업 문서를 대상 그룹의 모든 디바이스에 롤아웃하기 위해 예약된 작업에 대해 선택적 유지 관리 기간을 선택했는지를 지정합니다. `maintenanceWindow`의 문자열 형식은 날짜의 경우 YYYYY/MM/DD이고 시간의 경우 hh:mm입니다.

**endBehavior**  
`endTime`에 도달할 때 예약된 작업의 작업 동작을 지정합니다.

**참고**  
작업에 대한 선택적 `SchedulingConfig`는 [https://docs.aws.amazon.com/iot/latest/apireference/API_DescribeJob.html](https://docs.aws.amazon.com/iot/latest/apireference/API_DescribeJob.html) 및 [https://docs.aws.amazon.com/iot/latest/apireference/API_DescribeJobTemplate.html](https://docs.aws.amazon.com/iot/latest/apireference/API_DescribeJobTemplate.html) API에서 볼 수 있습니다.

## 제한 시간 구성
<a name="job-timeout-api"></a>

API를 사용하여 이 구성을 추가하려면 [https://docs.aws.amazon.com/iot/latest/apireference/API_CreateJob.html](https://docs.aws.amazon.com/iot/latest/apireference/API_CreateJob.html) 또는 [https://docs.aws.amazon.com/iot/latest/apireference/API_CreateJobTemplate.html](https://docs.aws.amazon.com/iot/latest/apireference/API_CreateJobTemplate.html) API 작업을 실행할 때 [https://docs.aws.amazon.com/iot/latest/apireference/API_TimeoutConfig.html](https://docs.aws.amazon.com/iot/latest/apireference/API_TimeoutConfig.html) 파라미터를 지정합니다.

제한 시간 구성을 사용하려면

1. 작업 또는 작업 템플릿을 생성할 때 진행 중 타이머를 설정하려면 선택 사항인 [TimeoutConfig](https://docs.aws.amazon.com//iot/latest/apireference/API_TimeoutConfig.html) 객체의 `inProgressTimeoutInMinutes` 속성에 값을 설정합니다.

   ```
       "timeoutConfig": { 
         "inProgressTimeoutInMinutes": number
      }
   ```

1. 작업 실행을 위한 단계 타이머를 지정하려면 [UpdateJobExecution](https://docs.aws.amazon.com//iot/latest/apireference/API_iot-jobs-data_UpdateJobExecution.html)을 호출할 때 `stepTimeoutInMinutes`에 값을 설정합니다. 단계 타이머는 업데이트하는 작업 실행에만 적용됩니다. 작업 실행을 업데이트할 때마다 이 타이머에 대해 새 값을 설정할 수 있습니다.
**참고**  
`UpdateJobExecution`은 -1 값으로 새 단계 타이머를 생성함으로써 이미 생성된 단계 타이머를 폐기할 수 없습니다.

   ```
   {
      ... 
       "statusDetails": { 
         "string" : "string" 
      },
      "stepTimeoutInMinutes": number
   }
   ```

1. 새 단계 타이머를 생성하려면 [StartNextPendingJobExecution](https://docs.aws.amazon.com//iot/latest/apireference/API_iot-jobs-data_StartNextPendingJobExecution.html) API 작업을 호출할 수도 있습니다.

## 재시도 구성
<a name="job-retry-api"></a>

**참고**  
작업을 생성할 때 구성에 사용할 적절한 재시도 횟수를 고려합니다. 잠재적인 재시도 실패로 인해 과도한 비용이 발생하지 않도록 하려면 중단 구성을 추가합니다. 작업이 생성된 후에는 재시도 횟수를 업데이트할 수 없습니다. [UpdateJob](https://docs.aws.amazon.com/iot/latest/apireference/API_UpdateJob.html) API 작업을 사용하여 재시도 횟수를 0으로만 설정할 수 있습니다.

API를 사용하여 이 구성을 추가하려면 [https://docs.aws.amazon.com/iot/latest/apireference/API_CreateJob.html](https://docs.aws.amazon.com/iot/latest/apireference/API_CreateJob.html) 또는 [https://docs.aws.amazon.com/iot/latest/apireference/API_CreateJobTemplate.html](https://docs.aws.amazon.com/iot/latest/apireference/API_CreateJobTemplate.html) API 작업을 실행할 때 [https://docs.aws.amazon.com/iot/latest/apireference/API_jobExecutionsRetryConfig.html](https://docs.aws.amazon.com/iot/latest/apireference/API_jobExecutionsRetryConfig.html) 파라미터를 지정합니다.

```
{
...
  "jobExecutionsRetryConfig": { 
      "criteriaList": [ 
         { 
            "failureType": "string",
            "numberOfRetries": number
         }
      ]
  }
...
}
```

여기서 **criteriaList**는 작업의 각 실패 유형에 대해 허용되는 재시도 횟수를 결정하는 기준 목록을 지정하는 배열입니다.