静的コンテンツを保存する BLOB ストレージと CDN エンドポイントがあります。app.js ファイルが変更されたため、更新したいのですが、このファイルを BLOB に書き込むと、CDN はまだ古い app.js ファイルを提供します。app.js ファイルを更新するにはどうすればよいですか? または、キャッシュが終了しないまで待つ必要がありますか?
6 に答える
有効期限が切れる前にキャッシュ オブジェクトを更新することはできません。
https://msdn.microsoft.com/en-us/library/azure/gg680303.aspxから:
オブジェクトを Azure コンテンツ配信ネットワーク (CDN) にキャッシュする必要がなくなった場合は、次のいずれかの手順を実行できます。
Azure BLOB の場合、パブリック コンテナーから BLOB を削除できます。
コンテナをパブリックではなくプライベートにすることができます。詳細については、「コンテナーと BLOB へのアクセスを制限する」を参照してください。
Azure 管理ポータルを使用して、CDN エンドポイントを無効化または削除できます。
ホストされたサービスを変更して、オブジェクトのリクエストに応答しないようにすることができます。
CDN に既にキャッシュされているオブジェクトは、オブジェクトの有効期限が切れるまでキャッシュされたままになります。有効期限が切れると、CDN は、CDN エンドポイントがまだ有効であり、オブジェクトに引き続き匿名でアクセスできるかどうかを確認します。そうでない場合、オブジェクトはキャッシュされなくなります。
現在、Azure CDN で使用できる明示的な "パージ" ツールはありません。
他の回避策には、可能であれば、偽のクエリ文字列または新しいファイル名のいずれかを使用することが含まれます。ここを参照してください: https://stackoverflow.com/a/8773202/908336
かなり前に質問されました。私にとって有用であることが証明された方法を更新したかっただけです。マイクロソフトが推奨しています。基本的に、Blob Storage にキャッシュ制御ヘッダーを設定する必要があります。値「public, max-age=3600」でキャッシュ制御ヘッダーを設定できます。これにより、ファイルが約 1 時間キャッシュされます。
https://azure.microsoft.com/en-us/documentation/articles/cdn-manage-expiration-of-blob-content/
CDN はシンプルです。Cache-Control
要求が届くと、オリジン (この場合は BLOB ストレージ) からコンテンツを取得し、ヘッダーに基づいてしばらくの間キャッシュします。キャッシュの有効期限が切れるまで、同じコンテンツを配信し続けます。
CDN に何かを早期に期限切れにするように指示する方法はありません。
他の人は、これに対処する方法 (クエリ文字列パラメーターなど) について、より役立つアドバイスに飛びつくかもしれませんが、CDN のキャッシュがどのように機能するかを簡単に説明したかっただけです。
今すぐこれを行う唯一の方法は、Azure サポートに連絡することです。Azure サポートは、Verizon EdgeCast でサポート チケットを開いて CDN からファイルを削除し、その時点で更新します。Azure の基本サポート プランでは、このプロセス全体に約 8 時間かかります。これは良い解決策ではありません。プログラムで CDN から何かを削除できるように更新してくれることを切に願っています。これは、彼らが欠けている基本的な機能のようです。私が今思う最善の策は、クエリ文字列のステータスを有効にしてから、更新時にそのクエリ文字列を更新することです。/js/custommix.js?version=1 のように js ファイルに対してこれを行います。次に、それらを更新する必要があるときに、構成から新しいバージョンを追加します。
http://azure.microsoft.com/en-us/blog/best-practices-for-the-windows-azure-content-delivery-network/
Windows Azure CDN のコンテンツを消去または無効にするにはどうすればよいですか?
1.4 の時点では、パージ機能は使用できません。この機能は開発中です。最適な鮮度管理は、このドキュメントと MSDN の Windows Azure CDN ドキュメントで説明されているように、適切なキャッシュ有効期限ヘッダーを設定することです。
Azure の新しい管理ポータルからコンテンツを消去できます。
デフォルトの有効期限は 7 日です。
から: http://msdn.microsoft.com/en-us/library/azure/gg680306.aspx
Azure CDN キャッシュの恩恵を最も受ける BLOB は、有効期限 (TTL) 期間中に頻繁にアクセスされる BLOB です。BLOB は TTL 期間キャッシュに保持され、その時間が経過すると BLOB サービスによって更新されます。その後、プロセスが繰り返されます。
TTL を制御するには、次の 2 つのオプションがあります。
デフォルトの TTL である 7 日間を使用して、キャッシュ値を設定しないでください。
Put Blob、Put Block List、または Set Blob Properties 要求で x-ms-blob-cache-control プロパティを明示的に設定するか、Azure マネージド ライブラリを使用して BlobProperties.CacheControl プロパティを設定します。このプロパティを設定すると、BLOB の Cache-Control ヘッダーの値が設定されます。ヘッダーまたはプロパティの値は、適切な値を秒単位で指定する必要があります。たとえば、最大キャッシュ期間を 1 年に設定するには、要求ヘッダーを x-ms-blob-cache-control: public, max-age=31556926 として指定できます。キャッシュ ヘッダーの設定の詳細については、HTTP/1.1 仕様を参照してください。