CloudFrontでキャッシュを削除したが
パスの指定で削除できない状況があったのでメモ
CloudFrontにキャッシュされたファイルを削除するには
CloudFrontコンソール画面の[無効化]タブから
[無効化を作成ボタン]を押し削除したいファイルのパスを指定します。
この時のパスはCloudFrontコンソール画面のオリジンタブでパスを設定している場合そこが基準になります。通常はドキュメントルート以下のパス(ドメイン以下のパス、例えばexample.com/path/test.txtのファイルを削除したいのであれば/path/text.txt)を指定します。
削除できたパス指定
/css/example.css
削除できなかったパス指定
/css/*.css
説明が出ました(過去の管理画面での話)
Create Invalidationsの画面でObject pathという
テキストにオンマウスすると説明がでました。
この無効化バッチで無効化するオブジェクトのパス。パスの末尾に*ワイルドカードを指定すると、ディレクトリ内のすべてのオブジェクトなど、多量のオブジェクトを無効にすることができます。パスの途中に*を指定すると、CloudFrontはワイルドカードではなく*文字として扱います。
The paths of the objects that you want to invalidate with this invalidation batch. You can specify a * wildcard at the end of a path to invalidate muiltiple objects, for example, all of the objects in a directory. If you specify a * in the middle of a path, CloudFront treats it as a * character, not as a wildcard.
おそらく
/css/*
と指定すればよかったのかも。
Behaviorsタブでのパス指定と
同じかと思い指定しましたが少し挙動が違う気がします。
無効化の注意
月間1000件までは無料ですがそれ以降は
無効をリクエストしたパスごとに 0.005 USDかかるとのこと。(現時点では)
以下公式のリンクを随時ご確認ください。
CloudFront管理下の全てのキャッシュを削除する
CloudFront管理下の全てのキャッシュを削除する時は以下の指定をします。
/*
ファイルのバージョニング
ファイルのバージョニングでもキャッシュをクリアできるとの説明があった。
/jquery.js?v=xxxxx
みたいなものでブラウザのキャッシュがクリアできるが
CloudFrontでもクリアできるのか?試したら追記します。