content-refresh

CDN上のキャッシュを明示的な日時で無効化します。日時はGMTのタイムスタンプで指定することができ、それ以降に新しいリクエストを受け付けると、再検証がなされたオブジェクトか、オブジェクトの新しいコピーが配信されます。

"type"パラメーター(必須)はエッジサーバの振る舞いを指定します。valueにはオブジェクトを無効化することになる時間を設定します。

  • epoch – 未来のエポック秒を指定します。エポック秒とは、UNIXシステムにおいて計算される1970年1月1日からの経過時間の秒数を示す整数値です。例: 1388534400
  • date-time – ISO8601に基づき未来の日時を示す文字列をGMT時間で指定します。"YYYY-MMDDThh:mm:ssZ"の形式です。例: 2014-01-01T12:00:00Z
  • date – ISO8601に基づき未来の日付を示す文字列をGMT時間で指定します。時刻は00:00が指定されます。"YYYY-MM-DD"の形式です。例: 2014-01-01
  • natural – ルールが適用された直後にキャッシュを無効化します。valueは"now"の必要があります。

下記のparamsをサポートします。

  • mustRevalidate – trueかfalseを指定して下さい。
    • true – 与えられた無効化予定時刻を過ぎた後、再検証されていないコンテンツについては、キャッシュに残っている場合であってもエッジサーバから配信されることはありません。
    • false – エッジサーバがオリジンサーバからの応答を得られずオブジェクトの再検証に失敗した場合に、キャッシュに残っているコンテンツが配信される場合があります。

最終更新がIf-Modified-Sinceリクエストヘッダーに含まれるオリジナルタイムスタンプ以前のオブジェクトの場合、オリジンサーバはステータスコード304を返す可能性があることに注意して下さい。その場合、エッジサーバは以前取得したオブジェクトをキャッシュから配信し、クライアントには再検証に成功したオブジェクトが送信されます。キャッシュオブジェクトを完全にパージするには、キャッシュの消去APIを実行する必要があります。

以下の例では、サイト管理者がGMT時刻2014年1月1日水曜日00:00:00(エポック秒"1388534400")に彼らのソフトウェア・アプリケーションの新しいバージョンを公開したいと考えています。この場合、現行バージョンへのリンクをエンドユーザーへ表示されるため、午前0時に"/app/download/currentversion/*"に該当するすべてのキャッシュURLを無効化します。


       {
         "rules": [
           {
             "matches": [
               {
                 "name": "url-wildcard",
                 "value": "/app/download/currentversion/*"
               }
             ],
             "behaviors": [
               {
                 "name": "content-refresh",
                 "type": "epoch",
                 "value": "1388534400",
                 "params": {
                   "mustRevalidate" : true
                 }
               }
             ]
           }
         ]
       }
     

キャッシュの新旧混在状態を避けるため、新しいコンテンツへのリンクについて、指定された時刻になるまではオリジンサーバからのダウンロードができないような設定を検討ください。