ようへいの日々精進XP

よかろうもん

Terraform で EC2 タグキーが illegal char で怒られてしまう場合の対応

tl;dr

EC2 (だけではない) と思いますが, Terraform で AWS リソースにタグを付与しようとした場合, コロン等の記号が含まれている場合, 以下のようなエラーとなります.

例えば, 以下のような場合.

resource "aws_instance" "your-instnace" {
...
  tags = {
    Name = "your-instnace"
    amirotate:default = "{\"NoReboot\": true, \"Retention\": {\"Count\": 3}}"
  }
}

amirotate:default がタグキーになりますが, terraform plan すると...

Error: Error parsing ... illegal char

上記のような感じで怒られます. え, タグ登録出来ないやんって思ってしまいますが, 結構簡単に登録することが出来ました.

ということで, 検証に利用した環境は以下の通りです. 最新でなくてごめんなさい.

$ terraform version
Terraform v0.11.11
+ provider.aws v2.12.0

Your version of Terraform is out of date! The latest version
is 0.12.0. You can update by downloading from www.terraform.io/downloads.html

俺はこうした

タグキーをダブルクォーテーションで囲った

以下のような感じ.

resource "aws_instance" "your-instnace" {
...
  tags = {
    Name = "your-instnace"
    amirotate:default = "{\"NoReboot\": true, \"Retention\": {\"Count\": 3}}"
  }
}

後は普通に plan して apply すれば OK.

以上

  • メモでした.