appsettings.json允许我们指定分层设置:
"ApplicationInsights": {
"InstrumentationKey": "..."
}
在代码中,它们被使用如下- config["ApplicationInsights:InstrumentationKey"]
然而,在尝试提供ApplicationInsights:InstrumentationKey
给应用服务terraform配置时:
app_settings = {
"ApplicationInsights:InstrumentationKey" = data.azurerm_application_insights.instance.instrumentation_key
}
以下是错误信息的结果:
Error: Error updating Application Settings for App Service "app505-dfpg-qa2-web-eastus2-gateway-apsvc": web.AppsClient#UpdateApplicationSettings: Failure responding to request: StatusCode=400 -- Original Error: autorest/azure: Service returned an error. Status=400 Code="BadRequest" Message="AppSetting with name 'ApplicationInsights:InstrumentationKey' is not allowed." Details=[{"Message":"AppSetting with name 'ApplicationInsights:InstrumentationKey' is not allowed."},{"Code":"BadRequest"},{"ErrorEntity":{"Code":"BadRequest","ExtendedCode":"04072","Message":"AppSetting with name 'ApplicationInsights:InstrumentationKey' is not allowed.","MessageTemplate":"AppSetting with name '{0}' is not allowed.","Parameters":["ApplicationInsights:InstrumentationKey"]}}]
看起来是Azure出了问题,而不是terraform。
那么,是否能解决呢?
编辑1:
请注意,这只是一个例子。我同样可以要求以下分层设置:
"YabaDabaDoo": {
"YogiBear": "..."
}
我们如何在应用程序服务配置中提供它?