컴포넌트 구성용 `output` 블록 참조
컴포넌트 구성용 output 블록 참조 (output block reference for component configurations)
Stack에서 output 블록을 사용해 Stack 인프라에 대한 정보를 HCP Terraform UI에 노출해요. 이 페이지에서는 컴포넌트 구성의 .tfcomponent.hcl 파일에서 output 블록을 구성하는 방법과 지원 인자를 다룰게요.
출처: 문서
본문
Stack에서 output 블록을 사용해 Stack 인프라에 대한 정보를 HCP Terraform UI에 노출해요.
배경 (Background)
.tfcomponent.hcl 파일에 output 블록을 정의해 Stack 인프라에 대한 정보를 HCP Terraform UI에 노출해요.
Stack의 값을 다른 Stack에서 사용하려면 한 Stack에서 다른 Stack으로 데이터 전달을 대신 참고해요. .tf로 끝나는 전통적인 Terraform 구성 파일에서 output 블록을 선언한다면 Terraform 구성 output 블록 참조를 대신 참고해요.
구성 모델 (Configuration model)
output 블록은 다음 인자를 지원해요:
output "<NAME>"블록type타입 제약value식description문자열sensitive불리언ephemeral불리언
완전한 구성 (Complete configuration)
사용 가능한 모든 인자는 다음 output 블록에 정의돼 있어요:
output "<NAME>" {
description = "<DESCRIPTION>"
type = <TYPE>
value = <VALUE>
sensitive = <BOOL>
ephemeral = <BOOL>
}
사양 (Specification)
컴포넌트 구성 파일에서 output 블록은 다음 구성을 지원해요.
output "<NAME>"
output 키워드 뒤의 레이블은 출력의 이름이며, 같은 컴포넌트 구성의 모든 출력 사이에서 고유해야 해요. 출력의 이름은 유효한 식별자라면 무엇이든 될 수 있어요.
output 블록에서 다음 인자가 지원돼요:
| 인자 | 설명 | 타입 | 필수? |
|---|---|---|---|
type |
이 출력 값에 대한 타입 제약이에요. | 타입 제약 | 필수 |
value |
Terraform이 이 출력에 대해 반환하는 값이에요. | 식 | 필수 |
description |
출력의 목적과 사용 방법에 대한 설명이에요. | 문자열 | 선택 |
sensitive |
Terraform이 이 값을 UI와 로그에서 숨기는지 여부를 지정해요. | 불리언 | 선택 |
ephemeral |
Terraform이 이 값을 plan과 상태에서 제외해야 한다는 것을 지정해요. | 불리언 | 선택 |
type
type 인자는 출력 값에 대한 타입 제약을 지정해요. 컴포넌트 구성은 각 출력의 타입을 명시적으로 정의할 것을 요구해요.
output "<NAME>" {
type = <TYPE>
#...
}
타입, 생성자, 변환에 대한 자세한 내용은 타입 제약을 참고해요.
요약 (Summary)
- 데이터 타입: 타입 제약
- 기본값: 없음
- 필수: 예
value
value 인자는 Terraform이 평가해 HCP Terraform UI에 노출하는 식을 지정해요.
output "<NAME>" {
type = <TYPE>
value = <VALUE>
}
컴포넌트 구성에서 출력은 일반적으로 component.<NAME>.<OUTPUT> 같은 컴포넌트 출력과 기타 Stack 리소스를 참조해요.
요약 (Summary)
- 데이터 타입: 식
- 기본값: 없음
- 필수: 예
description
description 인자는 출력의 목적과 소비자가 어떻게 사용해야 하는지를 문서화해요.
output "<NAME>" {
description = "<DESCRIPTION>"
type = <TYPE>
value = <VALUE>
}
이 Stack의 출력을 소비하는 사람의 관점에서 설명을 작성해 출력의 목적과 사용법을 이해하도록 도와요.
요약 (Summary)
- 데이터 타입: 문자열
- 기본값: 없음
- 필수: 아니요
sensitive
sensitive 인자는 Terraform이 출력 값을 HCP Terraform UI와 로그에 표시하지 못하게 해요.
output "<NAME>" {
description = "<DESCRIPTION>"
type = <TYPE>
value = <VALUE>
sensitive = <BOOL>
}
sensitive를 true로 설정하면 HCP Terraform UI는 실제 값을 표시하는 대신 출력을 (sensitive value)로 표시해요. Terraform은 여전히 민감한 값을 상태에 기록하므로 상태에 접근할 수 있는 사람이라면 누구나 이 값들을 볼 수 있어요. 민감한 데이터를 안전하게 저장하는 방법에 대한 자세한 내용은 민감한 데이터 관리를 참고해요.
요약 (Summary)
- 데이터 타입: 불리언
- 기본값:
false - 필수: 아니요
ephemeral
ephemeral 인자는 출력 값을 plan과 상태 데이터에서 제외해 런타임 동안에만 사용 가능하게 해요.
output "<NAME>" {
description = "<DESCRIPTION>"
type = <TYPE>
value = <VALUE>
ephemeral = <BOOL>
}
임시 출력은 상태에 지속시키고 싶지 않은 세션 토큰이나 단기 자격 증명 같은 임시 값에 유용해요.
임시 변수는 특정 맥락에서만 참조할 수 있으며 그렇지 않으면 Terraform이 오류를 발생시켜요:
- 관리 리소스의 쓰기 전용 인자에서
ephemeral블록에서locals블록에서ephemeral인자가true로 설정된 다른variable블록에서ephemeral인자가true로 설정된 다른output블록에서provider블록에서 프로바이더 구성하기- 프로비저너와 connection 블록에서
요약 (Summary)
- 데이터 타입: 불리언
- 기본값:
false - 필수: 아니요
예시 (Examples)
다음 예시는 컴포넌트 구성에서 output 블록의 일반적인 사용 사례를 보여줘요.
기본 컴포넌트 출력 (Fundamental component output)
다음 예시에서 instance_ip 출력은 web_server 컴포넌트의 private_ip 값을 문자열로 노출해요:
output "instance_ip" {
description = "The private IP address of the web server"
type = string
value = component.web_server.private_ip
}