首页 > 解决方案 > Azure 功能:部署后从 host.json 读取配置

问题描述

我在 C# 中创建了一个 azure 函数。我使用 local.settings.json 在本地进行测试。一切正常

ConfigurationManager.Appsettings["key"]

现在我已经发布了。什么都没有了。Host.json 在那里,我可以浏览函数应用设置选项卡,我可以在那里看到配置 host.json 以及所有值。

Host.json 格式与 local.settings.json 相同:

{
  "IsEncrypted": false,
  "Values": {
    "MYCONFIG": "HEY",
    "THEOTHERCONFIG" : "WHASSUP"
  }
}

如果我在本地运行一切正常。如果我发布,我会在所有值中得到 null。

我试过

    ConfigurationManager.Appsettings["key"]

System.Environment.GetEnvironmentVariable("MYCONFIG", EnvironmentVariableTarget.Process);

没有任何效果。

Microsoft 文档并未揭示读取配置文件的神圣秘密。

在这里,我看到他们甚至没有提到 host.json 文件,他们只是说您必须手动将它们放入 azure 门户中......这是非常不切实际的。

有什么建议吗?谢谢

标签: c#jsonconfigurationazure-functions

解决方案


local.settings.json文件中的设置仅在本地运行时由 Functions 工具使用。默认情况下,当项目发布到 Azure 时,这些设置不会自动迁移。我们可以使用Azure Functions Core Tools轻松地将 local.setting.json 发布到 Azure。

func azure functionapp publish azurefunctionname --publish-local-settings

host.json数据文件包含影响函数应用的所有函数的全局配置选项。

host.json 不适用于配置 Azure 函数 appsettings。

或者正如 Thomas 提到的,您可以在 azure 功能的 appsettings 刀片中对其进行配置。

在此处输入图像描述

更新:

如果你想委托一些开发和测试,你必须给他们凭据......多么荒谬

你可以使用Key VaultAzure 函数 MSI来避免共享你的凭据。


推荐阅读