Azure functions 使用PowerShell在免费应用程序服务计划中创建函数

Azure functions 使用PowerShell在免费应用程序服务计划中创建函数,azure-functions,azure-powershell,Azure Functions,Azure Powershell,如何在具有“免费”SKU的应用程序服务计划中创建Azure功能 New AzFunctionApp似乎默认为alwaysOn函数,免费SKU不支持该函数。过去是-Properties@{alwaysOn=$False}起了作用,但现在已经不可用了。尝试了-AppSettings,但没有成功。不幸的是,在Powershell中创建AlwaysOn=false的函数应用程序的能力存在漏洞。更简单的选择是使用ARM模板,该模板可以按照您想要的方式正常工作 但是,如果您想坚持使用ps cmdlet,作为

如何在具有“免费”SKU的应用程序服务计划中创建Azure功能


New AzFunctionApp
似乎默认为alwaysOn函数,免费SKU不支持该函数。过去是
-Properties@{alwaysOn=$False}
起了作用,但现在已经不可用了。尝试了-AppSettings,但没有成功。

不幸的是,在Powershell中创建AlwaysOn=false的函数应用程序的能力存在漏洞。更简单的选择是使用ARM模板,该模板可以按照您想要的方式正常工作

但是,如果您想坚持使用ps cmdlet,作为一种解决方法,您可以执行以下操作

  • 分别使用“基本”SKU创建“应用服务计划”
  • 通过将上面创建的计划作为参数传递给
    New AzFunctionApp
    ,创建功能应用程序。这将一直是真的
  • 将函数应用程序更新为AlwaysOn=false
  • 将应用程序服务计划更新为“免费”层
  • 下面是执行上述步骤的PS命令示例,请相应地更新参数

    New-AzAppServicePlan -ResourceGroupName "myRGName" -Name "myFuncAppName" -Location "West US"  -Tier "Basic"
    
    New-AzFunctionApp -ResourceGroupName "myRGName" -Name "myFuncAppName" -PlanName "myFuncAppName" -StorageAccountName "myStorageName" -Runtime Dotnet # update Runtime as per your need
    
    $funcApp = Get-AzResource -ResourceType 'microsoft.web/sites' -ResourceGroupName 'myRGName' -ResourceName 'myFuncAppName'
    $funcApp | Set-AzResource -PropertyObject @{"siteConfig" = @{"AlwaysOn" = $false}} -Force
    
    Set-AzAppServicePlan -Name 'myFuncAppName' -ResourceGroupName 'myRGName' -Tier Free -WorkerSize Small
    

    顺便说一句,使用版本3创建PowerShell 7函数不起作用。指出它不受支持,指向一个页面,该页面将此组合列为受支持的组合。我询问的原因是,它对我有效:
    New AzFunctionApp-ResourceGroupName“myRGName”-Name“myFuncAppName”-PlanName“myFuncAppName”-StorageAccountName“MyToragename”-Runtime Powershell
    开始了,不使用-RuntimeVersion:
    New-AzFunctionApp-ResourceGroupName$ResourceGroupName-Name$FunctionName-FunctionsVersion 3-Runtime Powershell-RuntimeVersion 7-StorageAccountName$StorageAccountName-Location WestEurope时工作
    错误:不支持Windows功能版本3中的Powershell版本7。有关支持的语言,请访问“”。是否可以尝试运行时版本为“7.0”?当我没有指定它时,它会显示“未指定RuntimeVersion。将Powershell的默认运行时版本设置为“7.0”。”。所以我试着用“7.0”来代替7,结果成功了:)我发誓这是我第一件累的事。可能不起作用,因为我没有作为字符串通过。对不起,对不起。