Azure Front Doorのキャッシュを更新する
Azure Front Doorにはコンテンツキャッシュの機能があります。
Azure Front Door でのキャッシュ(公式サイト)
キャッシュの機能を利用する事により、バックエンドプール側の負荷を下げたり、レスポンスタイムの向上が期待できます。
キャッシュ自体は、アクセスされたURLパスを保持します。同じURLに対して2回目のアクセスからキャッシュが使用される動きとなります。
一方で、Front Door自体はバックエンドプール側のサイト更新を能動的に検知する事はありません。
Front Doorでコンテンツがキャッシュされてしまうと、WEBサーバ側でサイトが更新しても反映されない事態が起こります。
Front Doorでキャッシュを有効にしていた場合、Webサイトの更新に合わせて、FrontDoor側のキャッシュクリアを行う事が必要になります。
今回は、Azure Front Doorのキャッシュクリア方法について確認してみました。
Azure Front Doorのキャッシュ期間指定についてはこちら。
Azure Froot Doorのキャッシュはクリアだけができる
Azure Front DoorのキャッシュをAzure Portal上で更新する事は出来ません。その為今回はPower Shellを使って実施してみました。
キャッシュを更新するには、以下のようにサイト更新後にキャッシュクリアを行う必要があります。
-
- サイト更新
- キャッシュクリア
- サイトへのアクセス
Front Doorのキャッシュクリアは、Remove-AzFrontDoorContentコマンドを使用します。
今回はサンプルで以下のようなPowerShellを作成してみました。(GitHubにも公開しています。)
#Front DoorのキャッシュクリアをするPower Shell
param (
[String] [Parameter(Mandatory=$true)] $ResourceGroupName ,
[String] [Parameter(Mandatory=$true)] $FrontDoorName ,
[String] [Parameter(Mandatory=$true)] $ContentPath
)
Remove-AzFrontDoorContent -ResourceGroupName $ResourceGroupName -Name $FrontDoorName -ContentPath $ContentPath
| where Category == “FrontdoorWebApplicationFirewallLog"
|
以下のように実行して頂く事で、キャッシュのクリアが可能です。
c:\FrontDoorのキャッシュをクリアする.ps1 -ResourceGroupName “リソースグループ名" -FrontDoorName “フロントドア名" -ContentPath “削除するパス (例:/*)" |
サイト更新後に、今回のようなPower Shellを利用してキャッシュクリアする事により、更新したけど反映されないという事が防げるかと思います。
※マイクロソフトサポート様に色々ご教授頂きながら進めさせて頂きました。本当に有難うございます。