terraform query 명령
terraform query 명령
terraform query 명령은 tfquery.hcl 파일에 정의된 조건에 따라 기존 인프라에서 리소스를 조회해서 Terraform 워크스페이스로 가져올 수 있게 해 주는 명령이에요. 대량의 기존 리소스를 빠르게 파악하고 import 구성을 생성할 때 유용해요.
출처: 문서
본문
사용법 (Usage)
$ terraform query [flags] [options]
설명 (Description)
terraform query 명령을 실행하면 Terraform은 현재 구성 디렉터리에서 .tfquery.hcl 확장자를 가진 파일을 찾아요. 그런 다음 쿼리 파일에 정의된 list 블록과 일치하는 원격 인프라의 리소스를 조회하고 결과를 터미널에 출력해요. 또한 -generate-config-out 플래그를 추가해서 리소스를 import하는 데 사용할 수 있는 구성을 생성할 수도 있어요. 자세한 내용은 Import resources in bulk 문서를 참고해 주세요.
플래그 (Flags)
-var '<INPUT-VARIABLE>=<VALUE>':tfquery.hcl구성에 정의된 입력 변수의 값을 설정하는 키-값 쌍을 지정함. 추가 입력 변수를 설정하려면 이 플래그를 두 번 이상 사용할 수 있어요.- 데이터 타입: String.
- 예시: Set input variables
-var-file=<FILENAME>: 기본terraform.tfvars와*.auto.tfvars파일에 더해서 입력 변수 값이 들어 있는 파일을 지정함.- 데이터 타입: Filename
- 예시: Set input variables
옵션 (Options)
-generate-config-out=<PATH/TO/OUTPUT>: Terraform이 결과에 대한import및resource블록을 생성해서 가져올 수 있도록 지시함. Terraform은 구성을 새 파일에 작성해요. 파일은 이미 존재해서는 안 돼요.-json옵션과 함께 사용하면 Terraform은 파일에 쓰는 대신 JSON 출력의 일부로 구성을 생성해요.- 데이터 타입: Path
- 예시: Generate import configuration
-json: Terraform이 결과를 콘솔에 JSON 형식으로 출력하도록 지시함.- 데이터 타입: Boolean
- 예시: Generate import configuration
-no-color: Terraform이 단색(모노크롬) 결과를 출력함.- 데이터 타입: Boolean
예시 (Examples)
다음 예시들은 일반적인 사용 사례에서 명령을 어떻게 쓰는지 보여 줘요.
입력 변수 설정 (Set input variables)
다음 명령은 env 입력 변수의 값을 prod로 설정해요.
$ terraform query -var 'env=prod'
이에 대응하는 tfquery.hcl 구성:
list "aws_instance" "instances" {
provider = aws
}
variable "env" {
type = string
default = "test"
}
다음 명령은 my-vars.tfvars에 정의된 변수 값을 불러와요.
$ terraform query -var-file=my-vars.tfvars
import 구성 생성 (Generate import configuration)
다음 명령은 쿼리 결과에 대한 import와 resource 블록을 to-import 디렉터리의 파일로 생성해요.
$ terraform query -generate-config=to-import/file.tf
다음 명령은 쿼리 결과에 대한 import와 resource 블록을 JSON으로 출력해요.
$ terraform query -generate-config=file.tf -json
더 알아보기 (Learn more)
- Import resources in bulk 문서
- terraform import 명령
- tfquery.hcl 파일 형식 문서
- Terraform CLI 명령 목록