required_providers 블록 참조
required_providers 블록 참조 (required_providers block reference)
Terraform은 프로바이더라 불리는 플러그인에 의존해 클라우드 프로바이더, SaaS 프로바이더 및 기타 API와 상호작용해요. 컴포넌트 구성에서 required_providers 블록을 사용해 Stack이 요구하는 프로바이더를 선언하세요.
출처: 문서
본문
전통적인 Terraform 구성 파일(.tf로 끝나는)에서 required_providers 블록을 선언한다면 Terraform 구성 terraform 블록 참조를 대신 참고하세요.
배경 (Background)
컴포넌트 구성에서는 tfcomponent.hcl 파일의 최상위에 required_providers 블록을 정의해야 해요.
required_providers 블록은 Stack이 요구하는 프로바이더를 선언해 Terraform이 이를 설치하고 사용할 수 있게 해요. 프로바이더를 정의할 때마다 해당 프로바이더를 required_providers에 추가해 Terraform CLI가 프로바이더 소스를 어디서 가져오고 어떤 버전을 다운로드할지 알 수 있도록 해야 해요.
Terraform CLI는 required_providers 블록을 사용해 나열된 프로바이더를 다운로드하고 프로바이더 잠금 해시를 계산해요. 자세한 내용과 예제는 프로바이더 선언을 참고하세요.
구성 모델 (Configuration model)
required_providers 블록은 다음 인자를 지원해요:
완전한 구성 (Complete configuration)
사용 가능한 모든 인자는 다음 required_providers 블록에 정의돼 있어요:
required_providers {
<PROVIDER_NAME> = {
source = "<PROVIDER_SOURCE>"
version = "<VERSION_CONSTRAINT>"
}
}
명세 (Specification)
required_providers 블록은 다음 구성을 지원해요.
required_providers
required_providers 블록은 하나 이상의 프로바이더 요구 사항 선언을 포함해요. 각 선언은 프로바이더 이름과 그 요구 사항을 지정해요.
required_providers {
<PROVIDER_NAME> = {
source = "<PROVIDER_SOURCE>"
version = "<VERSION_CONSTRAINT>"
}
<PROVIDER_TWO_NAME> = {
source = "<PROVIDER_SOURCE>"
version = "<VERSION_CONSTRAINT>"
}
}
<PROVIDER_NAME>
각 프로바이더 선언은 프로바이더 이름을 프로바이더 요구 사항 블록에 매핑하는 키로 사용해요. provider 블록에서 같은 프로바이더 이름을 참조해 해당 프로바이더를 더 구성할 수 있어요.
각 프로바이더에 대해 다음 인자가 지원돼요:
| 인자 | 설명 | 타입 | 필수? |
|---|---|---|---|
source |
프로바이더의 전역 소스 주소. | 문자열 | 필수 |
version |
프로바이더의 허용 가능한 버전을 지정하는 버전 제약. | 문자열 | 필수 |
source
source 인자는 프로바이더의 전역 소스 주소를 지정해 Terraform에 프로바이더를 어디서 찾을지 알려줘요.
required_providers {
aws = {
source = "hashicorp/aws"
}
}
required_providers 블록에서 속성을 구성하는 방법에 대한 지침은 공개 Terraform registry의 각 Terraform 프로바이더 문서 또는 프라이빗 HCP Terraform registry를 참고하세요.
요약
- 데이터 타입: 문자열
- 기본값: 없음
- 필수: 예
version
version 인자는 프로바이더의 허용 가능한 버전을 결정하는 버전 제약을 지정해요.
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 5.7.0"
}
}
버전 제약을 지정하는 방법에 대한 자세한 내용은 버전 제약 (Version constraints)을 참고하세요.
요약
- 데이터 타입: 문자열
- 기본값: 없음
- 필수: 예
예제 (Examples)
다음 예제에서 required_providers 블록은 특정 버전 제약과 함께 AWS 및 random 프로바이더를 선언해요:
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 5.7.0"
}
random = {
source = "hashicorp/random"
version = "~> 3.5.1"
}
}
provider 블록을 사용해 Stack의 프로바이더를 더 구성하는 방법에 대해 알아보려면 프로바이더 선언을 참고하세요.
더 알아보기 (Learn more)
- provider 블록 참조: 프로바이더 구성
- component 블록 참조: 컴포넌트 정의
- 컴포넌트 구성 개요: tfcomponent.hcl 파일
- 프로바이더 선언: Stacks 프로바이더