kikukawa's diary

都内で活動するシステムエンジニアが書いてます。 興味を持った技術やハマったポイント、自分用メモをつけてます。 最近はweb中心

terraformによるAWSパラメーターストアの管理

パラメーターストアをterraformで管理したいけど、 値はコード上に残したくない場合は、 ignore_changes を使います。
for_eachを併用した例を載せます。

locals {
  params = [
    "db/host",
    "db/user",
    "db/password",
    "db/name",
  ]
}
resource "aws_ssm_parameter" "list" {
  for_each = toset(local.params) //listをtosetでfor_eachで使えるようにします。keyもvalueも同じ値が入ります。
  name  = "/${each.key}"
  value = "ignore" //値自体は別途編集するのでなんでもよい
  type  = "String"
  lifecycle {
    ignore_changes = [value]
  }
}