규칙에 대한 예약 표현식 - Amazon CloudWatch 이벤트

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

규칙에 대한 예약 표현식

참고

Amazon EventBridge is the preferred way to manage your events. CloudWatch 이벤트 and EventBridge are the same underlying service and API, but EventBridge provides more features. Changes you make in either CloudWatch or EventBridge will appear in each console. For more information, see Amazon EventBridge.

cron 또는 rate 표현식을 사용하여 CloudWatch 이벤트에서 자동 일정에 따라 자체 트리거되는 규칙을 생성할 수 있습니다. 예약된 모든 이벤트는 UTC 시간대를 사용하며 예약의 최소 단위는 1분입니다.

CloudWatch 이벤트는 cron 표현식과 rate 표현식을 지원합니다. rate 표현식은 정의하기가 더 간단하지만 cron 표현식이 지원하는 세분화된 일정 관리는 제공하지 않습니다. 예를 들어, cron 표현식을 사용하여 매주 또는 매월 특정 요일의 지정된 시간에 트리거되는 규칙을 정의할 수 있습니다. 반대로 rate 표현식은 매 시간 한 번 또는 매일 한 번과 같이 정기적으로 규칙을 트리거합니다.

참고

CloudWatch 이벤트는 일정 표현식에 초 단위의 정밀성을 제공하지 않습니다. Cron 표현식을 사용해 가장 정밀하게 설정할 수 있는 단위가 1분입니다. CloudWatch 이벤트와 대상 서비스가 분산되어 있기 때문에 예약된 규칙이 트리거 되는 시간과 대상 서비스가 대상 리소스 실행을 인식하는 시간 간에는 몇 초의 지연이 있을 수 있습니다. 예약된 규칙은 지정한 시간(분) 이내에 트리거되지만 정확한 초 단위로 트리거되지는 않습니다.

cron 표현식

cron 표현식에는 각각 공백으로 구분되는 필수 필드 6개가 있습니다.

구문

cron(fields)
필드 와일드카드

0~59

, - * /

시간

0~23

, - * /

1~31

, - * ? / L W

1-12 또는 JAN-DEC

, - * /

요일

1-7 또는 SUN-SAT

, - * ? L #

연도

1970~2199

, - * /

와일드카드

  • ,(쉼표) 와일드카드에는 추가 값이 포함되어 있습니다. 예를 들어, '월' 필드에서 JAN, FEB, MAR은 1월, 2월, 3월을 포함한다는 의미입니다.

  • -(대시) 와일드카드로 범위를 지정할 수 있습니다. 예를 들어, '일' 필드에서 1-15는 지정된 달의 1일에서 15일까지 포함한다는 의미입니다.

  • *(별표) 와일드카드로 필드에 모든 값을 포함할 수 있습니다. '시간' 필드에서 *는 모든 시간을 포함한다는 의미입니다. '일' 및 '요일' 필드 모두에서 *를 사용할 수 없습니다. 필드 중 하나에 사용할 경우 다른 하나에는 반드시 ?를 사용해야 합니다.

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

  • ?(물음표) 와일드카드로 어떤 한 가지나 다른 것을 지정할 수 있습니다. '일' 필드에 7을 입력하고 '요일' 필드에는 ?을 입력하면 매월 7일이 무슨 요일이든 상관없이 7번째 되는 날을 지정한다는 의미입니다.

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

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

  • '요일' 필드의 # 와일드카드는 그 달에 속한 정해진 요일의 특정 인스턴스를 지정합니다. 예를 들어, 3#2는 그 달의 두 번째 화요일입니다. 3은 각 주의 셋째 날이므로 화요일을 나타내고 2는 그 달의 두 번째 해당 요일입니다.

제한 사항

  • 같은 cron 표현식에서 '일' 및 '요일' 필드를 지정할 수 없습니다. 이들 필드 중 하나에 값(또는 *)을 지정하는 경우에는 다른 필드에서 반드시 ?(물음표)를 사용해야 합니다.

  • 1분보다 빠른 속도로 이어지는 cron 표현식은 지원되지 않습니다.

예제

예약에 따라 규칙을 생성할 때는 다음과 같이 동일한 cron 문자열을 사용할 수 있습니다.

시간 요일 연도 의미

0

10

*

*

?

*

매일 오전 10시(UTC)에 실행

15

12

*

*

?

*

매일 오후 12시 15분(UTC)에 실행

0

18

?

*

월-금

*

매주 월요일부터 금요일까지 오후 6시(UTC)에 실행

0

8

1

*

?

*

매월 1일 오전 8시(UTC)에 실행

0/15

*

*

*

?

*

15분마다 실행

0/10

*

?

*

월-금

*

월요일부터 금요일까지 10분마다 실행

0/5

8~17

?

*

월-금

*

월요일부터 금요일까지 오전 8시부터 오후 5시 55분(UTC) 사이에 5분마다 실행

다음 예제는 AWS CLI의 put-rule 명령에서 cron 표현식을 사용하는 방법을 보여줍니다. 첫 번째 예제는 매일 12:00pm UTC에 트리거되는 규칙을 생성합니다.

aws events put-rule --schedule-expression "cron(0 12 * * ? *)" --name MyRule1

다음 예제는 매일 2:00pm UTC 이후 5분 및 35분에 트리거되는 규칙을 생성합니다.

aws events put-rule --schedule-expression "cron(5,35 14 * * ? *)" --name MyRule2

두 번째 예제는 2002년부터 2005년까지 매달 마지막 금요일 10:15am UTC에 트리거되는 규칙을 생성합니다.

aws events put-rule --schedule-expression "cron(15 10 ? * 6L 2002-2005)" --name MyRule3

rate 표현식

rate 표현식은 예약된 이벤트 규칙을 생성할 때 시작되며, 정의된 예약 일정에 따라 실행됩니다.

rate 표현식에는 필수 필드가 2개 있습니다. 각 필드는 공백으로 구분됩니다.

구문

rate(value unit)
USD 상당

양수.

unit

시간 단위. 1의 값(예: minute)과 1을 초과하는 값(예: minutes)은 서로 다른 단위가 필요합니다.

유효값: 분 | 분 | 시간 | 시간 | 일 | 일

제한 사항

값이 1과 같을 경우에는 단위가 단수여야 합니다. 마찬가지로, 1보다 큰 값에 대해서는 단위가 복수여야 합니다. 예를 들어, rate(1 hours)와 rate(5 hour)는 잘못된 식이며, rate(1 hour)와 rate(5 hours)가 유효한 식입니다.

예제

다음 예제는 AWS CLI의 put-rule 명령에서 rate 표현식을 사용하는 방법을 보여줍니다. 첫 번째 예제는 1분, 두 번째 예제는 5분, 세 번째 예제는 한 시간, 마지막 예제는 하루에 한 번씩 규칙을 트리거합니다.

aws events put-rule --schedule-expression "rate(1 minute)" --name MyRule2
aws events put-rule --schedule-expression "rate(5 minutes)" --name MyRule3
aws events put-rule --schedule-expression "rate(1 hour)" --name MyRule4
aws events put-rule --schedule-expression "rate(1 day)" --name MyRule5