테라폼 코드는 BLOCK 단위로 구성한다.
<BLOCK TYPE> "<BLOCK LABEL>" "<BLOCK LABEL>" {
<IDENTIFIER> = <EXPRESSION>
}
resource라는 BLOCK 타입을 생성할 때는 다음과 같은 구문을 사용한다.
resource "<PROVIDER>_<TYPE>" "<NAME>" {
[CONFIG ...]
}
위 구문에서 PROVIDER는 AWS와 같은 공급자의 이름이고 TYPE은 instance, network 등 해당 공급자가 제공하는 리소스 유형이다. 그리고 NAME은 테라폼 코드에서 이 리소스를 참조하기 위해 사용할 수 있는 식별자이다. 마지막으로, CONFIG는 특정 리소스에 대한 하나 이상의 인수(argument)로 구성된다.
예를 들어, EC2 인스턴스라고 하는 AWS에 단일 가상 머신을 배포하기 위한 테라폼 코드는 아래와 같다.
resource "aws_instance" "example" {
ami = "ami-0c55b159cbfafe1f0"
instance_type = "t2.micro"
}