在 Azure Functions 应用程序中存储应用程序特定配置属性的位置

Where to store application specific configuration properties in an Azure Functions app

我继承了一些为 Azure Functions 编写的代码,但我对 Azure Functions 几乎一无所知。现在这段代码是为我们的暂存环境编写的,并且包含特定于我们的暂存环境的硬编码 URL 和各种 API 密钥,这些密钥在生产中会有所不同。

我想要完成的第一个任务是摆脱这些硬编码字符串并将它们移动到某种可以通过我们的构建系统部署的 "configuration" 文件中。换句话说,暂存 Azure Functions 应用程序将针对我们的暂存环境,而生产应用程序将针对我们的生产环境。对于普通的 C# 应用程序,我只是将这些内容粘贴到 web.config 或 app.config 文件中。

我有两个问题:

第一:推荐的存放这些配置属性的地方在哪里?让我们看看我的 CSX 文件中的这段代码:

public const string apikey = "37eb882ff6914b4c9205673547c10dc8"; // This value needs to change based on our environment

我首先查看的是功能应用设置->配置应用设置->应用设置部分。我添加了一个新的 App 设置,但找不到任何方法来实际 读取 代码中的值(我尝试使用 ConfigurationManager),也找不到有关其工作原理的文档。

接下来我查看的是 function.json 文件,其中包含有关如何调用函数的绑定信息。这里似乎没有我可以添加自己的设置的区域。

最后,我查看了位于应用程序根目录的 host.json 文件。这个文件有很多文档,但它似乎不是自定义设置的合适位置。

其次: 一旦我在这里添加我的 属性,我如何使用 C# 代码读取它?换句话说,我将用什么替换 public const string 行?

非常感谢!

功能应用设置 -> 配置应用设置 -> 应用设置位置是存储配置设置的推荐位置。

要从 C# 代码访问应用程序设置,您只需使用 ConfigurationManager class:

public static readonly string value = System.Configuration.ConfigurationManager.AppSettings["MySetting"];

您需要使用 "static readonly" 而不是使用 "const",它的功能几乎相同。