2017-12-20 2 views
2

私はVisual Studioを使用していくつかのAzure関数を含むクラスライブラリを作成しています。タイマー機能とキュートリガー機能の組み合わせがあります。関数の1つで作業していて、その関数だけをデバッグしたいのであれば、他の関数をコメントアウトしてそれらの関数も実行しないようにする必要があります。ローカルでデバッグするときに、関数セット全体のサブセットを実行したいだけであることを簡単に示す方法はありますか?ビジュアルスタジオでローカルデバッグを行うときに、単にazure関数のサブセットを実行できるようにする方法はありますか?

答えて

1

あなたはDisable() attributeの使用を作ることができ、しかし、それはコードをコメントアウトするよりもはるかに良いではありません。

public static void Run([TimerTrigger("0 */5 * * * *"), Disable()]TimerInfo myTimer, TraceWriter log) 

あなたが#ifディレクティブでDisable()属性を組み合わせることができ、それはあなたのコードをクラッタ。 Disable()属性は、DEBUGが定義されている場合にのみ適用されます。

次の機能は、リリースモードの場合は実行され、デバッグモードの場合は無効になります。

[FunctionName("TimerFunction")] 
    public static void Run([ 
     #if DEBUG 
      TimerTrigger("*/5 * * * * *"), Disable() 
     #else 
      TimerTrigger("*/5 * * * * *") 
     #endif 
     ]TimerInfo myTimer, TraceWriter log) 
    { 
     log.Info($"C# Timer trigger function executed at: {DateTime.Now}"); 
    } 
+1

FunctionName属性に追加することもできますが、これは関数のパラメータを装飾する属性より少しきれいです。 [FunctionName( "TimerFunction")、Disable()] –

0

local.settings.jsonファイルのsettingNameによって制御されるDisableAttributeを使用して関数を修飾することができます。

次は一例です。

[QueueTrigger("%queueName%", Connection = "queues"), Disable("MyFuncABC")]ProcessMessage msg, 
0

あなたは具体的に、あなたはトップレベルの関数プロパティを定義したいと思う機能するあなたのhost.jsonにロードするために(full spec here.)を設定することができます

{ 
    "functions": [ "QueueProcessor", "GitHubWebHook" ] 
} 

(これはローカルな使用のみのために意味されることに注意してください;。あなたは、公開機能のためにfunction.json disabledプロパティを使用したいと思う)

関連する問題