Ven*_*nky 15 json appsettings azure azure-functions
我在VS 2017中进行azure功能开发.我需要设置一些自定义配置参数.我把它们添加到了local.settings.json下面Values.
{
"IsEncrypted":false,
"Values" : {
"CustomUrl" : "www.google.com",
"Keys": {
"Value1":"1",
"Value2" :"2"
}
}
}
Run Code Online (Sandbox Code Playgroud)
现在,ConfigurationManager.AppSettings["CustomUrl"]返回null.
.Net框架: 4.7
Microsoft.NET.Sdk.Functions: 1.0.5
System.Configuration.ConfigurationManager:4.4.0
Azure.Functions.Cli: 1.0.4
我错过了什么吗?
jay*_*a_j 21
Environment.GetEnvironmentVariable("key")
我能够使用上面的代码行从local.settings.json读取值.
Fei*_*Han 10
首先,我创建一个示例并使用local.settings.json数据进行测试,正如Mikhail和ahmelsayed所说,它运行正常.
另外,据我所知,Values集合应该是一个Dictionary,如果它包含任何非字符串值,则可能导致Azure函数无法从local.settings.json读取值.
我的测试:
ConfigurationManager.AppSettings["CustomUrl"] 使用以下local.settings.json返回null.
{
"IsEncrypted": false,
"Values": {
"CustomUrl": "www.google.com",
"testkey": {
"name": "kname1",
"value": "kval1"
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果您使用基于 TimeTrigger 的 Azure 函数,则可以从 Azure 函数访问您的密钥(在 local.settings.json 中创建),如下所示。
[FunctionName("BackupTableStorageFunction")]
public static void Run([TimerTrigger("%BackUpTableStorageTriggerTime%")]TimerInfo myTimer, TraceWriter log, CancellationToken cancellationToken)
Run Code Online (Sandbox Code Playgroud)
使用.Net 6(可能还有一些早期版本)可以注入IConfiguration到函数的构造函数中。
public Function1(IConfiguration configuration)
{
string setting = _configuration.GetValue<string>("MySetting");
}
Run Code Online (Sandbox Code Playgroud)
MySetting必须位于Values以下部分local.settings.json:
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "UseDevelopmentStorage=true",
"FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated",
"MySetting": "value"
}
}
Run Code Online (Sandbox Code Playgroud)
它也适用于 Azure Function App 中的应用程序设置。
您已设置Azure的功能使用复制湛蓝的功能CLI,那么它将搜索local.settings.json,所以一定要确保二进制文件bin文件夹并运行"Copy to Output Directory"到"Copy Always"
| 归档时间: |
|
| 查看次数: |
20427 次 |
| 最近记录: |