gpt4 book ai didi

json - config.GetSection 在 Azure Functions 中不起作用吗?推荐的替代方案是什么?

转载 作者:行者123 更新时间:2023-12-03 05:34:55 25 4
gpt4 key购买 nike

具有复杂(对象列表)配置类型的 Azure 函数正在本地工作(在 local.settings.json 中使用该复杂类型),但无法在 Azure 中读取/创建对象列表(在 Azure 函数配置中使用该复杂类型)设置)。我正在寻找推荐/最佳方式来支持跨平台/访问方法。

<小时/>

这在我的 local.settings.json 中效果很好,我使用配置生成器并像这样提取数据

var myList = config.GetSection("ConfigurationList").Get<List<MyType>>();

但这似乎在 Azure Functions 中不起作用?现在我认为这是因为在 local.settings.json 中它是一个 json 文件,看起来像

"ConfigurationList" : [ { "Name": "A", "Value": 2 }, { "Name": "B", "Value": 3 }]

在 Azure Functions 中,它是一个带有值的设置“ConfigurationList”

[ { "Name": "A", "Value": 2 }, { "Name": "B", "Value": 3 }]

(所以 Azure Functions 中实际上没有“部分”?)

似乎“简单”的解决方案就是将 .json 更改为带引号的字符串并反序列化该字符串(然后它在两个地方的工作方式相同);但这似乎并不是“最佳”(或“推荐”解决方案)即类似于

"ConfigurationList" : "[ { \"Name\": \"A\", \"Value\": 2 }, { \"Name\": \"B\", \"Value\": 3 }]"
var myList = (List<MyType>)JsonConvert.DeserializeObject(config["ConfigurationList"], typeof(List<MyType>));

这还不是最糟糕的;但使 json 有点“不太好”,并且不会在两个平台上“流动”......如果这是我必须做的,很好;但希望有更标准的方法/建议

最佳答案

正如我在评论中提到的,在本地,您可以将 local.settings.json 作为 json 文件处理,但在 azure 上,配置设置中的值是环境变量。没有部分,它只是字符串。

请注意,只允许使用字符串值,任何嵌套的内容都会被破坏。了解如何在azure web app上使用nest设置(azure functon基于azure app service sandbox,所以是一样的。):

https://learn.microsoft.com/en-us/archive/blogs/waws/asp-net-core-settings-for-azure-app-service

例如,如果这是 json 结构:

{
"Parent": {
"ChildOne": "C1 from secrets.json",
"ChildTwo": "C2 from secrets.json"
}
}

然后在网络应用程序中,您应该像这样保存它:

enter image description here
(来源:windows.net)

关于json - config.GetSection 在 Azure Functions 中不起作用吗?推荐的替代方案是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63222765/

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