我目前正在构建一个脚本来自动化创建Azure Web应用程序。前端内置在react中并且可以很好地部署。后端是使用node构建的,发布后不会运行。我认为默认情况下,New-AzWebApp创建一个.net Windows运行时环境,并且我想要一个Linux node.js环境。我需要知道如何在一个天蓝色的powershell脚本中设置它。
创建应用后,我已经尝试过更改应用设置。通过Set-AzWebApp将WEBSITE_NODE_DEFAULT_VERSION更改为10.16.3
New-AzWebApp -Name backend$webappname -Location $location -AppServicePlan $webappname -ResourceGroupName discoverTest$workItemId `
这将创建应用程序,但是当文件上传后,该应用程序将无法运行。我认为我需要正确的运行时环境,但我不知道如何设置它。
答案 0 :(得分:0)
以下是在Azure中创建新的Web应用的示例定义命令:
New-AzWebApp
[-ResourceGroupName] <String>
[-Name] <String>
[-Location] <String>
[[-AppServicePlan] <String>]
[[-SourceWebApp] <PSSite>]
[[-TrafficManagerProfile] <String>]
[-EnableContainerContinuousDeployment]
[-IgnoreSourceControl]
[-IgnoreCustomHostNames]
[[-AppSettingsOverrides] <Hashtable>]
[[-AseName] <String>]
[[-AseResourceGroupName] <String>]
[-IncludeSourceWebAppSlots]
[-AsJob]
[-DefaultProfile <IAzureContextContainer>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
-AseName
是可用于设置环境的应用程序服务环境。
参考:
https://docs.microsoft.com/en-us/azure/app-service/environment/intro
https://docs.microsoft.com/en-us/azure/app-service/app-service-web-app-cloning
希望有帮助。
答案 1 :(得分:0)
首先,请确保您的资源组中有一个 Linux 应用服务计划。并参见Linux上Azure应用服务中的Supported Versions of Node.js,可能不支持10.16.3
。
然后您可以尝试以下命令,我的示例使用10.14
node.js版本。
#Create a Linux web app
New-AzWebApp -ResourceGroupName <ResourceGroupName> -Name <web-app-name> -AppServicePlan <linux-app-service-plan-name>
#set it with node.js 10.14
$config = Get-AzResource -ResourceGroupName <ResourceGroupName> -ResourceType Microsoft.Web/sites/config -ResourceName "<web-app-name>" -ApiVersion 2018-02-01
$config.Properties.linuxFxVersion = "NODE|10.14"
$config | Set-AzResource -ApiVersion 2018-02-01 -Force