0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【CloudFormation】直したのに cfn-lint の結果が変わらない。原因は別ファイルを見ていた話

0
Posted at

はじめに

CloudFormation のテンプレートに監視と WAF を追記して、cfn-lint で確認しようとしました。

追記して保存 → cfn-lint 実行。…警告1件だけW1011 という既知のもの)。「お、きれいに通った」と思って次の追記、また cfn-lint。…やっぱり同じ警告1件だけ

順調だと思って deploy したら、こう言われました:「そのパラメータはテンプレートに存在しません」。追記したはずなのに?

cfn-lintdeploy も、私が編集していたのとは“別のファイル”を見ていました😅

「lint がずっと同じ結果」=順調、ではなく「そもそも見ているファイルが違う」サインだった、という話です。

環境

  • AWS CloudFormation(YAML テンプレート)
  • cfn-lint
  • エディタ:VS Code / Cursor(複数フォルダを開いていた)
  • 同じ template.yaml2か所にあった(Git 管理用のクローンと、デプロイ作業用のコピー)

起きたこと

  1. エディタで template.yaml を編集・保存(リソースをいくつか追記)
  2. ターミナルで cfn-lint template.yaml毎回同じ警告1件だけW1011
  3. 追記を増やしても結果が変わらない(でも「エラーが無い」ので気づけない)
  4. いざ deploy
Parameters: [AlertEmail] do not exist in the template

→ 追記したはずの新パラメータが「無い」と言われる。

原因

template.yaml2か所に別々に存在していて、編集していたファイルと、cfn-lint / deploy が読んでいたファイルが違ったのが原因でした。

操作 実際に見ていたファイル
エディタで編集・保存 デプロイ作業用のコピー(古い置き場)
cfn-lint / deploycd した先) Git 管理用のクローン(こちらが本命)

cfn-lint がずっと「警告1件だけ」だったのは、追記が入っていない元テンプレートでも有効だったからです。エラーが出ない=自分の変更が反映されている、ではなく、「追記が反映されていないのに気づけていない」状態でした。

対処

まず「今いる場所」と「実際に読んでいるファイルの絶対パス」を確認すると、切り分けが早いです。

pwd
realpath template.yaml   # いま cfn-lint が読むファイルの絶対パスを確認

これで「あれ、編集しているフォルダと違う」と気づけました。次に2つを比べると、片方にだけ追記が入っていました。

diff ~/work/app/template.yaml ~/repo/app/template.yaml
# → 片方にだけ追記行がある=別物だった

編集済みのファイルを、cfn-lint / deploy が見ている方へコピーして1本に統一しました。

cp ~/work/app/template.yaml ~/repo/app/template.yaml
diff ~/work/app/template.yaml ~/repo/app/template.yaml   # 差分なし=一致
cfn-lint ~/repo/app/template.yaml                        # 追記が反映され、内容が変わった

以降は 同じファイルで 編集・lint・deploy・commit するようにして、ズレが起きないようにしました。

学び

  • 「いま編集しているパス」と「lint / deploy が読むパス」が同じかを毎回意識する。迷ったら pwdrealpath で確認。
  • lint の結果が“いつも同じ”なら要注意。「順調」ではなく「本当にそのファイルを見てる?」を疑うサイン。
  • できるだけ同じファイルを複数の置き場に持たない。1本に統一する(どうしても2か所必要なら、毎回 diff で同期を確認)。
  • ツールは「渡されたファイル」を正直に検査するだけ。人間が渡す先を間違えると、いくら直しても反映されない。

おわりに

「直してるのに変わらない…」の半分くらいは、直している場所が違うやつかもしれません😅 同じ罠にはまった人の、最初に realpathdiff で確認するきっかけになれば嬉しいです🙌

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?