もがき系プログラマの日常

もがき系エンジニアの勉強したこと、日常のこと、気になっている技術、備忘録などを紹介するブログです。

コマンドからのcloudfrontのオブジェクト削除

はじめに

こんばんは。

めっちゃ簡単というか、小ネタです。

なので、下書きもありません。

やってみた

実際のコマンド

$ aws cloudfront create-invalidation --distribution-id $DISTRIBUTION_ID --paths 'パス'

今入っている現場では、jenkins経由で beanstalkにdeployを行ってます。

deploy対象のディレクトリがgitレポジトリという状況になっているので、例えばjsのオブジェクトを削除したいならば

MODIFY_JS_FILE_COUNT=`git log --name-status -n 1 --oneline | tail -n +1 | grep .js | awk '{print $1}' | grep 'M' | wc -l`
if [ $MODIFY_JS_FILE_COUNT -ne 0 ]; then
  aws cloudfront create-invalidation --distribution-id $DISTRIBUTION_ID --paths '$JS_PATH' --profile=$DEPLOY_USER
fi

みたいな感じで、編集があった場合のみ、まるっと消してます。 作り込んだら各ファイルごとに消すことも可能ですが、規模的に全体の削除にしています。

終わりに

こんな泥臭い方法しか思い浮かばなかったので、ほかにもっとスマートにやれる方法があればぜひ教えてください。。。

まじですぐ終わった。