꽉 잡아 테라폼 ep2. HCL Style Convention

Tim·2023년 9월 14일

Hold Tight Terraform

목록 보기
2/5
post-thumbnail

테라폼을 통하여 정의하는 인프라를 모두 Resource라고 한다.

그리고 테라폼이 리소스를 정의하기 위해 사용하는 언어가 HCL이다.

우리는 앞으로 수많은 리소스들을 HCL로 정의하게 될텐데 컨벤션이 중구난방이면 너무 고통스럽겠지?

한 번 꽉 잡고 가자.

Convention


  • 네스팅 레벨마다 2개의 공백을 사용한다 (tab 치지말아다오)

Yaml과 똑같은 형식이다. 제발 탭 치지 말아다오

  • 같은 네스팅 레벨에 여러가지 값들이 있을 때 equal sign을 모두 맞춘다.

예시 보면 바로 이해 가능하다.

ami           = "abc123"
instance_type = "t2.micro"
  • 하나의 블록안에 여러가지 값과 네스팅 블록이 있을경우 우선순위는
    1. 네스팅 블록

      이다.

resource "aws_instance" "example" {
  count = 2 # meta-argument first
  
  ami           = "abc123"
  instance_type = "t2.micro"

  network_interface {
    # ...
  }

  lifecycle { # meta-argument block last
    create_before_destroy = true
  }
}
  • 같은 블록안에서도 인자들을 논리적인 그룹으로 나누어서 한 줄 씩 띄워준다.

  • 값들 중에 meta argument가 있다면 제일 먼저 적어준다.

  • 탑 레벨 블록은 항상 다른 블록들과 공백 한 줄로 나뉘어야한다.

  • 같은 종류의 블록 여러개를 다른 타입의 블록과 그룹을 만드는 것을 특별한 경우가 아니면 피해라.

결론

→ VS code에 Terraform 익스텐션 깔아서 포매터가 알아서 동작하게 해주되

강조해놓은 Logical한 내용들은 내가 처리해주어야 하니 꼭 기억해놓자.

profile
A man without a goal is like a ship without a rudder - Thomas Carlyle

0개의 댓글