首页 > 解决方案 > 使用 Powershell Set-AzureRmWebApp 函数设置 Azure 函数应用程序设置失败并出现错误请求错误

问题描述

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

$FunctionSettings = @{     
    "WEBSITE_CONTENTAZUREFILECONNECTIONSTRING" = "*******";    
    "WEBSITE_CONTENTSHARE" = "TestFunction123";
    "AzureWebJobsStorage" = "*******";    
    "FUNCTIONS_EXTENSION_VERSION" = "~2";
    "FUNCTIONS_WORKER_RUNTIME" = "dotnet";       
    "WEBSITE_NODE_DEFAULT_VERSION" = "10.14.1";    
}

Set-AzureRmWebApp -ResourceGroupName "RGN" -AppSettings $FunctionSettings -Name "TestFunction"

运行此脚本会返回此错误

Set-AzureRmWebApp:操作在 C:\Users******\Source\Repos*******\Create Azure infrastructure.ps1:101 char:1 + Set-AzureRmWebApp 处返回了无效状态代码“BadRequest” -ResourceGroupName $AzureResourceGroupName -AppSett ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : CloseError: (:) [Set-AzureRmWebApp], DefaultErrorResponseException + FullyQualifiedErrorId : Microsoft.Azure .Commands.WebApps.Cmdlets.WebApps.SetAzureWebAppCmdlet

如果我从 $FunctionSettings 中删除 WEBSITE_CONTENTAZUREFILECONNECTIONSTRING 和 WEBSITE_CONTENTSHARE,则脚本会成功运行,但我会在 Azure UI 中收到错误,因为这些属性是必需的。

我怎样才能解决这个问题?

标签: powershellazure-functionsdevops

解决方案


我知道 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 = "***"
    }

推荐阅读