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)