.netコアを使用するAzureFunctionsでEFコア2.0を使用しています。次のように定義されているlocal.settings.jsonからdbConnectionStringを読み取ろうとしています。
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "UseDevelopmentStorage=true",
"AzureWebJobsDashboard": "UseDevelopmentStorage=true"
},
"ConnectionStrings": {
"MyDbConnStr": "Data Source=.;Initial Catalog=xxxxxxx"
}
}
Environment.GetEnvironmentVariable()は、接続文字列情報を返しません。また、.netコアでConfigurationManager.ConnectionStringsを使用することもできません。コードから接続文字列にアクセスするにはどうすればよいですか?
Microsoft.Azure.WebJobs.Host
のヘルパークラスの1つを使用できます。
AmbientConnectionStringProvider.Instance.GetConnectionString("MyDbConnStr")
このクラスは、作業をConfigurationUtility
と呼ばれる内部クラスに委任しています。
var configuration = new ConfigurationBuilder()
.AddEnvironmentVariables()
.AddJsonFile("appsettings.json", true)
.Build();
var conn = configuration.GetConnectionString("MyDbConnStr");
_Environment.GetEnvironmentVariable
_を使用できます。キーは「ConnectionStrings:YourKey」です
Local.settings.jsonが次のようになっていると仮定します。
_{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "UseDevelopmentStorage=true",
"AzureWebJobsDashboard": "UseDevelopmentStorage=true"
},
"ConnectionStrings": {
"sqldb_connection": "connection_string_here"
}
}
_
Environment.GetEnvironmentVariable("ConnectionStrings:sqldb_connection", EnvironmentVariableTarget.Process);
を使用して値を取得します