gpt4 book ai didi

azure - 为什么要为 Azure Functions 加载开发配置,而它应该是生产配置?

转载 作者:行者123 更新时间:2023-12-04 04:23:42 25 4
gpt4 key购买 nike

我已将 Azure Function 部署到 Azure。我尚未在应用程序设置中的任何位置或环境中的任何其他位置将 AZURE_FUNCTIONS_ENVIRONMENT 指定为“开发”。

但是,当执行以下代码时

var configurationBuilder = new ConfigurationBuilder()
.SetBasePath(basePath)
.AddJsonFile("appsettings.json", true, true)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", true, reloadOnChange: true);

$"appsettings.{env.EnvironmentName}.json"解析为“appsettings.Development.json”,因此加载开发配置而不是加载生产配置。

当我通过 Kudu 查看该环境的环境变量时,我根本看不到任何对 Development 的引用,实际上看到已配置的 WEBSITE_SLOT_NAME = Production (尽管这不一定与功能。

我的理解是,如果未指定环境,则运行时默认为生产。因此,这对我来说意味着开发是在某处指定的。但我不知道在哪里可以找到它。

问题:是否可以在应用程序设置或环境变量中之外的某个位置指定开发?如果是的话,在哪里?有没有我可以在任何地方查找它,或者是否有任何其他解释为什么加载开发配置而不是生产配置?我应该怎么做才能明确确保在生产环境中加载生产配置?

最佳答案

不幸的是,在我手动指定我想要来自环境变量的数据之前,我无法让它工作:

var environment = Environment.GetEnvironmentVariable("AZURE_FUNCTIONS_ENVIRONMENT");

var configurationBuilder = new ConfigurationBuilder()
.SetBasePath(basePath)
.AddJsonFile("appsettings.json", true, true)
.AddJsonFile($"appsettings.{environment}.json", true, reloadOnChange: true);

这要求我在 Azure 环境中的应用程序设置中指定值:

enter image description here

并在 launchSettings.json 文件中为

"environmentVariables": {
"AZURE_FUNCTIONS_ENVIRONMENT": "Development"
}

关于azure - 为什么要为 Azure Functions 加载开发配置,而它应该是生产配置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58403902/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com