web-dev-qa-db-ja.com

Azure Functions .NETCoreのEFCore2.0接続文字列

.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を使用することもできません。コードから接続文字列にアクセスするにはどうすればよいですか?

10
Boris Lipschitz

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");
13
Mikhail Shilkov

_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);を使用して値を取得します

9
DOMZE