

# cron을 사용하여 canary 실행 예약
<a name="CloudWatch_Synthetics_Canaries_cron"></a>

cron 표현식을 사용하면 canary 일정을 계획할 때 유연하게 설정할 수 있습니다. cron 표현식에는 다음 표에 나열된 순서대로 5개 또는 6개의 필드가 있습니다. 필드는 공백으로 구분됩니다. 구문은 canary를 생성하는 데 CloudWatch 콘솔을 사용하는지, AWS CLI 또는 AWS SDK를 사용하는지에 따라 달라집니다. 콘솔을 사용할 경우 처음 5개의 필드만 지정합니다. AWS CLI 또는 AWS SDK를 사용할 경우 6개 필드를 모두 지정하고 `Year` 필드에 `*`를 지정해야 합니다.


|  **필드**  |  **허용된 값**  |  **허용되는 특수 문자**  | 
| --- | --- | --- | 
|  분  |  0\$159  |  , - \$1 /  | 
|  시간  |  0\$123  |  , - \$1 /  | 
|  날짜  |  1\$131  |  , - \$1 ? / L W  | 
|  월  |  1-12 또는 JAN-DEC  |  , - \$1 /  | 
|  요일  |  1-7 또는 SUN-SAT  |  , - \$1 ? L \$1  | 
|  연도  |  \$1  |    | 

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

**제한 사항**
+ 같은 cron 표현식에서 '날짜' 및 '요일' 필드를 지정할 수 없습니다. 필드 중 하나에 값 또는 `*`(별표)를 지정하는 경우 다른 필드에는 **?**(물음표)를 사용해야 합니다.
+ 1분보다 빠른 속도로 이어지는 cron 표현식은 지원되지 않습니다.
+ 실행되기 전에 1년 넘게 기다리도록 canary를 설정할 수 없으므로 `Year` 필드에 `*`만 지정할 수 있습니다.

**예제**  
canary를 생성할 때 다음 샘플 cron 문자열을 참조할 수 있습니다. 다음 예는 AWS CLI 또는 AWS SDK를 사용하여 canary를 생성하거나 업데이트하기 위한 올바른 구문입니다. CloudWatch 콘솔을 사용하는 경우 각 예에서 마지막 `*`를 생략합니다.


| 표현식 | 의미 | 
| --- | --- | 
|   `0 10 * * ? *`   |  매일 오전 10시(UTC)에 실행  | 
|   `15 12 * * ? *`   |  매일 오후 12시 15분(UTC)에 실행  | 
|   `0 18 ? * MON-FRI *`   |  매주 월요일부터 금요일까지 오후 6시(UTC)에 실행  | 
|   `0 8 1 * ? *`   |  매월 1일 오전 8시(UTC)에 실행  | 
|   `0/10 * ? * MON-SAT *`   |  매주 월요일부터 토요일까지 10분마다 실행  | 
|   `0/5 8-17 ? * MON-FRI *`   |  월요일부터 금요일까지 오전 8시부터 오후 5시 55분(UTC) 사이에 5분마다 실행   | 