繁体   English   中英

为什么我的 azure 函数有时无法读取静态配置变量?

[英]Why does my azure function sometimes fail to read a static configuration variable?

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

当我在 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");

检查Pitchmatt的响应 - 从 Azure 函数读取设置

如果您使用的是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"]

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM