Azure:Powershell:Set-AzureRmWebApp:如何设置" alwaysOn"属性

时间:2016-11-24 21:18:49

标签: azure azure-resource-manager azure-powershell

我正在运行Powershell 5并尝试使用 Set-AzureRmWebApp (而不是Set-AzureResource)来操作我的Azure WebApp对象来设置" Always On"网络应用的属性。

我的基本代码段以一个名为" myWebApp" 的正在运行的网络应用开始,如下所示:

$name = "myWebApp"
$resourceGroupName = "myResourceGroup"
$app_settings = @{"WEBSITE_LOAD_CERTIFICATES"="*";"CommonDatabase"="Common";"WEBSITE_NODE_DEFAULT_VERSION"="0.10.32"}

$result1 = Set-AzureRmWebApp -ResourceGroupName $resourceGroupName -AppSettings $app_settings -Name $name
$result2 = Set-AzureRmResource -ResourceGroupName $resourceGroupName  -ResourceType Microsoft.Web/sites/config -ResourceName $this.name -PropertyObject $propertiesObject -ApiVersion 2015-08-01 -Force

第一个 Set-AzureRmWebApp 语句有效。它设置 $ app_settings 中的所有变量,并且它们在 myWebApp 的Azure门户刀片中可见。

我尝试使用Set-AzureRmWebApp在 $ app_settings 中使用" Always On" = 作为属性,它出现在App Settings子目录中 - " myWebApp"属性中的列表在Azure门户刀片上,但实际属性" Always On"在一般设置仍然关闭。

我在另一个网站上看到使用 Set-AzureRmResource 会起作用,所以我尝试了它,但它失败了。

在Powershell中我需要做什么才能在Azure WebApp的常规设置中设置属性,特别是"始终开启"

1 个答案:

答案 0 :(得分:8)

如果WebApp处于免费服务计划层,则不支持

"始终打开" 。如果WebApp处于免费套餐中,请扩展应用服务计划。有关如何扩展应用服务计划的更多信息,请参阅document。请尝试使用sharbag提到的解决方案。它对我有用,我也检查了天蓝色门户网站的运行结果。解决方案中的剪切代码如下:

   $ResourceGroupName = 'Your Group Name'

   $WebAppName = 'Your WebApp Name'

   $WebAppPropertiesObject = @{"siteConfig" = @{"AlwaysOn" = $true}}

    $WebAppResourceType = 'microsoft.web/sites'

    $webAppResource = Get-AzureRmResource -ResourceType $WebAppResourceType -ResourceGroupName $ResourceGroupName -ResourceName $WebAppName

    $webAppResource | Set-AzureRmResource -PropertyObject $WebAppPropertiesObject -Force

enter image description here

如果WebApp处于免费套餐服务计划中,当我们尝试运行PowerShell命令以启用" Always On" 时,我们将收到以下错误消息。

enter image description here