Azure Functions の host.json 設定変更時の注意点

Azure Functions では Functions 自体の動作設定を一部 host.json ファイルで定義している。 例えば代表的な設定で言うと、functionTimeout による最大実行時間の定義がある。

この設定を変更することで、関数の最大実行時間を 30 分などに伸ばしたりすることが可能だが、host.json ファイルの変更にあたっては、一つ注意が必要になる点がある。 host.json はプロジェクトに含まれるファイルの一つであるため、アプリ設定と異なり、dev/stg/prd ごとに設定を変更することが出来ない。

例えば、dev 環境のみ従量課金プランを使用していて、stg/prd は App Service プランを使用しているような状況の場合、dev 環境では functionTimeout の定義は最大 10 分までしか認められないが、これを stg/prd での実行のみにフォーカスして host.json の設定を 20 分とかに変更してしまうと、そのプロジェクトを dev 環境にデプロイした場合に、dev 環境では動作しなくなってしまう。

一応、デプロイ後に KUDU 上で強制的に設定変更することで対応可能ではあるが、それだと自動デプロイなどが実質使えない状態になってしまうので、基本的には、どの環境でもそのまま動作可能な範囲の設定を行うのが良いかと思われる。

Azure Functions 1.x の host.json のリファレンス | Microsoft Docs