簡體   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