消費プランで実行されているAzure Functionsの現在の5分間のタイムアウト制限を変更する方法はありますか?
一部のデータ分析計算では、5分では十分な時間ではありません。
Webjobsを使用する代替手段では、関数の並列実行が許可されません。
(他の答えは少しわかりにくいので、たくさん編集する代わりに書く)
Azure Functionsは、消費プランを使用して最大10分間実行できるようになりました。
注消費計画の機能のデフォルトのタイムアウトは5分です。 Host.jsonのfunctionTimeoutプロパティを変更することにより、Function Appの値を10分に増やすことができます。
ソース: https://docs.Microsoft.com/en-us/Azure/azure-functions/functions-scale#consumption-plan
ファイル:Host.json
// Value indicating the timeout duration for all functions.
// In Dynamic SKUs, the valid range is from 1 second to 10 minutes and the default value is 5 minutes.
// In Paid SKUs there is no limit and the default value is null (indicating no timeout).
// Set functionTimeout to 10 minutes
{
"functionTimeout": "00:10:00"
}
ソース:
https://buildazure.com/2017/08/17/Azure-functions-extend-execution-timeout-past-5-minutes/
https://github.com/Azure/azure-webjobs-sdk-script/wiki/Host.json
現在、消費プランで5分以上機能を実行する方法はありません。ここでチームの回答を確認できます。
ダイナミックプランで5分でタイムアウトする理由は、ダイナミックプランでは、関数をホストしているVMが最後のトリガーが起動してから5分後に(大体)シャットダウンするためです。今日のようなタイムアウトは、関数の実行が停止した理由を説明するロギングの一貫したエクスペリエンスを提供する方法であり、これまでは、関数は呼び出しの途中で単に理由が示されずに消えるのがわかります。より具体的な詳細がある場合は更新されます。
小さいチャンクに分解できない長時間実行される関数は、現在ダイナミックプランで実行中の問題に遭遇します。ただし、単一の長時間実行機能をより小さく、より高速な機能に分解するためのソリューションがしばしばあります。たとえば、他の場所で長い操作を開始し、完了をポーリングする関数がある場合、その操作から「operationId」を取得し、それをService Busのスケジュール済みメッセージ(または、非表示タイムアウト)、およびそれらのメッセージを読み取り、完了のためにポーリングする2番目の「CheckStatus」機能があります
https://github.com/Azure/azure-webjobs-sdk-script/issues/18
および https://github.com/Azure/Azure-Functions/issues/75
[〜#〜] update [〜#〜]
Azure Functionsは、消費プランを使用して最大10分間実行できるようになりました: https://docs.Microsoft.com/en-us/Azure/azure-functions/functions-scale