【问题标题】:Where to store application specific configuration properties in an Azure Functions app在 Azure Functions 应用中存储应用程序特定配置属性的位置
【发布时间】:2017-01-06 23:15:32
【问题描述】:

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

我想要完成的第一个任务是摆脱这些硬编码的字符串并将它们移动到某种“配置”文件中,该文件可以通过我们的构建系统进行部署。换句话说,暂存 Azure Functions 应用程序将针对我们的暂存环境,而生产应用程序将针对我们的生产环境。对于普通的 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 行?

非常感谢!

【问题讨论】:

    标签: azure configuration azure-functions csx


    【解决方案1】:

    Function app settings -> Configure app settings -> App settings 位置是存储配置设置的推荐位置。 p>

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

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

    您需要使用“静态只读”而不是使用“const”,它的功能几乎相同。

    【讨论】:

    • 这就像我尝试的第一件事,但没有成功!让我再试一次,也许有些东西没有保存,或者我犯了一些 id10t 错误。
    • @MikeChristensen 您使用的是哪个运行时版本?它可能需要“最新 (~1)”,即 GA 版本,即非预览版。如果您使用的是预览版,它会给您一个升级按钮。
    • 它正在工作。不确定之前的交易是什么,也许设置没有及时保存或其他什么。
    猜你喜欢
    • 1970-01-01
    • 2016-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-25
    • 1970-01-01
    • 1970-01-01
    • 2010-10-21
    相关资源
    最近更新 更多