timecmp 함수

timecmp 함수

timecmp는 두 타임스탬프를 비교하고, 그 타임스탬프들이 나타내는 순간의 순서를 나타내는 숫자를 반환하는 함수예요.

timecmp(timestamp_a, timestamp_b)

| | 조건 | 반환 값 | | | timestamp_atimestamp_b보다 이른 경우 | -1 | | | timestamp_atimestamp_b와 같은 순간인 경우 | 0 | | | timestamp_atimestamp_b보다 늦은 경우 | 1 |

타임스탬프를 비교할 때 timecmp는 각 타임스탬프에 주어진 UTC 오프셋을 고려해요. 예를 들어 06:00:00+020004:00:00Z는 첫 번째 타임스탬프의 +0200 오프셋을 적용하면 같은 순간이 돼요.

Terraform 언어에서 타임스탬프는 관례적으로 RFC 3339 "날짜와 시간 형식" 구문을 사용하는 문자열로 표현돼요. timecmp는 두 인자가 모두 이 구문에 맞는 문자열이어야 해요.

출처: 문서

본문

예제

> timecmp("2017-11-22T00:00:00Z", "2017-11-22T00:00:00Z")
0
> timecmp("2017-11-22T00:00:00Z", "2017-11-22T01:00:00Z")
-1
> timecmp("2017-11-22T01:00:00Z", "2017-11-22T00:00:00Z")
1
> timecmp("2017-11-22T01:00:00Z", "2017-11-22T00:00:00-01:00")
0

timecmp 함수는 지정된 타임스탬프가 특정 범위 안에 있는지 검증할 때 유용해요. 설정 검증에 대해 더 알아보려면 Validating your configuration을 참고하세요.

예를 들어, 아래 리소스 후조건(postcondition)은 TLS 인증서(또는 만료되는 객체)가 "apply" 단계 시점으로부터 30일 이내에 만료되면 오류를 발생시켜요.

  lifecycle {
    postcondition {
      condition     = timecmp(timestamp(), timeadd(self.expiration_timestamp, "-720h")) < 0
      error_message = "Certificate will expire in less than 30 days."
    }
  }

더 알아보기 (Learn more)

  • timestamp — apply 단계에서 평가될 때의 현재 타임스탬프를 반환해요.
  • timeadd — 지정된 기간을 더하거나 빼서 타임스탬프 산술 연산을 수행해요.