😭
AWS CloudFormationで指定する名前は大文字小文字を区別する
はじめに
タイトルのとおりなんですが、ハマったのでメモとして残しておきます。
AWS CloudFormationで指定する名前とは?
ハードコーディングになってしまうのでレアケースだと思いますが、例えばすでに構築済みのサービスに対してCloudFormationで監視設定を構築したい場合、構築済みのサービス名をyaml内で指定することがあります。
具体的な例
今回、例としてすでに構築済みのCloudWatchのロググループ名を指定する場合を考えると、
LogGroupName: '/service/logGroup/name'
のようになると思います。
ここで先頭の文字が小文字になっていますが、すでに構築済みのCloudWatchのロググループ名が先頭の文字が大文字になっていると、スタック実行時にエラーが発生します(ロググループが存在しないエラー)
正しい指定としては以下のようになります。
LogGroupName: '/Service/LogGroup/Name'
これで大文字小文字が区別された正しい名前を指定でき、スタックがエラーにならず流れます。
おわりに
大文字小文字の区別なんて"あるある"のミスですが、ついハードコーディングでコピペではなく手打ちしていると発生しやすいミスだと思います。
根本的にはハードコーディングを無くす、ハードコーディングになるのなら正しい値になるようにコピペする(手打ちしない)などの対策が考えられますが、それでも環境の問題だったり、人間なのでつい流れで…ということは起こり得ます。
発生しにくいかもですが、一度起こると気づきにくい内容ではあると思うので、参考になれば幸いです。
最後に宣伝です!
楽しいことを発信するPodcast aozora.fmやってます!
主にお仕事(テック系が多め)、趣味(ゲーム・アニメの他、映画や小説、野球など千差万別!)の話題が多いです。
リンク先でカテゴリー別にまとめているので興味あるエピソードから、通勤や仕事のお供にぜひ!
Discussion