HCL is a configuration language with a real expression system underneath it. Most of what separates a readable Terraform configuration from a repetitive one is knowing which expressions exist.\n\nThere is no user-defined function support. You use the built-in library, composed with for expressions and locals.\n\n## Types\n\n| Type | Example |\n|---|---|\n| string | \"eu-west-1\" |\n| number | 3 |\n| bool | true |\n| list / tuple | [\"a\", \"b\"] (ordered, duplicates allowed) |\n| set | `toset(["a", "b\
Work with strings in Terraform: interpolation, format, case and whitespace helpers, replace and regex functions, templatefile and conditionals.
Learn Terraform collection functions such as concat, flatten, distinct and slice, plus map and set helpers and for expressions for dynamic code.
Learn Terraform dynamic blocks: generate repeated nested blocks from a collection, with security group and IAM policy examples and the limits to respect.