使用Terraform更新Azure App Service应用程序设置时,我们收到以下错误:
{"Message":"AppSetting with name 'HEALTHCHECKS-UI_HEALTHCHECKS_0_NAME' is not allowed."}
但是,如果我们通过门户手册添加它,它完全可以正常工作:
我猜这和0
或-
有关,但我们如何摆脱这些呢?
Terraform代码非常简单,但这里有一个失败的例子:
resource "azurerm_resource_group" "test" {
name = "example-resources"
location = "West Europe"
}
resource "azurerm_app_service_plan" "test" {
name = "example-appserviceplan"
location = "${azurerm_resource_group.test.location}"
resource_group_name = "${azurerm_resource_group.test.name}"
sku {
tier = "Standard"
size = "S1"
}
}
resource "azurerm_app_service" "test" {
name = "example-app-service"
location = "${azurerm_resource_group.test.location}"
resource_group_name = "${azurerm_resource_group.test.name}"
app_service_plan_id = "${azurerm_app_service_plan.test.id}"
site_config {
dotnet_framework_version = "v4.0"
scm_type = "LocalGit"
}
app_settings = {
"HEALTHCHECKSUI_HEALTHCHECKS_0_NAME" = "Self"
"HEALTHCHECKSUI_HEALTHCHECKS_0_URI" = "https://${var.environment_name}-example-app-service/health-api"
}
}
在kudo中进入bash终端并运行printenv
,可以看到手动设置它会删除-
:
HEALTHCHECKSUI_HEALTHCHECKS_0_NAME=https://example-app-service.azurewebsites.net/health-api
3条答案
按热度按时间b1zrtrql1#
不确定,我没有找到文档来显示Azure App Service中应用程序设置的限制。但据我所知,操作系统有此限制。对于Linux,您不能设置名称包含
-
的环境变量。但在Windows中,-
的限制不存在。通常,字母和数字在两个系统中都没有问题。wf82jlnq2#
从环境变量名中删除**-**(Dash)。这将正常工作
例如:Test-Pass --〉TestPass
bakd9h0s3#
我在使用linux_function_app时遇到了这个错误,我的问题似乎是我的app_setting中有破折号。我把它们改为下划线,它工作了。
我不知道在应用程序设置参数名称时有使用破折号的限制。我以前使用过破折号和下划线。