Azure App Serviceのアプリケーション設定や接続文字列に環境変数を保管
Azure App Serviceを利用している場合、接続先DB単位でDB接続設定する必要があります。
複数環境等で接続先DBが異なる場合などでは、環境単位で接続設定が必要になります。
ソースコード内に接続情報を記載しているとセキュリティ的にも良くないです。
WordPressのデータベースアクセス設定を例に、Azure App Serviceのアプリケーション設定や接続文字列設定について試してみました。
今回はこちらのマイクロソフト公式サイトの情報を元に進めます。
Azure portal で App Service アプリを構成する(公式サイト)
Azure App Service でアプリケーション設定をする
まずアプリケーション設定を行います。
1)App Serviceで構成のメニューを選択します。アプリケーション設定のタブで新しいアプリケーション設定をクリックします。
2)アプリケーション設定の追加編集で名前、値を設定します。今回はDataBaseName/testで設定します。
3)設定が終わると新しいアプリケーション設定が追加されている事が分かります。保存をクリックします。
4)変更の確認画面が表示されますので、続行をクリックします。
これでアプリケーション設定の作成は完了です。
アプリからアプリケーション設定を呼び出す
実際のアプリケーションからアプリケーション設定に設定した値を呼び出します。
今回はWordpressのwp-confをサンプルにやってみます。
呼び出し方はgetenv('アプリケーション設定名’)になります。
今回設定した内容で行くとこのようになります。これでtestというDB_Nameの設定が出来ます。
// ** MySQL 設定 – この情報はホスティング先から入手してください。 ** // |
このように設定ファイル上ではDataBase名等が分からないようにすることが出来ますし、どのApp Service環境でも同じ設定ファイルを使う事も可能になります。
Azure App Service で接続文字列を設定する
同様の設定が接続文字列でも出来ます。
1)App Serviceで構成のメニューを選択します。アプリケーション設定のタブで新しい接続文字列をクリックします。
2)接続文字列の追加/編集が表示されますので設定を行います。アプリケーション設定と同じ値を設定してみます。今回はMySQL想定という事で種類はMySQLを選択します。
3)設定が終わると作成した接続文字列が追加されている事が分かります。保存をクリックします。
4)変更の確認画面が表示されますので、続行をクリックします。
これで接続文字列の設定は完了です。
アプリから接続文字列を呼び出す
実際のアプリケーションから接続文字列に設定した値を呼び出します。
今回はWordpressのwp-confをサンプルにやってみます。
MySQLを指定した場合の、呼び出し方はgetenv('MYSQLCONNSTR_アプリケーション設定名’)になります。(接続文字列作成時に設定した種類(DB)により値が異なります。詳細は公式サイトを参照願います。)
今回設定した内容で行くとこのようになります。これでtestというDB_Nameの設定が出来ます。
// ** MySQL 設定 – この情報はホスティング先から入手してください。 ** // |
アプリケーション設定と同様の事が可能になります。
アプリケーション設定と接続文字列の違い
以下の違いによるものらしく、ASP.NETの場合やバックアップ設定にデータベースを含む場合以外はアプリケーション設定を利用するのが推奨になるようです。
1)ASP.NET および ASP.NET Core の場合、App Service で設定した値によって Web.config 内の値がオーバーライドされる。
2)App Serviceのバックアップ対象にデータベースを含む場合