90330
## 疑問点

terraformでvariablesを利用するときの指定の仕方として、例えば以下のようになっているコードがあるのですが、`${}`
をつける、つけないの違いがわかりません。

```

    tags {
      Name = ${var.env}-${var.project}
      env = var.env
    }
    
```

## 考えたこと

変数をつなげて利用したい場合は `${}` を使用し、単体で使用する場合は `${}` が不要なのかと思いました。  
また、ワイルドカードとは別物？といった状態です。

## お願いしたいこと

認識の間違いやアドバイスいただけますと幸いです。  
よろしくお願いいたします。
CC BY-SA 4.0
2022-08-02T04:57:48.700
90329
2022-08-02T08:57:40.953
2022-08-02T08:57:40.953
3060
49430
question
terraform
variables を利用するとき ${ } ブレースの有無の違いは？
`${var}`は、他言語でのテンプレート文字列などと同様の[文字列補完(変数展開, interpolation
sequences)](https://ja.wikipedia.org/wiki/%E6%96%87%E5%AD%97%E5%88%97%E8%A3%9C%E9%96%93)です。質問文のコードには`"`が抜けているので構文エラーとなっていますが、`"${var}-in-
sometext"`の形で利用することで文字列中でvarをはじめ、各種outputを含む変数や式の展開ができます。

terraformでは0.11まではほとんどのパラメータを文字列として渡していたため、すべての変数や式について `"${expression}"`
の形で利用する必要がありましたが、[0.12より直接式を渡せるようになった](https://www.terraform.io/language/upgrade-
guides/0-12#first-class-expressions)ため、単体で使用する際はこれが省略できます。
CC BY-SA 4.0
2022-08-02T05:21:58.723
90330
2022-08-02T05:21:58.723
2376
90329
answer