cron을 사용하여 canary 실행 예약 - Amazon CloudWatch

cron을 사용하여 canary 실행 예약

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

필드 허용된 값 허용되는 특수 문자

0~59

, - * /

시간

0~23

, - * /

날짜

1~31

, - * ? / L W

1-12 또는 JAN-DEC

, - * /

요일

1-7 또는 SUN-SAT

, - * ? L #

연도

*

특수 문자
  • ,(쉼표)를 사용하면 필드의 표현식에 여러 값을 포함할 수 있습니다. 예를 들어 Month 필드에서 JAN,FEB,MAR는 1월, 2월, 3월을 포함한다는 의미입니다.

  • -(대시) 특수 문자로 범위를 지정할 수 있습니다. 예컨대, Day 필드에서 1-15는 지정된 달의 1일에서 15일까지 포함한다는 의미입니다.

  • *(별표) 특수 문자로 필드에 모든 값을 포함할 수 있습니다. Hours 필드에서 *는 모든 시간을 포함한다는 의미입니다. 동일한 표현식의 Day-of-month 필드와 Day-of-week 필드 모두에 *를 사용할 수 없습니다. 필드 중 하나에 사용할 경우 다른 하나에는 반드시 ?를 사용해야 합니다.

  • /(슬래시)로 증분을 지정할 수 있습니다. Minutes 필드에 1/10을 입력하면 지정한 시간의 1분부터 시작해서 매 10분 간격을 지정할 수 있습니다(예: 11분, 21분, 31분 등).

  • ?(물음표)로 하나 또는 다른 하나를 지정할 수 있습니다. Day-of-month 필드에 7을 입력하면서 7일이 무슨 요일이든 상관없는 경우 Day-of-week 필드에 ?를 입력할 수 있습니다.

  • '날짜' 또는 '요일' 필드에서 L 와일드카드로 해당 월 또는 주의 마지막 날을 지정할 수 있습니다.

  • '날짜' 필드에서는 W 와일드카드로 어떤 한 평일을 지정할 수 있습니다. 예를 들어 '날짜' 필드에 3W를 입력하면 해당 월의 세 번째 평일에 가장 가까운 날을 지정할 수 있습니다.

  • '요일' 필드의 # 와일드카드는 그 달에 속한 정해진 요일의 특정 인스턴스를 지정합니다. 예를 들어 3#2는 그 달의 두 번째 화요일입니다. 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분마다 실행