Terraform、Docsに沿って書いたのに動かない?
TerraformでAzureリソースを作る時にハマった事例をご紹介します。
VMSS(仮想マシン スケールセット)の作成時のエラー
VMSSの作成のため、下記のドキュメントを参考にTerraform定義を作成しました。
https://www.terraform.io/docs/providers/azurerm/r/virtual_machine_scale_set.html
記事執筆時点の最新のterraform.exe(0.12系)を使用してterraform planを実行すると、エラーが発生します。
Error: Reference to "count" in non-counted context
on test.tf line 146, in resource "azurerm_virtual_machine_scale_set" "test":
146: load_balancer_inbound_nat_rules_ids = ["${element(azurerm_lb_nat_pool.lbnatpool.*.id, count.index)}"]
The "count" object can be used only in "resource" and "data" blocks, and only
when the "count" argument is set.
え…なんで公式ドキュメント通り書いてるのにエラー?elementの中でcountが参照できないみたいです。
こちら、Terraformのバージョンアップ(0.11 ⇒ 0.12)の際に仕様変更があったようです。
古いバージョンのTerraformを使用するか、別の記述に変更する必要があります。
今回はとりあえず、Terraformのバージョンを0.11系に下げて対処しました。
AGW(Application Gateway)のSSLPolicy設定でエラー
Application GatewayをTerraformで作る時、設定が多いので泣きそうになります。
そんな中でどうしても下記のエラーが出て困りました。
Error: module.application_gateway.azurerm_application_gateway.network: : invalid or unknown key: ssl_policy
要は「ssl_policyって、何?」と言われてます。
調べてみた結果、ssl_policyの設定はazurermプロバイダーのバージョン1.29.0以降で使えるようでした。
具体的に書くと、providerの設定部分が下記のようになっていたので、
provider "azurerm" {
version = "=1.28.0"
}
下記のように変更すれば解消しました。
provider "azurerm" {
version = "=1.29.0"
}
まとめ
Terraformでエラーが出た時、基本的にはtfファイル等の記述ミスを疑うべきです。
しかしエラーの内容によっては、使用しているterraform.exeやproviderのバージョンを確認してみるのが良さそうです。







![Microsoft Power BI [実践] 入門 ―― BI初心者でもすぐできる! リアルタイム分析・可視化の手引きとリファレンス](/assets/img/banner-power-bi.c9bd875.png)
![Microsoft Power Apps ローコード開発[実践]入門――ノンプログラマーにやさしいアプリ開発の手引きとリファレンス](/assets/img/banner-powerplatform-2.213ebee.png)
![Microsoft PowerPlatformローコード開発[活用]入門 ――現場で使える業務アプリのレシピ集](/assets/img/banner-powerplatform-1.a01c0c2.png)


