terraform.applying 심볼
terraform.applying 심볼
terraform.applying 심볼을 사용하면 Terraform이 현재 apply 작업을 실행 중인지 판단할 수 있어요. 이 심볼은 Terraform v1.10 이상에서 사용할 수 있어요. apply 작업 중에는 자동으로 true로 설정되고, 그 외의 작업에서는 false로 설정되기 때문에 동작을 조건에 따라 달리 만들 수 있답니다.
출처: 문서
본문
참고: terraform.applying 심볼은 Terraform v1.10 이상에서 사용할 수 있어요.
구성(configuration)에서 terraform.applying 심볼을 사용하면 Terraform이 현재 apply 작업을 실행 중인지 판단할 수 있어요. Terraform은 apply 작업을 실행할 때 terraform.applying을 자동으로 true로 설정하고, 그 외의 작업에서는 false로 설정해요. terraform apply를 실행하는 planning mode는 terraform.applying에 영향을 주지 않아요. 즉, destroy 모드에서도 terraform.applying은 여전히 true예요.
terraform.applying을 사용하면 apply 작업 중에 Terraform의 동작을 바꿀 수 있어요. 다음 예시에서는 plan 작업을 실행할 때 읽기 전용 자격 증명을 사용하고, apply 작업을 실행할 때는 쓰기 자격 증명을 사용하도록 만들고 있어요.
locals {
aws_read_role_arn = "arn:aws:iam::XXXXX:role/terraform-read"
aws_write_role_arn = "arn:aws:iam::XXXXX:role/terraform-full"
role_arn = terraform.applying ? local.aws_write_role_arn : local.aws_read_role_arn
}
provider "aws" {
region = "us-west-2"
assume_role {
role_arn = local.role_arn
}
}
terraform.applying 심볼은 임시(ephemeral) 값으로, Terraform 작업 중에만 사용할 수 있어요. Terraform은 임시 값을 plan이나 state 파일에 기록하지 않아요. 또한 terraform.applying은 다음의 임시(ephemeral) 컨텍스트에서만 참조할 수 있어요.
- 쓰기 전용 인자(write-only argument) 안에서
- 임시 변수(ephemeral variables) 안에서
- 로컬 값(local values) 안에서
- 임시 리소스(ephemeral resources) 안에서
- 임시 출력(ephemeral outputs) 안에서
provider블록에서 프로바이더를 구성할 때- provisioner 및 provisioner connection 구성 안에서. 자세한 내용은 Use a provisioner 문서를 참고해요.
더 알아보기 (Learn more)
terraform apply명령 — apply 작업 실행- Planning modes (플랜 모드) — plan 모드에 따른 동작 차이
- Local Values (로컬 값) — 로컬 값 정의
- Ephemeral Resources (임시 리소스) — 임시 값 컨텍스트