해당 내용은 T1012 스터디에 나온 내용과 '테라폼으로 시작하는 IaC' 책을 기준으로 정리 했습니다
3.8 출력 output
출력 값은 주로 테라폼 코드의 프로비저닝 수행 후의 결과 속성 값을 확인하는 용도로 사용된다.
또한 프로그래밍 언어에서 코드 내 요소 간에 제한된 노출을 지원하듯
테라폼 모듈 간, 워크스페이스 간 데이터 접근 요소로도 활용할 수 있다.
- 루트 모듈에서 사용자가 확인하고자 하는 특정 속성 출력
- 자식 모듈의 특정 값을 정의하고 루트 모듈에서 결과를 참조
- 서로 다른 루트 모듈의 결과를 원격으로 읽기 위한 접근 요소
output 선언
모듈 내에서 생성되는 속성 값들은 outout 블록에 정의된다
output "instance_ip_addr" {
value = "http://${aws_instance.server.private_ip}"
}
- 출력되는 값은 value의 값이며 테라폼이 제공하는 조합과 프로그래밍적인 기능들에 의해 원하는 값을 출력할 수 있다.
- 참고할점은 output 결과에서 리소스 생성 후 결정되는 속성 값은 프로비저닝이 완료되어야
최종적으로 결과를 확인할 수 있고 terraform plan 단계에서는 적용될 값이 출력하지 않는다는 것이다.
사용가능한 메타인수
- description: 출력 값 설명
- sensitive: 민감한 출력 값임을 알리고 테라폼의 출력문에서 값 노출을 제한
- depends_on: value에 담길 값이 특정 구성에 종속성이 있는 경우 생성되는 순서를 임의로 조정
- precondition: 출력 전에 지정된 조건을 검증
output 활용
- abspath : 파일 시스템 경로를 포함하는 문자열을 가져와 절대 경로로 변환하는 함수
# 실습환경 구성
mkdir 3.8 && cd 3.8
# 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 init && terraform plan
terraform apply -auto-approve
'공부하면서 > Terraform' 카테고리의 다른 글
[T1012] 3주차 - 테라폼 기본 사용 3/3 (조건문,함수,프로비저너) (0) | 2023.07.21 |
---|---|
[T1012] 2주차 - 테라폼 기본 사용 2/3 (반복문 + 실습) (0) | 2023.07.15 |
[T1012] 2주차 - 테라폼 기본 사용 2/3 (local 지역 값 + 실습) (1) | 2023.07.15 |
[T1012] 2주차 - 테라폼 기본 사용 2/3 (데이터 소스 + 실습) (0) | 2023.07.15 |
[T1012] 2주차 - 테라폼 기본 사용 2/3 (입력변수) (0) | 2023.07.15 |