Hands-on: Try the Terraform: Get Started tutorials.
Resources are the most important element in the Terraform language. Each resource block describes one or more infrastructure objects, such as virtual networks, compute instances, or higher-level components such as DNS records.
Resource Blocks documents the syntax for declaring resources.
Resource Behavior explains in more detail how Terraform handles resource declarations when applying a configuration.
Provisioners documents configuring post-creation actions for a resource using the
connectionblocks. Since provisioners are non-declarative and potentially unpredictable, we strongly recommend that you treat them as a last resort.