ターミナル上でCloudFormationスタックエラーだけを素早く手軽に確認するスクリプトをこしらえてみた

CloudFormationスタック作成・更新にて、イベントステータスがFailedとなっている場合のエラー詳細をターミナルで手軽に確認するためのスクリプトをこしらえてみました。
2020.04.02

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

CloudFormationスタック作成及び更新でエラーが発生する度に管理コンソールを開いていましたが、

  1. CloudFormationのメニューを開く
  2. スタック一覧から該当のスタックを選択する
  3. イベントからエラー詳細を確認する

と中々深いところまで開く必要があります。

管理コンソールを開いたまま定期的に更新する手もありますが、エラー部分だけを見るためのスクロールもまた手が忙しいものです。

だんだんと面倒になってきたので、気になった時に実行して確認するためのエラー詳細出力スクリプトをこしらえてみました。

ダウンロード

GitHub Gistに公開しています。

curl https://gist.githubusercontent.com/haoyayoi/548c4bd492c4b1e25eabf681a4bb205a/raw/check_stack_error.sh > check_stack_error.sh
chmod +x check_stask_error.sh
sh check_stach_error.sh

実行してみる

CloudFormationのGet*List*Describe*ポリシーを許可しているプロファイルが必要です。

スタック名を引数として渡すと、そのスタックのエラーだけを出力します。複数のスタック名も渡せます。引数なしの場合は全スタックが対象です。

sh check_stach_error.sh
=======================================
[example-stack]
[2020-04-02T03:59:51.809Z] DELETE_FAILED : monitor : The following resource(s) failed to delete: [LambdaPermission].
[2020-04-02T03:59:47.300Z] DELETE_FAILED : LambdaPermission : User: arn:aws:iam::XXXXXXXXXX:user/user-0000000000 is not authorized to perform: lambda:RemovePermission on resource: arn:aws:lambda:ap-northeast-1:XXXXXXXXXX:function:monitor-Lambda-000000000000 (Service: AWSLambda; Status Code: 403; Error Code: AccessDeniedException; Request ID: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX)
=======================================

あとがき

チェックするスクリプトがあると楽かもしれないとは思っていたものの、管理コンソールさえ開いてしまえばすぐじゃないかと思って手をつけていませんでした。

きっかけはGitHub Actionsです。意外と実行ログの開閉に手間どるためにエラーが発生しているのか確認し難くなり、スクリプト作成に背を押された形です。

求められているポリシー部分に着色も考えていましたが、結局全文読むことと、ポリシー部分は判別しやすいこともあり、そのままにしています。管理コンソールからエラーを確認する手間を省きたい人にはおすすめです。