2017-01-05 22 views
2

私はいくつかのapiキーを使用して、地平線関数をローカルでテストしています。環境変数を保存するのに最適な場所は何ですか?どのようにアクセスしますか?試しました環境変数を格納するのに最適な場所

System.Environment.GetEnvironmentVariable("name")} 

環境変数がどこに格納されているのかわかりません。

ありがとうございます!

答えて

2

local.settings.jsonというファイルが必要です。ここではこれらの設定は、環境変数として、あなたのコードで読み取ることができますそれは

を述べFunctions-Run-Local

ための紺碧のウェブサイトです。 C#では、System.Environment.GetEnvironmentVariableまたはConfigurationManager.AppSettingsを使用します。 JavaScriptでは、process.envを使用します。システム環境変数として指定された設定は、local.settings.jsonファイルの値よりも優先されます。

{ 
    "IsEncrypted": false, 
    "Values": { 
    "AzureWebJobsStorage": "<connection string>", 
    "AzureWebJobsDashboard": "<connection string>" 
    }, 
    "Host": { 
    "LocalHttpPort": 7071, 
    "CORS": "*" 
    }, 
    "ConnectionStrings": { 
    "SQLConnectionString": "Value" 
    } 
} 

local.settings.json

たとえばそれはあなたがlocal.settings.json内プロパティの下でアプリケーションの設定を置く必要があると述べています。

検索するには、ConfigurationManager.AppSettings["CustomSetting"]を使用して接続文字列を取得できます。

私はちょうどこれを試してみたところ、文字列キーと文字列値が必要であることを発見しました。私はあなたがappsettings.jsonのようにサブセクションを持つことを試みたときにエラーが発生しました。私はこのようなlocal.settings.jsonの外観を持たなければならなかった:

{ 
    "IsEncrypted": false, 
    "Values": { 
    "AzureWebJobsStorage": "<connection string>", 
    "AzureWebJobsDashboard": "<connection string>" 
    "CustomSetting":"20" 
    } 
} 
+0

あなたはこれで環境の変換を行いますか?つまり、私のdev env値はprodとは異なります。 –

+0

これを制御するには、Azureの関数appを更新します:) – chris31389

+0

ありがとう!昨夜見つけた –

2

アプリケーションキーを保存するには、アプリケーション設定を使用します。詳細: https://docs.microsoft.com/en-us/azure/azure-functions/functions-how-to-use-azure-function-app-settings#application-settings

次のコード例に示すように、System.Environment.GetEnvironmentVariableを使用し、環境変数やアプリの設定値を取得するには:

public static void Run(TimerInfo myTimer, TraceWriter log) 
{ 
    log.Info($"C# Timer trigger function executed at: {DateTime.Now}"); 
    log.Info(GetEnvironmentVariable("AzureWebJobsStorage")); 
    log.Info(GetEnvironmentVariable("WEBSITE_SITE_NAME")); 
} 

public static string GetEnvironmentVariable(string name) 
{ 
    return name + ": " + 
     System.Environment.GetEnvironmentVariable(name, EnvironmentVariableTarget.Process); 
} 

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

感謝を、Alexey

+0

素敵な記事。このようなものを見つけるために紺碧のページをナビゲートするのは難しいです。私は実際には、Azureに格納された設定を持たずに、これを局所的にテストすることを考えています。これは、キー/値のペアがvaluesプロパティのappSettings.jsonに属しているということです。 – DarthVadar123451

+0

local.settings.jsonがAzureWebJobsStorageとWEBSITE_SITE_NAMEを探す方法の例を挙げることができますか? – chris31389

+0

Azureでenv変数を使用し、ローカルランタイム用にVisual Studioでローカル変数を設定できるようです:https://msdn.microsoft.com/en-us/library/669zx6zc.aspx#ビルドの環境変数の設定 – th3morg

0

「値」プロパティのappsettings.jsonファイルにキーと値のペアを入れます。

関連する問題