在 ASP.NET Core 使用 Azure App Configuration
Azure 上有個應用程式組態
的功能,可以建立多組”設定檔”,這對於網站要切換到本機開發或 UAT 或者是正式環境都很方便,下面就示範如何使用。
最一開始當然是在應用程式組態
中新增一組”設定”,它是 Key Value 的對應,為了方便展示,在設定裡新增 key: API_DOMAIN、value: www.google.com。
接在從 nuget 中加入Microsoft.Extensions.Configuration.AzureAppConfiguration
套件。
接著新增類別,用來連接 Azure 及取得設定:
public interface IConfigManager
{
string GetString(string key);
}
public class ConfigManager : IConfigManager
{
private readonly IConfiguration _configuration;
private readonly IConfigurationRoot _azureConfig;
public ConfigManager(IConfiguration configuration)
{
_configuration = configuration;
var builder = new ConfigurationBuilder();
string connectionStr = _configuration["AzureConfig:connectionStr"];
builder.AddAzureAppConfiguration(connectionStr);
_azureConfig = builder.Build();
}
public string GetString(string key)
{
string value = string.Empty;
value = _azureConfig[key];
return value;
}
}
因為需要連接 Azure 的連線字串,所以在 appsettings.json 中新增連線字串:
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*",
"AzureConfig": {
"connectionStr": "<your connection string>"
}
}
然後記得設定 DI:builder.Services.AddTransient<IConfigManager, ConfigManager>(x => new ConfigManager(builder.Configuration));
最後在 controller 上測試:
public IActionResult GetValue()
{
string key = "API_DOMAIN";
string value = _configManager.GetString(key);
return Content(value);
}
收工。
參考資料