推荐做法如何在 Azure 函数 local.settings.json 文件中包含更复杂的配置 JSON 数据?
Recommanded practice how to include more sophisticated configuration JSON data in Azure Function local.settings.json file?
我正在使用 Azure Functions 2
我正在浏览 Azure Function Local 设置文件文档:
https://docs.microsoft.com/en-us/azure/azure-functions/functions-run-local#local-settings-file
根据文档,这里是 local.settings.json 文件的示例:
{
"IsEncrypted": false,
"Values": {
"FUNCTIONS_WORKER_RUNTIME": "<language worker>",
"AzureWebJobsStorage": "<connection-string>",
"AzureWebJobsDashboard": "<connection-string>",
"MyBindingConnection": "<binding-connection-string>"
},
"Host": {
"LocalHttpPort": 7071,
"CORS": "*"
},
"ConnectionStrings": {
"SQLConnectionString": "<sqlclient-connection-string>"
}
}
我知道“Values”中的项目将通过 Environment.GetEnvironmentVariable
等环境变量可用
我需要在我的函数设置中包含更复杂的设置(嵌套的 JSON 数据和数组)。
这样做的最佳做法或推荐做法是什么?
Values
集合应该是一个 Dictionary<string, string>
,因此我们不能将嵌套的 JSON 数据放入数组中。尝试为您的 Json 数据创建一个新部分并像往常一样阅读 Json 文件。我们不能使用 Environment.GetEnvironmentVariable
因为自定义设置没有导入到环境变量中。
{
"Values": {},
"CustomSettings":{}
}
将 ExecutionContext context
添加到函数方法签名以定位设置文件。
var reader = new StreamReader(context.FunctionAppDirectory+"/local.settings.json");
var myJson = reader.ReadToEnd();
对于v2函数,我们可以使用ConfigurationBuilder
。
var config = new ConfigurationBuilder()
.SetBasePath(context.FunctionAppDirectory)
.AddJsonFile("local.settings.json", optional: false, reloadOnChange: true)
.AddEnvironmentVariables()
.Build();
local.settings.json
旨在为本地开发人员提供等效于 Azure 门户中的应用程序设置,默认情况下不会发布到 Azure。要发布它,请右键单击项目 > Edit <functionappname>.csproj
并删除 <CopyToPublishDirectory>Never</CopyToPublishDirectory>
。
我正在使用 Azure Functions 2
我正在浏览 Azure Function Local 设置文件文档:
https://docs.microsoft.com/en-us/azure/azure-functions/functions-run-local#local-settings-file
根据文档,这里是 local.settings.json 文件的示例:
{
"IsEncrypted": false,
"Values": {
"FUNCTIONS_WORKER_RUNTIME": "<language worker>",
"AzureWebJobsStorage": "<connection-string>",
"AzureWebJobsDashboard": "<connection-string>",
"MyBindingConnection": "<binding-connection-string>"
},
"Host": {
"LocalHttpPort": 7071,
"CORS": "*"
},
"ConnectionStrings": {
"SQLConnectionString": "<sqlclient-connection-string>"
}
}
我知道“Values”中的项目将通过 Environment.GetEnvironmentVariable
我需要在我的函数设置中包含更复杂的设置(嵌套的 JSON 数据和数组)。
这样做的最佳做法或推荐做法是什么?
Values
集合应该是一个 Dictionary<string, string>
,因此我们不能将嵌套的 JSON 数据放入数组中。尝试为您的 Json 数据创建一个新部分并像往常一样阅读 Json 文件。我们不能使用 Environment.GetEnvironmentVariable
因为自定义设置没有导入到环境变量中。
{
"Values": {},
"CustomSettings":{}
}
将 ExecutionContext context
添加到函数方法签名以定位设置文件。
var reader = new StreamReader(context.FunctionAppDirectory+"/local.settings.json");
var myJson = reader.ReadToEnd();
对于v2函数,我们可以使用ConfigurationBuilder
。
var config = new ConfigurationBuilder()
.SetBasePath(context.FunctionAppDirectory)
.AddJsonFile("local.settings.json", optional: false, reloadOnChange: true)
.AddEnvironmentVariables()
.Build();
local.settings.json
旨在为本地开发人员提供等效于 Azure 门户中的应用程序设置,默认情况下不会发布到 Azure。要发布它,请右键单击项目 > Edit <functionappname>.csproj
并删除 <CopyToPublishDirectory>Never</CopyToPublishDirectory>
。