我继承了为Azure Functions编写的一些代码,我对Azure Functions几乎一无所知。现在,这段代码是为我们的登台环境编写的,并且包含特定于我们的登台环境的硬编码URL以及生产中不同的各种API密钥。
我想要完成的第一项任务是摆脱这些硬编码字符串,并将它们转移到某种“#34;配置”中。可以通过我们的构建系统部署的文件。换句话说,暂存Azure功能应用程序将以我们的暂存环境为目标,生产应用程序将以我们的生产环境为目标。使用普通的C#应用程序,我只是将这些东西粘贴在web.config或app.config文件中。
我有两个问题:
首先:存储这些配置属性的推荐位置在哪里?让我们在CSX文件中使用这段代码:
public const string apikey = "37eb882ff6914b4c9205673547c10dc8"; // This value needs to change based on our environment
我首先考虑的是功能应用设置 - >配置应用设置 - >应用设置部分。我添加了一个新的应用程序设置,但无法找到任何方法来实际读取代码中的值(我尝试使用ConfigurationManager),也无法找到有关其工作原理的文档。
我接下来看的是function.json文件,它包含有关如何调用函数的绑定信息。这里似乎没有一个区域可以添加我自己的设置。
最后,我查看了位于应用程序根目录的host.json文件。有关此文件的大量文档,但它似乎不适合自定义设置。
第二:我在这里添加我的属性后,如何使用C#代码读取它?换句话说,我会将public const string
行替换为什么?
非常感谢!
答案 0 :(得分:6)
功能应用设置 - > 配置应用设置 - > 应用程序设置位置是存储配置设置的推荐位置。
要从C#代码访问App Settings,您只需使用ConfigurationManager类:
public static readonly string value = System.Configuration.ConfigurationManager.AppSettings["MySetting"];
不是使用“const”,而是需要使用“static readonly”,它的功能几乎相同。