Azureの小ネタ (改)

~Azureネタを中心に、色々とその他の技術的なことなどを~

WebAppsの常時接続をPowerShellから有効にする

タイトルどおり、備忘録です。Azure PowerShellにはピンポイントで有効にする引数がなかったので。

その1

方法はいくつかあって、Set-AzureRmResourceコマンドを使うことです。Set-AzureRmResourceは、低レベルなARMのコマンドで、そのままJSONをPUTするような形になるので、特定のコマンドが用意されてなくてもなんとかなります。JSONは、Hash形式でデータを用意しておけば、なんとなくシリアライズしてくれます。

ただし、成功・失敗が分かりにくいので、 https://resources.azure.com/ で確認しつつやるといいでしょう。

$PropertiesObject = @{
    alwaysOn = $True;
}
Set-AzureRmResource -PropertyObject $PropertiesObject -ResourceGroupName hoge -ResourceType Microsoft.Web/sites/config -ResourceName fuga/web -ApiVersion 2015-08-01 -Force

上のResourceNameの引数のfugaの部分をWebAppの名前にしてください。

その2

Get-AzureRmWebSApp でWebAppの情報を取得すると、 SiteConfig.AlwaysOn プロパティがありますので、これに Trueを設定し、Set-AzureRmWebAppで設定します。

$app = Get-AzureRmWebApp -ResourceGroupName hoge -Name fuga
$app.SiteConfig.AlwaysOn = $true
$app| Set-AzureRmWebApp

特定の引数は、Set-AzureRmWebApp直接指定できますが、オプションが増えすぎて、あまり追加されないぽいので、こういうやり方になっている気がします。

1つめは、PUT一回、2つめは、GET/PUTの2回通信が必要になるくらいですけど、まあどっちでもよいでしょう。