【问题标题】:Why does my azure function sometimes fail to read a static configuration variable?为什么我的 azure 函数有时无法读取静态配置变量?
【发布时间】:2020-10-13 17:28:12
【问题描述】:

我有一个需要进行 http 调用的 azure 函数,它从我确保存在于 Azure 门户的函数配置部分的配置变量中检索 uri。

当我在 Azure 中运行我的函数时,我注意到大约 80% 的时间,我的函数无法从函数配置中读取值,即 Environment.GetEnvironmentVariable("endpoint_value_from_configuration") 方法调用返回 null。

但是,如果我反复测试此函数(不更改任何代码或配置),它有时确实会成功读取变量。这里发生了什么?如何更改此功能,以免出现此问题?

[FunctionName("MessageHandler")]
public async Task Run([ServiceBusTrigger("%Topic%", "subname", Connection = "ServiceBusConnection")] string mySbMsg,
    ILogger log)
{
    var obj = JsonConvert.DeserializeObject<BusinessObject>(mySbMsg);
    var endpoint = Environment.GetEnvironmentVariable("endpoint_value_from_configuration");

【问题讨论】:

    标签: c# .net azure azure-functions


    【解决方案1】:

    在此处查看 Pitchmatt 的回复 - Reading settings from a Azure Function

    如果您使用的是V2,则需要使用以下代码:

    var config = new ConfigurationBuilder()
        .SetBasePath(context.FunctionAppDirectory)
        .AddJsonFile("local.settings.json", optional: true, reloadOnChange: true)
        .AddEnvironmentVariables()
        .Build();
    

    然后,使用 config 获取设置:

    var endpoint = config["endpoint_value_from_configuration"]
    

    在本地调试时,它从“Values”关键字下的local.settings.json 获取设置。在 Azure 中运行时,它会从“应用程序设置”选项卡中获取设置。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-11-30
      • 2016-12-27
      • 1970-01-01
      • 2014-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多