我已经使用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作为操作系统。
答案 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