如何在Azure Web应用程序中设置节点版本?

时间:2019-08-23 20:55:21

标签: azure azure-web-sites

我已经使用terraform创建了Azure Web App,但是其中包含错误版本的NodeJS。

resource "azurerm_app_service_plan" "app-plan" {
  name                = "${var.prefix}-app-plan"
  resource_group_name = var.resource_group_name
  location            = var.resource_group_location

  sku {
    tier = "Free"
    size = "F1"
  }
}

#azurerm_app_service doesn't support creating Node.JS 8.10 apps
#https://github.com/terraform-providers/terraform-provider-azurerm/issues/4144
resource "azurerm_app_service" "app-service" {
  name                = "${var.prefix}-app"
  resource_group_name = var.resource_group_name
  location            = var.resource_group_location
  app_service_plan_id = azurerm_app_service_plan.app-plan.id
}

我尝试更新configuration using the rest api

{
  "properties": {
    "nodeVersion": "8.10"
  }
}

并更新application settings using the rest api

{
  "properties": {
    "WEBSITE_NODE_DEFAULT_VERSION": "8.10"
  }
}

但是,当我运行控制台时,它仍然显示node --version v0.10.40

当我运行env时,似乎PATH变量不正确。

节点{8}在D:\Program Files (x86)\nodejs\8.10.0的计算机上确实存在

如何从其余api更新路径?

还有其他选择吗?

我的偏好是terraform> az cl> rest api

注意: 请记住,当我在门户中创建Web应用程序时,选择Node 8.10会迫使我选择Windows作为操作系统。

2 个答案:

答案 0 :(得分:0)

在门户中,它指定Node 8.10作为运行时堆栈。

az cli指定8.10作为运行时:

az webapp list-runtimes|grep "8.10"
"node|8.10",

但是,正如您在问题中看到的那样,安装的版本为8.10.0

如果我们在应用程序设置中使用terraform进行设置,这(不直观)将设置正确的节点版本:

resource "azurerm_app_service" "app-service" {
  name                = "${var.prefix}-app"
  resource_group_name = var.resource_group_name
  location            = var.resource_group_location
  app_service_plan_id = azurerm_app_service_plan.app-plan.id

  app_settings = {
    #The portal and az cli list "8.10" as the supported version.
    #"8.10" doesn't work here!
    #"8.10.0" is the version installed in D:\Program Files (x86)\nodejs
    "WEBSITE_NODE_DEFAULT_VERSION" = "8.10.0"
  }
}

答案 1 :(得分:0)

在site_config下,linux_fx_version应设置为“ NODE | 8.10”

我已经使用以下命令将其与节点10.14配合使用:

site_config {
    linux_fx_version = "NODE|10.14"
  }

您还可以在以下位置查看Azure Web应用程序的不同示例: https://github.com/terraform-providers/terraform-provider-azurerm/tree/master/examples/app-service