在本地运行Azure Function时无法读取local.settings.json文件

bdcoder

我正在尝试在本地测试Azure功能时读取环境变量(使用v1 .Net 4.7.1)

下面是功能代码:

[FunctionName( "test" )]
  public static async Task<HttpResponseMessage> Run( [HttpTrigger( AuthorizationLevel.Anonymous, "post", Route = null )]HttpRequestMessage req, TraceWriter log )
  {

     String s;

     log.Info( "test: Begin..." );

     s = System.Environment.GetEnvironmentVariable( "test" );

     if ( String.IsNullOrEmpty( s ) )
     {
        log.Info( "Unable to get environment key !!!!" );
     }
     else
     {
        log.Info( "Key value = " + s );
     }

  }

local.settings.json文件包含:

{
"IsEncrypted": false,
"Values": {
   "AzureWebJobsStorage": "UseDevelopmentStorage=true",
   "AzureWebJobsDashboard": "UseDevelopmentStorage=true",
   "test": "test_value"
   }
}

该函数会编译并运行,但是不会返回环境键值,该日志始终包含:

 Unable to get environment key !!!!

奇怪的是,我有另一个项目(与上面的代码相同),并且工作正常。程序集中的唯一区别是Microsoft.Net.Sdk.Functions DLL(1.0.19)与(1.0.13)-当前项目(无效)正在使用1.0.19-所以我降级为1.0 .13-但没有区别!

项目差异

更新:20189月9日-特别感谢Karishma Tiwari指导我朝着正确的方向前进:

问题是(如Karismha所指出的),没有将local.settings.json文件复制到输出路径,如下图所示,通过比较不起作用的项目(左侧)和工作(右):

在此处输入图片说明

解决:

  1. 右键单击local.settings.json->属性
  2. 将“复制到输出目录”设置更改为:“如果更新则复制”

要注意的另一点是,MS文档指出:

“ ...,但我们建议您使用GetEnvironmentVariable ...”,

问题解决了。

Karishma Tiwari-MSFT

我建议尝试以下方法:

  1. 首先,尝试使用ConfigurationManager.AppSettings["test"]System.Environment.GetEnvironmentVariable(“ test”)代替,并检查是否获得了预期的结果。

  2. 确保将local.settings.json文件标记为始终复制到构建输出。(通过在Visual Studio中右键单击它)。这会将您的文件复制到类似于bin \ debug的输出路径。

让我知道您是否仍然遇到相同的问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Visual Studio 2017的local.settings.json本地开发中缺少AzureWebJobsStorage的值

在VS 2017 Azure Function开发中从local.settings.json读取值

Azure Functions中local.settings.json中的值

在本地运行Azure函数(V2)时引发Newtonsoft.Json.JsonReaderException

在Mac上使用VS2017进行调试时,Azure Function无法读取/访问local.settings.json

Azure Function App =在本地运行单个Azure Function进行调试

为什么我的API无法读取本地JSON文件?(NodeJS)

Azure Function EventHubTriggerAttribute不使用local.settings.json中的事件中心名称

Azure函数将local.settings.json读取为对象

使用MsTest运行单元测试时访问local.settings.json配置值

从Angular / Nativescript读取本地JSON文件

React无法读取组件内部的JSON本地文件值

如何使用Azure Data Factory和自托管运行时读取本地csv文件?

如何使用C#运行空间从本地计算机读取Azure VM中存在的远程Yaml文件

无法读取在local.settings.json中定义的连接字符串

Vanilla Javascript,如何读取本地JSON文件

settings.json文件中的Azure函数参数

运行本地gem时无法加载此类文件错误

抓取本地JSON文件时,.done()函数未在AJAX调用返回的诺言上运行

在Django中设置settings_staging,settings_production和settings_local文件的方法

使用 local.settings.json 的 Azure 函数 cosmos db 输出

使用 Javascript 读取本地 JSON 文件

Azure CI/CD 期间的 local.settings.json 转换

有没有办法将 Azure Functions 中的文件名 local.settings.json 更改为其他名称

Azure Functions Kubernetes 找不到 local.settings.json

Azure 函数 - local.settings.json 与 launchSettings.json

Python Azure Durable Functions:如何更改 local.settings.json 文件以读取 Azure Keyvault 的机密?

无法向 Azure 函数的 settings.json 添加对象

无法在 Azure 函数中发布本地 .settings 内容