2017-01-06 11 views
2

Azure関数用に記述されたコードを継承しましたが、Azure関数については何も教えていません。現在、このコードはステージング環境向けに作成されており、ステージング環境に固有のハードコードされたURLや、プロダクションでは異なるさまざまなAPIキーなどがあります。Azure関数のアプリケーションにアプリケーション固有の構成プロパティを格納する場所

私が達成したい最初の課題は、これらのハードコーディングされた文字列を取り除き、それらをビルドシステムを通じて展開できる何らかの「設定」ファイルに移動することです。つまり、ステージングするAzure関数アプリケーションはステージング環境をターゲットとし、本番アプリケーションは本番環境を対象とします。通常のC#アプリケーションでは、web.configファイルまたはapp.configファイルにこの要素を貼り付けています。

私は2つの質問があります。

まず:これらの構成プロパティを格納するための推奨場所があるの?のは、私のCSXファイルに私が持っているコードのこのビットを見てみましょう:私はに見えた

public const string apikey = "37eb882ff6914b4c9205673547c10dc8"; // This value needs to change based on our environment 

最初の事は機能アプリ設定 - >設定アプリ設定 - >アプリケーションセクションを設定しました。私は新しいAppの設定を追加しましたが、実際には何も見つかりませんでしたコードの値を読みました(私はConfigurationManagerを使ってみました)。

私が調べた次のことは、関数の呼び出し方法に関するバインディング情報を含むfunction.jsonファイルです。ここには自分の設定を追加できる領域はありません。

最後に、アプリケーションのルートにあるhost.jsonファイルを調べました。このファイルにはたくさんのドキュメントがありますが、カスタム設定の適切な場所ではありません。

2番目:ここに自分のプロパティを追加すると、C#コードを使ってそのプロパティをどのように読み取ることができますか?言い換えれば、私はその代わりにpublic const string行ですか?

ありがとうございます!

答えて

6

機能アプリの設定 - >設定アプリの設定 - >アプリの設定場所は、構成設定を格納するための推奨場所です。 C#コードからアプリの設定にアクセスするには

、あなただけのConfigurationManagerクラスを使用することができます。

public static readonly string value = System.Configuration.ConfigurationManager.AppSettings["MySetting"]; 

代わりに「CONST」を使用しての、あなたは「静的な読み取り専用」を使用する必要がありますし、それが機能しますかなり同じです。

+0

これは私が試した最初のもののようで、うまくいきませんでした! Lemmeは別のショットを付けました。多分何かが保存されなかったか、id10tエラーが発生しました。 –

+0

@MikeChristensenどのようなランタイムバージョンがありますか? GAのリリースである「最新(〜1)」、つまり非プレビューが必要な場合があります。プレビュー版の場合は、アップグレードするためのボタンが表示されます。 –

+1

これで動作します。以前に何があったのか分からず、おそらく設定が時間どおりに保存されなかったかもしれません。 –

関連する問題