Azure函数:部署后从host.json读取配置

时间:2018-08-16 15:28:59

标签: c# json configuration azure-functions

我在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文档没有揭示读取配置文件的神圣秘密。

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

有什么建议吗? 谢谢

1 个答案:

答案 0 :(得分:2)

local.settings.json 文件中的

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

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

host.json 元数据文件包含影响功能应用程序所有功能的全局配置选项。

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

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

enter image description here

更新

  

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

您可以使用Key vaultAzure function MSI来避免共享您的凭据。