我在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门户中。...这是不切实际的。
有什么建议吗? 谢谢
答案 0 :(得分:2)
设置仅在本地运行时由“功能”工具使用。默认情况下,将项目发布到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刀片中对其进行配置。
更新:
如果您要委托一些开发和测试,则必须给他们凭据...多么荒谬
您可以使用Key vault和Azure function MSI来避免共享您的凭据。