2017-09-29 6 views
3

Microsoft Azure関数でテストを開始しました。私はVS2017の公開を持っており、私の機能はうまく機能しています。私は現在、私が働いている1つの機能を持っています。これは5分ごとのタイマーで設定されます。無効Azure関数はまだ実行中

しかし、この機能は「無効」にしても実行されているようです。これは、モニタとそれが対話しているシステムのいずれかに表示されます。私がそれを止めることができる唯一の方法は、全体的な機能グループを停止することです。機能グループを起動すると、5分ごとに実行される無効機能が再び開始されます。

何か不足していますか?個々の機能の無効化には他の目的がありますか?

機能グループ内の個々の機能を定義されたスケジュールで実行しないようにするにはどうすればよいですか?

ありがとうございました。

+0

私は自分自身でこれを理解しているかもしれません...機能グループが有効になっている時点の機能の状態が決定要因であるようです。最後にグループを再起動して無効にしたときに、この機能を有効にしている可能性があります。私が最後にグループを開始したときに、その機能は既に無効になっていて、機能を開始しませんでした。実際には、関数の開始に問題があることを示すエラーメッセージが表示されます。 –

答えて

6

あなたが経験していることは、理想的ではありませんが、期待される動作です。ポータル体験のバグです。

関数ランタイムは、プリコンパイルされた関数のバイナリファイル内のメタデータを直接消費します。無効な機能の注釈のサンプルを示します。

[TimerTrigger("0 */5 * * * *"), Disable()]

これは、Visual Studioによって上記注釈を生成function.jsonあります。

{ 
"generatedBy": "Microsoft.NET.Sdk.Functions.MSBuild-1.0.2", 
    "configurationSource": "attributes", 
    "bindings": [ 
    { 
     "type": "timerTrigger", 
     "schedule": "0 */5 * * * *", 
     "useMonitor": true, 
     "runOnStartup": false, 
     "name": "myTimer" 
    } 
    ], 
    "disabled": true, 
    "scriptFile": "..\\bin\\FunctionApp3.dll", 
    "entryPoint": "FunctionApp3.Function1.Run" 
} 

プリコンパイルされた関数によって生成されたfunction.jsonは、ポータルで消費され、ポータルに表示されます。ポータルで機能の無効状態を変更すると、無効なプロパティはfunction.jsonで変更されますが、機能ランタイムでは消費されません。したがって、それは実行を続けます。

無効にした状態でデプロイすると、ランタイムはそれを認識し、期待どおりの状態にします。

私はこのバグを開いてポータル体験を修正しました。 https://github.com/Azure/azure-functions-ux/issues/1857

+0

ナーレンありがとうございました...現在のところ、ポータルで無効状態を制御する方法はありませんか?私の目標は、機能していない状態で機能を公開し、それを有効にするためにポータルに行くことができるようにすることです。私は作成するいくつかの機能を持っており、必要に応じて、できれば全体の機能グループを停止することなく、それらを有効/無効にできる必要があります。 –

+2

プリコンパイルされたアセンブリによって作成された関数を無効にするには、2つの方法があります。 1. .csファイルの属性を更新して、関数を再発行します。これにより、関数が再公開されます。 2.実行時に監視する関数の配列を追加します。機能を無効/有効にするたびに更新してください。関数appの設定からhost.jsonを更新することができます。しかしこれはホストを再起動します。しかし、これは正常に実行され、実行時に管理されます。 "functions":["QueueProcessor"、 "GitHubWebHook"] さらに詳しい情報があります https:// github。com/Azure/azure-webjobs-sdk-script/wiki/host.json – Naren

関連する問題