0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Azure】App Serviceにおける本番環境のConnectionStringの管理場所

Posted at

はじめに

C#で Azure SQL Database に接続する際に、おそらく多くの人が参照することになる公式チュートリアルがあります。

このチュートリアルでは Azure SQL Database への接続文字列を下記のように設定します。

var connection = String.Empty;
if (builder.Environment.IsDevelopment())
{
    // ローカル環境
    // appsettings.Development.jsonから取得
    builder.Configuration.AddEnvironmentVariables().AddJsonFile("appsettings.Development.json");
    connection = builder.Configuration.GetConnectionString("AZURE_SQL_CONNECTIONSTRING");
}
else
{
    // 本番環境
    // どこから取得している?
    connection = Environment.GetEnvironmentVariable("AZURE_SQL_CONNECTIONSTRING");
}

builder.Services.AddDbContext<PersonDbContext>(options =>
    options.UseSqlServer(connection));

AZURE_SQL_CONNECTIONSTRINGappsettings.Development.jsonでしか定義していないため本番環境では取得できません。本番環境の接続文字列がどこからきているのかずっと疑問だったため調べました。

結論

先ほどのチュートリアルにばっちり書いてありました。

ホストされた運用シナリオについては環境変数から、パスワードレス データベース接続文字列を取得します。

ホストされた運用シナリオとは App Service にデプロイした環境の事です。そしてこの場合の環境変数はappsetting.jsonではなくAzure App Service の環境変数の事です。

image.png

という事で、本番環境では接続文字列では App Service 側で保持していました。

おわりに

最初に学習した際には右も左もわからず動かすことに精一杯だったため細かいところがおろそかになっていたなーと反省しました。

この記事が皆様のコーディングライフの助けになれば幸いです!

参考

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?