猫でもわかるWeb開発・プログラミング

本業エンジニアリングマネージャー。副業Webエンジニア。Web開発のヒントや、副業、日常生活のことを書きます。

Terraform / CDKTF で google_monitoring_dashboard が常に差分として出てきてしまう

結論としては、dashboard_json.gridLayout.columns を string で指定しないといけないところ、 int (number) で指定していたことが原因でした。

型が間違っていると常に差分として検出されてしまうようで、以下のような差分をよく見ると、型がずれているのがわかります。

# google_monitoring_dashboard.monitoring_dashboard (monitoring_dashboard) will be updated in-place
~ resource "google_monitoring_dashboard" "monitoring_dashboard" {
    ~ dashboard_json = jsonencode(
        ~ {
            - etag        = "XXXXXXXXXX"
            ~ gridLayout  = {
                ~ columns = "2" -> 2
                  # (1 unchanged attribute hidden)
              }
            - name        = "projects/XXXXXXXX/dashboards/XXXXXXXX"
              # (1 unchanged attribute hidden)
          }
      )
      id             = "projects/XXXXXXXX/dashboards/XXXXXXXX"
      # (1 unchanged attribute hidden)
  }

参考: https://github.com/hashicorp/terraform-provider-google/issues/7242