DevOps/Terraform
Terraform lifecycle
xlwdn98767
2023. 7. 10. 14:23
728x90
수명주기
terraform에서 resource를 선언할 때 블럭 내부에 배치하여 수명주기를 설정할 수 있다. 인수로는 다음 목록들을 입력할 수 있다.
- create_before_destroy (bool)
- 리소스 수정 시 수정된 리소스를 먼저 생성. 이후 기존 리소스 삭제
resource "local_file" "abc" { content = "lifecycle" lifecycle { create_before_destroy = true } }
- prevent_destroy (bool)
- 해당 리소스를 삭제하려할 때 거부
resource "local_file" "abc" { content = "lifecycle" lifecycle { prevent_destroy = true } }
- ignore_changes (list)
- 리소스 요소에 선언된 인수의 변경 사항을 테라폼 실행 시 무시
resource "local_file" "abc" { content = "lifecycle" lifecycle { ignore_changes = [ content ] } }
- precondition
- 리소스 요소에 선언된 인수의 조건 검증
resource "local_file" "abc" { content = "lifecycle" lifecycle { precondition { condition = var.file_name == "test.txt" error_message = "file name is not 'test.txt'" } } }
- postcondition
- plan, apply 이후의 결과를 속성 값으로 검증
resource "local_file" "abc" { content = "lifecycle" lifecycle { postcondition { condition = self.content != "" error_message = "content is empty!" } } }