The Language — Variables, Outputs, and Expressions
The point where the Hatch pipeline stops being hardcoded. Inputs become variables, derived values become locals, the module interface becomes outputs — and expressions, functions, and dynamic blocks are the grammar that ties them together.
7 topics
Up to here the Hatch ingest pipeline has been a single configuration with its project, region, bucket names, and topic baked in as string literals. That works for exactly one environment. The moment you want the same pipeline in hatch-pipeline-dev, staging, and prod, those literals have to come out of the body and become inputs — and the values the config derives from them have to be named and reused instead of copy-pasted.
This chapter is the Terraform language itself: how you parameterize a configuration with input variables, constrain them with types and validation, expose results with outputs, factor derived values into locals, and write the expressions, functions, and dynamic blocks that compute everything in between. None of it is GCP-specific — it is the part of the skill that carries to every provider — but every example is the Hatch pipeline on Google Cloud.