これまでCloudFrontを利用している際に ~
を含んだパスでInvalidation
がうまくいかない現象*1が有りました。
本日(5/22)にCloudFrontのアップデートによりワイルドカード( * )利用したInvalidation
が可能になったので、 ~
を含むパスも削除出来るかテストを実施しました。
*1:CloudFrontが準拠しているRFC1738の仕様 詳細はこちら
準備
環境
- apacheやnginx、IISを入れたサーバ
- curlコマンドを叩くPC
- AWSアカウント
CloudFrontの準備
テスト用に以下のパスでページを準備する
- /
- /sample/
- /sample/~/
- /sample/~/sample2
検証
CloudFrontへキャッシュをさせる
初回の為 Miss from cloudfront
になることを確認
# curl --verbose http://HOGEHOGE.cloudfront.net/ 1> /dev/null /dev/null /dev/null /dev/nullキャッシュが行われていることを確認
# curl --verbose http://HOGEHOGE.cloudfront.net/ 1> /dev/null /dev/null /dev/null /dev/nullCloudFrontでInvalidationを実施
Object Pathsに /sample/~/* を指定してInvalidation
Invalidation後の確認
削除していないパスを確認 # curl --verbose http://HOGEHOGE.cloudfront.net/ 1> /dev/null /dev/null /dev/null /dev/null結果
今回のCloudFrontの更新によりパスに
~
を含んでいてもInvalidation
が可能になりました。
これでミドルウェアの仕様上~
を含んでいた場合でも使用しやすくなったと思います。元記事はこちら