【问题标题】:Azure Functions, make local.settings.json values take precedence over System environment variablesAzure Functions,使 local.settings.json 值优先于系统环境变量
【发布时间】:2020-07-13 06:43:22
【问题描述】:

在 Azure Functions 中,您可以通过 local.settings.json 传递虚拟环境变量,在部署时将其设置为应用程序设置(最好使用密钥保管库)。

但是,当您在本地运行时,即func host start --function=MyFunction 它总是将您本地定义的环境变量置于设置文件中的环境变量之上。

我想访问 local.settings.json 中的变量,而不是我的环境变量中的值。

我找不到,而且如果您想在不手动更改环境变量的情况下进行测试,这很烦人。

链接: Python docs on env vars.

Local.settings.json docs

Existing question on how to store environment variables

【问题讨论】:

  • 所以你想使用local.settings.json文件中的设置而不是配置中的值?
  • 我相信如果我在 .net 框架中可以直接访问应用程序设置,但我正在使用 Python。 (docs.microsoft.com/en-gb/dotnet/api/…)
  • @GeorgeChen,没错。而不是存储在我的笔记本电脑环境变量中的值。

标签: azure-functions


【解决方案1】:

目前,如果您使用的是 python 函数,则不支持此功能。您可能会收到一个提示,提示您跳过了该键。

所以如果你想在本地使用相同的设置,你可以读取 json 文件来获取值。

下面是我访问local.settings.json中的testkey的代码。

    ROOT_DIR = os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))
    with open(ROOT_DIR+'\\local.settings.json') as f:
        data = json.load(f)
        testkey=data['Values']['testkey']
        logging.info(testkey)

【讨论】:

  • 谢谢。正如预期的那样令人沮丧,但很有帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-02
  • 2020-03-06
  • 2012-03-29
  • 1970-01-01
相关资源
最近更新 更多