我正在使用Azure函数2
我正在阅读Azure函数本地设置文件文档:
https://learn.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>"
}
}据我所知,“值”中的项将通过环境变量(如Environment.GetEnvironmentVariable )获得。
我需要在函数的设置中包括更复杂的设置(嵌套的JSON数据及其数组)。
最好的做法或推荐的做法是什么?
发布于 2018-11-24 03:48:47
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。要发布它,右键单击project> Edit <functionappname>.csproj并删除<CopyToPublishDirectory>Never</CopyToPublishDirectory>。
https://stackoverflow.com/questions/53451937
复制相似问题