以下の内容はhttps://kkkw.hatenablog.jp/entry/2020/08/21/100000より取得しました。


for_eachで作成したリソースのstateを指定する

for_eachで作成したリソースは、どのようにstateを指定するか戸惑ったのでメモです。

リソースの種類.リソース名["for_eachのkey"] で指定するみたいです。

もともとそれぞれ別リソースを作成していた場合にfor_eachで書き直した場合を考えてみます。

before

resource "aws_ssm_parameter" "foo" {
  name  = /foo
  value = "example-foo"
  type  = "String"
}
resource "aws_ssm_parameter" "bar" {
  name  = /bar
  value = "example-bar"
  type  = "String"
}

after

locals {
  params = [
    "foo",
    "bar",
  ]
}
resource "aws_ssm_parameter" "list" {
  for_each = toset(local.params) //listをtosetでfor_eachで使えるようにします。keyもvalueも同じ値が入ります。
  name  = "/${each.key}"
  value = "example-${each.key}"
  type  = "String"
}

state mv

こんな感じで指定します。

$ terraform state mv aws_ssm_parameter.foo 'aws_ssm_parameter.list["foo"]'
$ terraform state mv aws_ssm_parameter.bar 'aws_ssm_parameter.list["bar"]'

参考

https://www.terraform.io/docs/commands/import.html




以上の内容はhttps://kkkw.hatenablog.jp/entry/2020/08/21/100000より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14