Terraform은 HCL 문법을 가진 언어이다.
언어적 특성을 가지고 있기 때문에 변수를 정의하고 주입해서 사용할 수 있다.
HCL syntax는 JSON syntax와 비슷하다.
variable "image_id" {
type = string
}
variable "availability_zone_names" {
type = list(string)
default = ["us-west-1a"]
}
variable "ami_id_maps" {
type = map
default = {}
}
image_id = "ami-064c81ce3a290fde1"
availability_zone_names = ["us-west-1a","us-west-1b","us-west-1c"]
ami_id_maps = {
ap-northeast-2 = {
amazon_linux2 = "ami-010bf43fe22f847ed"
ubuntu_18_04 = "ami-061b0ee20654981ab"
}
us-east-1 = {
amazon_linux2 = "ami-0d29b48622869dfd9"
ubuntu_18_04 = "ami-0d324124b7b7eec66"
}
}
outputs은 state파일에 변수를 저장한다.
output에 지정해놓은 것을 terraform state파일(terraform.tfstate)에 기록을 하는 것이다. 또한, remote state로 사용할 수도 있다.
hint
vim 편집기에서
:%s/"string"/"string"/g :치환명령어