从PowerShell清除Azure Web应用程序配置设置

时间:2018-01-02 21:03:15

标签: powershell azure azure-powershell

我正在尝试使用Azure PowerShell清除Web应用程序的站点配置上的所有应用程序设置和连接字符串。似乎API甚至不支持这一点。

我尝试过使用:

Set-AzureRmWebApp -ResourceGroupName $resourceGroupName -Name $siteName -AppSettings @{}

但是这会引发错误,因为字典是空的。

我尝试过使用此命令:

Set-AzureRmResource -ResourceGroupName $resourceGroupName -ResourceName "$siteName/appsettings" -ResourceType "Microsoft.Web/sites/config" -ApiVersion 2016-08-01 -Properties @{}

但我收到错误<Error><Message>The requested resource does not support http method 'GET'.</Message></Error>

我也试过这个:

Invoke-AzureRmResourceAction -ResourceGroupName $resourceGroupName -ResourceName "$siteName/appsettings" -ResourceType "Microsoft.Web/sites/config" -ApiVersion 2016-08-01 -Action "Post" -Parameters @{}

但我又得到了这个错误:

Cannot validate argument on parameter 'Parameters'. The argument is null, empty, or an element of the argument collection contains a null value. Supply a collection that does not contain any null values and then try the command again.

是否有另一种清除所有appsettings的方式?

过去有一种方法可以使用Get-AzureRmWebApp检索webapp,在本地编辑它,然后使用Set-AzureRmWebApp发布对象,实际上帮助文档仍然说有一个-WebApp参数,但它没有最新的Azure PowerShell中存在更长的时间。

1 个答案:

答案 0 :(得分:1)

我在我的实验室测试,-AppSettings不允许空哈希值。我建议你可以传递一个值。它将删除所有原始应用设置并创建新密钥对。如下所示:

$appsettings=@{
    'test'="test"
}

Set-AzureRmWebApp -ResourceGroupName $resourceGroupName -Name $siteName -AppSettings $appsettings

您可以使用Azure Cli 2.0删除appsettings的另一种解决方案。例如:

az webapp config appsettings delete -n shuicli -g shuiapp --setting-names test shui

更新

您还可以使用API删除应用程序设置。

PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config/appsettings?api-version=2016-08-01