Hubot を使って CloudFront の Distribution 一覧・Invalidation 作成を行う hubot-cloudfront

Hubot を使って Amazon CloudFront の Distribution (配信) 一覧取得 と、Invalidation (無効化) 作成 を行うスクリプトを公開しました。
npm install --save hubot-cloudfrontDistribution (配信) 一覧取得
Distribution の ID、ドメイン、ステータス、コメント、進行中の Invalidation バッチの件数 (あれば) が取得できます。
ショートカットにも対応しています
Invalidation (無効化) 作成
Distribution の指定は ID のほか、Distribution 一覧の連番インデックス (ID の前の 0 起点の整数) でも指定できます。
ショートカット
Invalidation の進捗を1分ごとに確認して、完了していたら教えてくれます。
Invalidation (無効化) 一覧
Distribution ID またはインデックスを指定して Invalidation の一覧を取得します。
ショートカット
なぜ作ろうと思ったのか
我ながら、普通に便利なスクリプトなのですが、もともとは CI プロセスの中から行おうとして、ライブラリが期待通りに動かなかったので、このスクリプトを作成しました。
KAIZEN platform で開発している GUI エディターは、以前発表したとおり、Middleman で開発しています。
資材は Amazon S3 にホスティングされており、一部のファイルは Amazon CloudFront で CDN 配信されています。
Origin となる Amazon S3 バケットへのアップロードは middleman-sync を使用しており、その次に middleman-cloudfront を使って Invalidation を作成しようとしました。
この設定で、普通に filter にマッチする /javascripts/editor-inner.js の Invalidation を作成してほしいのですが、なぜか /editor-inner.js の Invalidation を作成します。
また、Invalidation の進捗は、AWS のダッシュボードに入って、都度確認 & 配信ファイルの中に含まれる Git のコミットハッシュをリロードして確認しており、とても面倒でした。
そこで HipChat にメッセージを飛ばす、簡単なシェルスクリプト を作成し、以下の様に circle.yml に設定しました。
この設定で、シェルスクリプトにより発言された命令をハンドリングし、Hubot が Invalidation を作成する様になりました。
関連記事
2014-05-16
2014-06-13
2014-06-09