Lim Seunghyun Space

[T102] Output 본문

IaC/Terraform

[T102] Output

Lim Seung Hyun 2023. 7. 16. 07:43

Output

  • 주로 테라폼 코드의 프로비저닝 수행 후의 결과 속성 값을 확인하는 용도로 사용된다.
  • 테라폼 모듈간, 워크스페이스 간 데이터 접근 요소로 활용할 수 있다.
  • 출력 값의 용도
    • 루트 모듈에서 사용자가 확인하고자 하는 특정 속성 출력
    • 자식 모듈의 특정 값을 정의하고 루트 모듈에서 결과 참조
    • 서로 다른 루트 모듈의 결과를 원격으로 읽기 위한 접근 요소

 

Output 선언

  • output으로 시작되며 블록 안에 정의한다.
  • 출력되는 값은 value이며, 테라폼이 제공하는 조합과 프로그래밍적인 기능들에 의해 원하는 값을 출력할 수 있다.
ouptut <이름> {
  value = <출력할 값>
}
  • output 결과에서 리소스 생성 후 결정되는 속성 값은 프로비저닝이 완료되어야 최종적으로 결과를 확인할 수 있다. 따라서, plan 단계에서는 값을 출력하지 않는다.
  • 사용 가능한 메타 인수
    • description: 출력 값 설명
    • sensitive: 민감한 출력 값임을 알리고 출력문에서 값 노출을 제한 (상위 모듈이나 다른 모듈에서 참조하기 위한 목적으로 활용)
    • depends_on: value에 담길 값이 특정 구성에 종속성이 있는 경우 생성되는 순서를 임의로 조정
    • precondition: 출력 전에 지정된 조건을 검증

 

Output 활용

main.tf

resource "local_file" "abc" {
  content  = "abc123"
  filename = "${path.module}/abc.txt"
}

output "file_id" {
  value = local_file.abc.id
}

output "file_abspath" {
  value = abspath(local_file.abc.filename)
}
terraform plan
'''
Changes to Outputs:
  + file_abspath = "/Users/limseunghyun/Workspace/terraform-playground/output/abc.txt"
  + file_id      = (known after apply) # apply 이후에 확인 가능
'''

terraform apply -auto-approve
'''
Outputs:

file_abspath = "/Users/limseunghyun/Workspace/terraform-playground/output/abc.txt"
file_id = "6367c48dd193d56ea7b0baad25b19455e529f5ee"
'''

 

728x90

'IaC > Terraform' 카테고리의 다른 글

[T102] 조건식  (0) 2023.07.22
[T102] 반복문  (0) 2023.07.16
[T102] Local  (0) 2023.07.16
[T102] Variable  (0) 2023.07.16
[T102] Data Source  (0) 2023.07.15