使用Powershell Set-AzureRmWebApp函数设置Azure Function应用设置失败并显示Bad Request错误

时间:2019-03-01 23:38:31

标签: powershell azure-functions devops

我想从Powershell设置现有Azure函数的应用程序设置。我有以下脚本

inline fun <reified T : Any, reified R : Any> passFn(someFn: KFunction1<T, R>) {
    //consume someFn
}

运行此脚本将返回此错误

  

Set-AzureRmWebApp:操作返回了无效的状态码   '错误的请求'       在C:\ Users ****** \ Source \ Repos ******* \\创建Azure基础结构.ps1:101 char:1       + Set-AzureRmWebApp -ResourceGroupName $ AzureResourceGroupName -AppSett ...       + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~           + CategoryInfo:CloseError :( :) [Set-AzureRmWebApp],DefaultErrorResponseException           + FullyQualifiedErrorId:Microsoft.Azure.Commands.WebApps.Cmdlets.WebApps.SetAzureWebAppCmdlet

如果我从$ FunctionSettings中删除了WEBSITE_CONTENTAZUREFILECONNECTIONSTRING和WEBSITE_CONTENTSHARE,则脚本可以成功运行,但是由于这些属性是必需的,因此我在Azure UI中收到错误消息。

我该如何解决?

2 个答案:

答案 0 :(得分:0)

您使用了哪个计划?据我所知,仅动态功能(消耗计划)才需要WEBSITE_CONTENTAZUREFILECONNECTIONSTRING和WEBSITE_CONTENTSHARE。 即使您的功能在App Service计划中,如果您仍要修改它们,则可以参考本教程并通过代码对其进行修改: https://github.com/Azure/azure-libraries-for-net/blob/0ada4e3ea2055f6a2aa61e71c605923b9e9ecbab/src/ResourceManagement/AppService/FunctionAppImpl.cs#L145

答案 1 :(得分:0)

我知道1年过去了,您可能已经解决了问题,但是今天在我创建PS脚本时,我遇到了同样的问题。就我而言,设置的顺序就可以解决问题。将WEBSITE_CONTENTSHARE首先放在您的hastable上。

    $AzFunctionAppSettings = @{}
    $AzFunctionAppSettings = @{
        APPINSIGHTS_INSTRUMENTATIONKEY = $AppInsightsKey
        APPLICATIONINSIGHTS_CONNECTION_STRING = $AppInsightsConString
        FUNCTIONS_EXTENSION_VERSION = "~1"
        FUNCTIONS_WORKER_RUNTIME = "dotnet"
        WEBSITE_CONTENTSHARE = "****"
        WEBSITE_CONTENTAZUREFILECONNECTIONSTRING = "***"
    }