LoginSignup
0
0

More than 3 years have passed since last update.

CloudFrontキャッシュを削除状況をAWS CLIでチェックするシェルスクリプト

Posted at

以前「CloudFrontキャッシュを削除するシェルスクリプトを書いてみた。」という記事を書きましたが、Invalidationはすぐ完了しない場合がもあるので処理状況をチェックすることがあるわけですが、それも AWS CLI でチェックすればいいやということで、シェルスクリプト書いたのでまとめます。

概要

AWS CLI で CloudFrontキャッシュの 削除リクエスト のステータスチェックをおこなう処理をシェルスクリプト化。
キャッシュ削除のスクリプトに組み込めないかなと思ったけど、チェックリクエストだけ何回かおこなう可能性があり、また、Completed ステータス判定もちょっと面倒そうだったので別スクリプトにしました。

必要な準備

まずは AWS CLI の実行環境が必要なので、前回の記事の内容をやってみてください。

CloudFrontキャッシュを削除するシェルスクリプトを書いてみた。

状況チェックに必要なもの

aws cloudfront get-invalidation コマンドを叩くわけですが、引数に Distribution IDInvalidation ID が必要になります。(AWS環境を複数持っている人は profile なども必要になります。)
Invalidation IDCreate Invalidation した時に発行されるIDです。

ちなみに aws cloudfront get-invalidation で、Invalidation ID の引数パラメータは id という名称になります。

目的のシェルスクリプトを書く

第1引数に Invalidation ID を受け取れる想定

#!/bin/bash
dist_id="ABCDEFGHIJKL"
prof_name="hogehoge"
id="$1"
echo "CloudFront invalidation status check ..."
echo "invalidation-id:$id, distribution-id:$dist_id, profile=$prof_name"
echo -e `aws cloudfront get-invalidation --distribution-id $dist_id --id $id --profile $prof_name | jq -r '.Invalidation | {id: .Id, status: .Status}'`

ちなみに Invalidation ID とは、Create Invalidation した時にAWSから自動的に払い出されるIDのことです。
(↓これです)
AWS_CloudFront_Management_Console.jpg

実行してみる

完了していない時のステータス

完了していない時のステータス
❯ ./checkStatusInvalidation.sh LKJIHGFEDCBA
CloudFront invalidation status check ...
id:ABCDEFGHIJKL, distribution-id:ELKJIHGFEDCBA, profile=hogehoge
{ "id": "ABCDEFGHIJKL", "status": "InProgress" }

完了している時のステータス

完了している時のステータス
❯ ./checkStatusInvalidation.sh LKJIHGFEDCBA
CloudFront invalidation status check ...
invalidation-id:ABCDEFGHIJKL, distribution-id:ELKJIHGFEDCBA, profile=hogehoge
{ "id": "ABCDEFGHIJKL", "status": "Completed" }

※AWSからのレスポンス(JSON)上、Invalidation ID のキー名は id と表記されています。

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