Azure Front Doorのタイムアウト値変更

 

Azure Front DoorとApplication Gatewayの構成で試していた所、Application Gatewayのタイムアウト値を60秒に変更しても30秒でタイムアウトになってしまうという事がありました。

      • Application Gatewayのタイムアウト値が30秒以内の場合はApplication Gatewayのタイムアウトエラーが表示される。
      • Application Gatewayのタイムアウト値が30秒より大きい場合はAzure Front Doorのタイムアウトエラーが表示される。

この状態からFront Doorのタイムアウト値も併せて変更が必要というではという事で確認してみました・・・ですがAzure Portal上で確認しても、それらしい設定値はありませんでした。

という事で今回は、Azure Front Doorのタイムアウト値の確認から設定変更までを試してみました。

※なお、Application Gatewayのタイムアウト値はバックエンドに対するタイムアウト値になります。フロントエンド側ではありません。

1.Application Gatewayのバックエンドに対するタイムアウト値設定

Azure Front Doorの前にApplication Gatewayのバックエンドに対するタイムアウト値設定を確認します。こちらはHTTP設定にあります。デフォルト20秒になっています。

2.Azure Front Doorのバックエンドに対するタイムアウト値確認

Azure Front Doorのバックエンドに対するタイムアウト値設定はAzure Portal上では確認できませんでした。Power Shellを使って確認してみました

Get-AzFrontDoorで確認しても見つからなかった為、色々調べていた所BackendPoolsSettingに含まれることが分かりました。こんな感じで確認してみました。

#FrontDoorの設定確認用Power Shell

$frontDoorName = “Front Door名”

$frontDoor = Get-AzFrontDoor -Name $frontDoorName
$frontDoor.BackendPoolsSetting 

実際に確認してみると、以下のように30秒であることが確認出来ました。

EnforceCertificateNameCheck :

SendRecvTimeoutInSeconds : 30
Id :
Name :
Type : 

調べてみた所、SendRecvTimeoutInSecondsがバックエンドに対するタイムアウト値に該当するようです。

3.Azure Front Doorのバックエンドタイムアウト値設定

Azure Front Doorのバックエンドに対するタイムアウト値設定をPower Shellを使ってやってみました。

今回は設定変更前後で値を取得しています。

#FrontDoorのタイムアウト値を変更するPower Shell
$frontDoorName = “Front Door名”

#設定前の値確認
$frontDoorConf = Get-AzFrontDoor -Name $FrontDoorName
$frontDoorConf.BackendPoolsSetting

#設定変更実施
$frontDoorConf.BackendPoolsSetting.SendRecvTimeoutInSeconds = 120
$frontDoorConf | Set-AzFrontDoor

#設定後の値確認
$frontDoorConfAfter = Get-AzFrontDoor -Name $FrontDoorName
$frontDoorConfAfter.BackendPoolsSetting

実際に設定結果(抜粋)を確認すると、以下の通り設定出来ている事が確認出来ました

#設定前

SendRecvTimeoutInSeconds : 30

#設定後

SendRecvTimeoutInSeconds : 120

実際にアクセスして試してみた所、Front Doorタイムアウトが表示されなくなり、設定がうまく出来ている事が確認出来ました。

Azure Front Doorのバックエンド正常性監視はこちらで試しております。

Azure Front Doorのバックエンド正常性監視