2016-11-23 23 views
6

Azure関数でappsettings.jsonファイルを使用することはできますか?Azure関数 - appsettings.jsonを使用する

環境変数のドキュメントは、我々が展開にタコを使用して、本当にのAppSettingsバージョン管理がしたい..however

https://docs.microsoft.com/en-us/azure/azure-functions/functions-reference-csharp#environment-variables

は..ここにあります。 27:03.811(12,16):エラーCS0012:型 'オブジェクトが' アセンブリで定義されて

私たちは常に

2016-11-23T15取得

{ 
    "frameworks": { 
    "net46": { 
     "dependencies": { 
     "Microsoft.Extensions.Configuration": "1.0.0", 
     "Microsoft.Extensions.Configuration.Json": "1.0.0" 
     } 
    } 
    } 
} 

しかしを使用して試してみましたそれは参照されません。アセンブリ 'System.Runtime、Version = 4.0.0.0への参照を追加する必要があります

Octopus経由で環境変数を供給/更新することができれば、私たちのニーズには十分です。

お知らせください。

答えて

2

アプリの設定と接続文字列でサポートされる環境変数は、 appsettings.jsonはサポートされていません。

ただし、Azure Resource Manager(ARM)テンプレートを使用して、関数アプリケーションの設定を構成することができます。これをより詳しく説明するblog postがあります。

+0

恐ろしい!それは非常にうまくいくでしょう - ありがとう! – Nosmadas

+0

@mathewc - Azure関数の新しいプレビューツールでは、関数プロジェクトを作成するときにappsettings.jsonファイルが自動的に作成されます。あなたの答えから何か変わったのですか? –

+2

その設定ファイルは、ローカル開発専用であり、私たちのCLIで使用されます。そのことをより詳細に記述するブログ記事[ここ](https://blogs.msdn.microsoft.com/appserviceteam/2016/12/01/running-azure-functions-locally-with-the-cli/)があります。 – mathewc

0

依存関係の場合は、関数内でproject.jsonを使用/作成する必要があります。ここで依存関係を指定できます。 確認してください。たとえば https://docs.microsoft.com/en-us/azure/azure-functions/functions-reference-csharp#package-management

:あなたのニーズに

{ 
 
    "frameworks": { 
 
    "net46":{ 
 
     "dependencies": { 
 
     "Microsoft.ProjectOxford.Face": "1.1.0" 
 
     } 
 
    } 
 
    } 
 
}

+0

質問はappsettings.jsonに関するもので、project.jsonファイルではなく、nugetの依存関係を指定しています –

+0

appsettings.jsonに依存関係を指定しないでください。これがproject.jsonの理由です。確認: https://docs.microsoft.com/en-us/azure/azure-functions/functions-reference-csharp#package-management –

+1

私はそれを理解していますが、元の質問はappsettings.jsonに関するもので、パッケージの依存関係 - OPは彼の環境設定と接続をファイルにしようとしましたが、AzureのWeb Appの設定ではできませんでした。 –

7

答えはYESです! Azure関数は、設定にappsettings.jsonを使用できます。しかし、関数が要求されたときにAzureが行う順序付けシーケンスがいくつかあります。

1º)Azureでは、アプリケーション設定で設定されたキーによって、あなたは.GetEnvironmentVariables( "[KEY]")方法で使用されているKEYSを探します

を設定Azureの機能にブレード2º)Azureがアプリケーション設定キーを使用してその設定を見つけられなかった場合、Azureは作業中の機能のルートフォルダにappsettings.jsonファイルを探します。

3º最後に、Azureがappsettings.jsonファイルでもアプリケーション設定でもこのキーを見つけられなかった場合、Azureはこのファイルを探すためにweb.configを見つける最後の試みを行います セクションキー。あなたの感謝のために

は、あなたが私のgithubのレポにサンプルすることにより、これらの設定を見つけることができます:herehere

私は、これらの情報はあなたを助けることを願っています。 appsettings.jsonが変更に

リファレンスをlocal.settings.jsonに改名されましたので、あなただけのlocal.settings.jsonを使用する必要があり、構成ファイルへの変更、によると

+0

それは素晴らしいと思いますが、それは単一のキーと値のペアだけですか?私は 'ConfigurationBuilder'から得たような複雑なオブジェクトを持つことができますか? – nhwilly

+0

はい、できます! ** SectionA **:SubSectionA1:SubSectionA11:あなたの値はここにあります。 「アプリケーション設定」キー・フィールド。この "BIG"文字列はJSONの規約です。 appsettings.jsonを使用するのは、独自の設定を作成する唯一の方法であり、最後の設定ではありません。機能ポータルで**アプリケーション設定**を使用することができます。 もう1つの方法はAzure Key Vaultです。 –

+0

私はそれがどのように動作するかは分かりませんが、私はそれを試してみます。ありがとう... – nhwilly

関連する問題