gpt4 book ai didi

Azure Functions 设置在门户和本地之间不一致

转载 作者:行者123 更新时间:2023-12-02 06:43:42 24 4
gpt4 key购买 nike

我正在使用 Azure 函数并遇到问题。我声明了local.settings.json包含我的变量的文件如下:

{
"IsEncrypted": false,
"Values": {
"FUNCTIONS_WORKER_RUNTIME": "dotnet",
"TopicEndpoint": "my endpoint"
}
}

这允许我的 azure 函数使用以下方式读取设置:

var config = new ConfigurationBuilder()
.SetBasePath(context.FunctionAppDirectory)
.AddJsonFile("local.settings.json", optional: true, reloadOnChange: true)
.AddEnvironmentVariables()
.Build();
var myTopic = config["Values:TopicEndpoint"];

这允许我通过以下方式发布和导出我的变量到门户:

func azure functionapp
publish myfunctionapp --publish-local-settings -i

但是,在发布并验证该值位于门户的“应用程序设置”中时,“Values:TopicEndpoint”不存在。

为了能够访问它的值,我必须将变量直接放在 json 根目录下:

{
"IsEncrypted": false,
"Values": {
"FUNCTIONS_WORKER_RUNTIME": "dotnet",
}
"TopicEndpoint": "my endpoint"
}

这样我就可以安全地使用 config['TopicEndpoint']在我的本地开发环境以及 Azure 上。然而,这违背了--publish-local-settings -i的目的。因为它只导出“Values”键下找到的值,所以我必须手动创建所有设置。

你知道为什么会发生这种情况吗?或者我是否错过了什么?

最佳答案

我猜你应该以不同的方式使用它。问题是来自 local.settings.json come as environment variables 的值自动,因此您根本不必担心如何使用该文件。这就是我们在项目中的做法,并且它适用于所有环境。

// see, just env variables
var configuration = new ConfigurationBuilder().AddEnvironmentVariables().Build();

// and then use
var value = configuration["TopicEndpoint"];

关于Azure Functions 设置在门户和本地之间不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56677093/

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