Azure App Serviceで環境変数(DB接続情報)をアプリケーション設定や接続文字列に保管する

複数環境でAzure App Serviceを利用している時に、接続先DBが異なるとDB接続設定を変更する必要があります。またソースコード内に接続情報を記載しているとセキュリティ的にもあまりよく無さそうです。

そこで今回はApp Serviceのアプリケーション設定や接続文字列を利用して、Wordpressの設定情報を切り離してみました。

今回はこちらのマイクロソフト公式サイトの情報を元に進めます。

Azure portal で App Service アプリを構成する(公式サイト)

スポンサーリンク

Azure App Service でアプリケーション設定をする

まずアプリケーション設定を行います。

1)App Serviceで構成のメニューを選択します。アプリケーション設定のタブで新しいアプリケーション設定をクリックします。

2)アプリケーション設定の追加編集で名前、値を設定します。今回はDataBaseName/testで設定します。

3)設定が終わると新しいアプリケーション設定が追加されている事が分かります。保存をクリックします。

4)変更の確認画面が表示されますので、続行をクリックします。

これでアプリケーション設定の作成は完了です。

アプリからアプリケーション設定を呼び出す

実際のアプリケーションからアプリケーション設定に設定した値を呼び出します。

今回はWordpressのwp-confをサンプルにやってみます。

呼び出し方はgetenv('アプリケーション設定名’)になります。

今回設定した内容で行くとこのようになります。これでtestというDB_Nameの設定が出来ます。

// ** MySQL 設定 – この情報はホスティング先から入手してください。 ** //
/** WordPress のためのデータベース名 */
define( 'DB_NAME’, getenv('DataBaseName’))

このように設定ファイル上では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 設定 – この情報はホスティング先から入手してください。 ** //
/** WordPress のためのデータベース名 */
define( 'DB_NAME’, getenv('MYSQLCONNSTR_DataBaseName’))

アプリケーション設定と同様の事が可能になります。

アプリケーション設定と接続文字列の違い

以下の違いによるものらしく、ASP.NETの場合やバックアップ設定にデータベースを含む場合以外はアプリケーション設定を利用するのが推奨になるようです。

1)ASP.NET および ASP.NET Core の場合、App Service で設定した値によって Web.config 内の値がオーバーライドされる。

2)App Serviceのバックアップ対象にデータベースを含む場合

要件および制限(公式サイト)