AzureFunction上で様々環境(検証環境、本番環境 etc...)によって変わる値があったため、
環境変数として実際のコードをいじらずに済むようにしました
その際の実装内容をメモとして残します
※2020年くらいから環境変数の取得の仕方が変わって、「AzureFunction 環境変数」で検索すると出てくる【ConfigurationManager】クラスを使用しての取得はできなくなっているようです
環境変数を設定する
VisualStudioでの環境変数の設定の仕方
local.settings.jsonに環境変数を記載していきます
Valuesの配下に「TESTING_VALUE」という変数を用意し、
ConnectionStringsの配下に「DB_CONNECTION_STRING」という変数を用意
Azure上での環境変数の設定の仕方
関数アプリ > 設定 > 構成に環境変数を記載していきます
アプリケーション設定の配下に「TESTING_VALUE」という変数を用意し、
接続文字列の配下に「DB_CONNECTION_STRING」という変数を用意
Azure上で設定した場合は上部にある「保存」ボタンを押す必要があります
環境変数を実際に取得する
VisualStudio上で取得する
「Values」配下の値は特に気にする必要がなく取得できるが、
「ConnectionStrings」配下の値は【ConnectionStrings:】を追加するしないと取得できないので注意
// 「Values」配下に設定した値の取得
string testingValue = System.Environment.GetEnvironmentVariable("TESTING_VALUE", EnvironmentVariableTarget.Process);
// 「ConnectionStrings」配下に設定した値の取得
string connectionVale = System.Environment.GetEnvironmentVariable("ConnectionStrings:DB_CONNECTION_STRING", EnvironmentVariableTarget.Process);
実際に値が取得できた
Azure上で取得する
こちらも「Values」配下の値は特に気にする必要がなく取得できるが、
「ConnectionStrings」配下の値は接続先のDBによって文言を変更する必要があるので注意が必要
- 接続先がMySQLの場合は『MYSQLCONNSTR_{キー}』
- 接続先がAzure SQL Databaseの場合は『SQLAZURECONNSTR_{キー}』
- 接続先がSQLサーバーの場合は『SQLCONNSTR_{キー}』
MicroSoftドキュメント
-
ASP.NET Core の構成 | Microsoft Learn
構成 API を使用して、ASP.NET Core アプリで AppSettings を構成する方法について説明します。
続きを読む
// 「Values」配下に設定した値の取得(Visual Studioと変わらず)
string testingValue = System.Environment.GetEnvironmentVariable("TESTING_VALUE", EnvironmentVariableTarget.Process);
// 「ConnectionStrings」配下に設定した値の取得
// 今回はSQLサーバーを対象としているので「SQLCONNSTR_」となる
string connectionVale = System.Environment.GetEnvironmentVariable("SQLCONNSTR_DB_CONNECTION_STRING", EnvironmentVariableTarget.Process);
実際に値が取得できた
VisualStudioとAzure上とで環境変数の取得に若干の差異があって困惑した
なぜ、環境変数の取得でさえ統一してくれないのか。。。
会社紹介
私が所属しているアドバンスド・ソリューション株式会社(以下、ADS)は一緒に働く仲間を募集しています
会社概要
「技術」×「知恵」=顧客課題の解決・新しい価値の創造
この方程式の実現はADSが大切にしている考えで、技術を磨き続けるgeekさと、顧客を思うloveがあってこそ実現できる世界観だと思っています
この『love & geek』の精神さえあれば、得意不得意はno problem!
技術はピカイチだけど顧客折衝はちょっと苦手。OKです。技術はまだ未熟だけど顧客と知恵を出し合って要件定義するのは大好き。OKです
凸凹な社員の集まり、色んなカラーや柄の個性が集まっているからこそ、常に新しいソリューションが生まれています
ミッション
私たちは、テクノロジーを活用し、業務や事業の生産性向上と企業進化を支援します
-
アドバンスド・ソリューション株式会社
アドバンスド・ソリューションは主にMicrosoft製品を使用して、企業の生産性向上に取り組んでいます。要件定義から導入 ...
サイトへ移動
-
お問い合わせ | アドバンスド・ソリューション株式会社
お問い合わせはこちら