概要
AzureのAppServceにて環境変数を設定できる。DB系アクセス値等セキュアな値はKeyValue(キー コンテナ)で管理し、シークレットな値としてAppServceの環境変数設定画面では設定値を閲覧できないようにすることはよくある。
しかしながらKeyValue(キー コンテナ)側でシークレットな値を変更し、AppServceを再起動しただけだと値が更新されなかったので発見した暫定の解決方法を簡単にまとめる。
うまくいかない方法
-
AppServceの「開発ツール」→「SSH」をクリック
-
画面上の「移動」をクリック
-
下記を実行して現在の設定されている環境変数を確認
printenv キー名 -
AppServceの「環境変数」の画面でKeyValue(キー コンテナ)に値を預けている項目の「キー コンテナ」をクリック
-
表示されたキーの値を追加する等して「適用」をクリック
-
AppServceの概要ページの「再起動」をクリック
-
AppServceの「開発ツール」→「SSH」をクリック
-
画面上の「移動」をクリック
-
下記を実行して現在の設定されている環境変数を確認
printenv キー名
これだと値は更新されない。
うまくいく方法(暫定)
-
AppServceの「開発ツール」→「SSH」をクリック
-
画面上の「移動」をクリック
-
下記を実行して現在の設定されている環境変数を確認
printenv キー名 -
AppServceの「環境変数」の画面でKeyValue(キー コンテナ)に値を預けている項目の「キー コンテナ」をクリック
-
表示されたキーの値を追加する等して「適用」をクリック
-
AppServceの「環境変数」の画面でKeyValue(キー コンテナ)に値を預けていない項目で、一時的に書き換えても良いものの値を更新「適用」をクリック、更に「環境変数」の画面下部の「適用」をクリック
-
AppServceの概要ページの「再起動」をクリック
-
AppServceの「開発ツール」→「SSH」をクリック
-
画面上の「移動」をクリック
-
下記を実行して現在の設定されている環境変数を確認
printenv キー名
筆者はAppServiceの環境変数にEDIT_SECURE_VALUE_FOR_AZURE_DELETE_OK_DO_NOT_USE_SERVERという何にも使われない項目を追加しこの値を変更することで、既存の環境変数を更新すること無くKeyValue(キー コンテナ)の値を反映していた。