Azure App Service でネスト構造のアプリケーション設定を定義する

2023/08/26
★★

ネスト構造のアプリケーション設定

アプリケーション設定で、ネスト構造のキーを構成する場合、設定方法によって、指定の仕方が異なります。

appsettings.json で、以下の構造を構成したとします。

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },  
  "azCosmosDb": {
    "connectionString": "xxxxxx",
    "databaseId": "xxxxxxx"
  }
}

コード上では、階層を :で区切ってキーを指定します。

  • azCosmosDb:connectionString
  • azCosmosDb:databaseId

以下は、IConfiguration を DI で取得して、キーを指定して値を取得するコード例です。

public ItemsAzCosmosDbDataGateway(
    IConfiguration configuration, 
    ILogger<ItemsAzCosmosDbDataGateway> logger)
{
    _connectionString = configuration["azCosmosDb:connectionString"]
        ?? throw new InvalidOperationException();

    _databaseId = configuration["azCosmosDb:databaseId"]
        ?? throw new InvalidOperationException();
    
    _logger = logger;
}

Azure App Service の Application settings

Azure App Service (Windows) の [構成] - [Application settings] で、キーを指定する場合、キーの階層を : で区切って設定します。

コード上でキーを指定する場合と同じなので、特に問題はないかと思います。

  • azCosmosDb:connectionString
  • azCosmosDb:databaseId

Azure App Service on Linux の Application settings

Azure App Service on Linux の場合、キーの階層を __で区切ってキーを設定します。ぱっとみると分かりにくいですが、アンダースコアを二つ指定します。

  • azCosmosDb__connectionString
  • azCosmosDb__databaseId

Azure App Service on Linux が特殊ですね。もちろん、コードは、変更することなく、: の区切りのままで良いです。

知ってればなんてことないとだと思いますが、私自身が、忘れがちなので。

以上、参考までに。

参考サイト

コメント (0)

コメントの投稿