TFLintの設定については以下を参照。 【TFLint】Terraformのコードをチェックする
terraform_deprecated_index
リソースの配列.*.リソースの属性
のようにリソースのリストの要素をリストで取得しようとするとTFLintで以下のようなWarningが出た。
(例ではlocal.subnets.*.id
と記載した。)
Warning: [Fixable] List items should be accessed using square brackets (terraform_deprecated_index)
on vpc.tf line 65:
65: value = local.subnets.*.id
Reference: https://github.com/terraform-linters/tflint-ruleset-terraform/blob/v0.4.0/docs/rules/terraform_deprecated_index.md
定義のドキュメントについては以下の通り。
» tflint-ruleset-terraform/docs/rules/terraform_deprecated_index.md at v0.4.0 · terraform-linters/tflint-ruleset-terraform
対応方法
リソースの配列.*.リソースの属性
のようにリソースのリストの要素をリストで取得する場合は[*]
を使用する。
.*
による配列アクセスはレガシーな記法となっており、Terraform 0.12以降は[*]
を使用するように推奨されている。
つまり、リソースの配列[*].リソースの属性
と記載する必要がある。
local.subnets.*.id
の場合は以下のように修正する。
local.subnets[*].id
terraform_deprecated_indexルールを無効化する
terraform_deprecated_index
ルールを無効化するには.tflint.hcl
に以下の記述を追加する。
rule {
enabled = false
name = "terraform_deprecated_index"
}
\手を動かしながらTerraformを学びたい人にオススメ!/