LoginSignup
3
2

More than 5 years have passed since last update.

Azure Functions V2 Runtime (C#) では、ConfigurationManager が使えない

Last updated at Posted at 2018-11-25

Azure Functions の Runtime が V2 になって、従来の .NET Framework から .NET Core がベースに変更になりました。そして、最初に「おや?」と気が付くのが、以下のように、ConfigurationManager を使って、アプリケーション設定から設定情報を読み込もうとした時に例外が出てしまうことです。

var connString = ConfigurationManager.ConnectionStrings["DbConnectionString"].ConnectionString;

この部分は、正直、互換にして欲しかったな。。。と思いながらも、.NET Core がマルチプラットフォーム/OS に対応したものであることから、、、仕方ないかなとも思います。.NET Core では、設定情報の受け渡しが、環境変数渡しになっておりますので、以下のようにして取得する必要があります。

// DLL 参照
#r "Microsoft.Extensions.Configuration"
#r "Microsoft.Extensions.Configuration.Abstractions"
#r "Microsoft.Extensions.Configuration.EnvironmentVariables"

// 名前空間の参照
using Microsoft.Extensions.Configuration;

public static async Task<IActionResult> Run(HttpRequest req, ILogger log)
{
    // 環境変数からの取得
    var config = new ConfigurationBuilder()
                    .AddEnvironmentVariables()
                    .Build();
    var connString = config.GetConnectionString("DbConnectionString");
    log.LogInformation(connString);

    // ----- 省略 -----
}

仕様が変わった時には、どのようにコード変更すべきか明示されて然るべきことだと思いますが、残念ながら、きちんとした情報が出ておらず、試行錯誤するハメになりました。。。

もっと情報公開を頑張ってくれ、Azure さん!

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2