timecmp 함수
timecmp 함수
timecmp는 두 타임스탬프를 비교하고, 그 타임스탬프들이 나타내는 순간의 순서를 나타내는 숫자를 반환하는 함수예요.
timecmp(timestamp_a, timestamp_b)
| | 조건 | 반환 값 |
| | timestamp_a가 timestamp_b보다 이른 경우 | -1 |
| | timestamp_a가 timestamp_b와 같은 순간인 경우 | 0 |
| | timestamp_a가 timestamp_b보다 늦은 경우 | 1 |
타임스탬프를 비교할 때 timecmp는 각 타임스탬프에 주어진 UTC 오프셋을 고려해요. 예를 들어 06:00:00+0200과 04: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."
}
}