diff --git a/terraform/interpolate.go b/terraform/interpolate.go index 7038c1bc8..de3a49cf9 100644 --- a/terraform/interpolate.go +++ b/terraform/interpolate.go @@ -284,12 +284,14 @@ func (i *Interpolater) valueSimpleVar( n string, v *config.SimpleVariable, result map[string]ast.Variable) error { - // SimpleVars are never handled by Terraform's interpolator - result[n] = ast.Variable{ - Value: config.UnknownVariableValue, - Type: ast.TypeString, - } - return nil + // This error message includes some information for people who + // relied on this for their template_file data sources. We should + // remove this at some point but there isn't any rush. + return fmt.Errorf( + "invalid variable syntax: %q. If this is part of inline `template` parameter\n" + + "then you must escape the interpolation with two dollar signs. For\n" + + "example: ${a} becomes $${a}." + + n) } func (i *Interpolater) valueUserVar( diff --git a/terraform/interpolate_test.go b/terraform/interpolate_test.go index b13185b42..1e25b9dd5 100644 --- a/terraform/interpolate_test.go +++ b/terraform/interpolate_test.go @@ -13,6 +13,12 @@ import ( "github.com/hashicorp/terraform/config" ) +func TestInterpolater_simpleVar(t *testing.T) { + i := &Interpolater{} + scope := &InterpolationScope{} + testInterpolateErr(t, i, scope, "simple") +} + func TestInterpolater_countIndex(t *testing.T) { i := &Interpolater{}