Help us understand the problem. What is going on with this article?

CloudFrontで~を含むInvalidation

More than 3 years have passed since last update.

これまで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
< X-Cache: Miss from cloudfront

# curl --verbose http://HOGEHOGE.cloudfront.net/sample/ 1> /dev/null
< X-Cache: Miss from cloudfront

# curl --verbose http://HOGEHOGE.cloudfront.net/sample/~/ 1> /dev/null
< X-Cache: Miss from cloudfront

# curl --verbose http://HOGEHOGE.cloudfront.net/sample/~/sample2 1> /dev/null
< X-Cache: Miss from cloudfront

キャッシュが行われていることを確認

# curl --verbose http://HOGEHOGE.cloudfront.net/ 1> /dev/null
< X-Cache: Hit from cloudfront

# curl --verbose http://HOGEHOGE.cloudfront.net/sample/ 1> /dev/null
< X-Cache: Hit from cloudfront

# curl --verbose http://HOGEHOGE.cloudfront.net/sample/~/ 1> /dev/null
< X-Cache: Hit from cloudfront

# curl --verbose http://HOGEHOGE.cloudfront.net/sample/~/sample2 1> /dev/null
< X-Cache: Hit from cloudfront

CloudFrontでInvalidationを実施

Object Pathsに /sample/~/* を指定してInvalidation

Invalidation後の確認

削除していないパスを確認
# curl --verbose http://HOGEHOGE.cloudfront.net/ 1> /dev/null
< X-Cache: Hit from cloudfront

削除対象のパスを確認(/sample/*)
# curl --verbose http://HOGEHOGE.cloudfront.net/sample/ 1> /dev/null
< X-Cache: Miss from cloudfront

# curl --verbose http://HOGEHOGE.cloudfront.net/sample/~/ 1> /dev/null
< X-Cache: Miss from cloudfront

# curl --verbose http://HOGEHOGE.cloudfront.net/sample/~/sample2 1> /dev/null
< X-Cache: Miss from cloudfront

結果

今回のCloudFrontの更新によりパスに ~ を含んでいてもInvalidationが可能になりました。
これでミドルウェアの仕様上 ~ を含んでいた場合でも使用しやすくなったと思います。

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away