IaC/Terraform

[Terraform] Output 출력 변수

dhyuck 2022. 9. 3. 22:03
반응형

출력 변수

  • 출력 변수(output values)를 사용하면 리소스에 대한 데이터를 내보낼 수 있으며 child module(자식 모듈)에서 root module(루트 모듈)로 데이터를 공유할때 필요합니다.
  • 내보낸 데이터를 사용하여 다른 인프라의 구성에 활용하거나 데이터 소스로 사용할 수 있습니다.
  • output 선언은 모든 구성파일의 모든 위치에서 가능하지만, outputs.tf에 선언 할 것을 권장합니다.
  • output values는 루트 모듈의 상태 파일에 저장됩니다.
  • terraform output는 output에 query하는 명령입니다.

출력 변수 선언

  • Output Blocks

    • description은 선택사항이지만 작성할 것을 권장합니다.

    • terraform의 표현식의 결과를 value로 사용할 수도 있습니다.

      output "vpc_id" {
      description = "ID of project VPC"
      value       = module.vpc.vpc_id
      }
      
      output "lb_url" {
      description = "URL of load balancer"
      value       = "http://${module.elb_http.this_elb_dns_name}/"
      }
      
      output "db_password" {
      description = "Database administrator password"
      value       = aws_db_instance.database.password
      sensitive   = true
      }

sensitive

  • output이 password와 같은 민감한 값을 가리킬때 사용합니다.

  • sensitive를 plan, apply, destory 단계에서 console 출력이 <sensitive>로 변경됩니다.

    하지만 output으로 출력하는 경우, JSON 형식으로 출력하는 경우, 루트 모듈에서 자식모듈의 출력을 사용하는 경우 등에서는 sensitive로 가려지지 않습니다.


반응형