Azure Functions 2.x の host.json のリファレンスhost.json reference for Azure Functions 2.x

host.json メタデータ ファイルには、関数アプリのすべての関数に影響するグローバル構成オプションが含まれています。The host.json metadata file contains global configuration options that affect all functions for a function app. この記事では、v2 ランタイムで使用できる設定の一覧を紹介します。This article lists the settings that are available for the v2 runtime.

注意

この記事は、Azure Functions 2.x を対象としています。 Functions 1.x の host.json のリファレンスについては、「host.json reference for Azure Functions 1.x (Azure Functions 1.x の host.json のリファレンス)」を参照してください。

関数アプリの他の構成オプションは、アプリの設定で管理されます。Other function app configuration options are managed in your app settings.

host.json の一部の設定は、local.settings.json ファイルでローカルに実行するときにのみ使用されます。Some host.json settings are only used when running locally in the local.settings.json file.

サンプル host.json ファイルSample host.json file

次のサンプル host.json ファイルには、すべての使用できるオプションが指定されています。The following sample host.json files have all possible options specified.

{
    "version": "2.0",
    "aggregator": {
        "batchSize": 1000,
        "flushTimeout": "00:00:30"
    },
    "extensions": {
        "cosmosDb": {},
        "durableTask": {},
        "eventHubs": {},
        "http": {},
        "queues": {},
        "sendGrid": {},
        "serviceBus": {}
    },
    "functions": [ "QueueProcessor", "GitHubWebHook" ],
    "functionTimeout": "00:05:00",
    "healthMonitor": {
        "enabled": true,
        "healthCheckInterval": "00:00:10",
        "healthCheckWindow": "00:02:00",
        "healthCheckThreshold": 6,
        "counterThreshold": 0.80
    },
    "logging": {
        "fileLoggingMode": "debugOnly",
        "logLevel": {
          "Function.MyFunction": "Information",
          "default": "None"
        },
        "applicationInsights": {
            "samplingSettings": {
              "isEnabled": true,
              "maxTelemetryItemsPerSecond" : 5
            }
        }
    },
    "singleton": {
      "lockPeriod": "00:00:15",
      "listenerLockPeriod": "00:01:00",
      "listenerLockRecoveryPollingInterval": "00:01:00",
      "lockAcquisitionTimeout": "00:01:00",
      "lockAcquisitionPollingInterval": "00:00:03"
    },
    "watchDirectories": [ "Shared", "Test" ]
}

この記事の次のセクションでは、最上位レベルの各プロパティについて説明します。The following sections of this article explain each top-level property. 特記がない場合は、いずれも省略可能です。All are optional unless otherwise indicated.

aggregatoraggregator

Application Insights のメトリックを計算するときに集計される関数呼び出しの数を指定します。Specifies how many function invocations are aggregated when calculating metrics for Application Insights.

{
    "aggregator": {
        "batchSize": 1000,
        "flushTimeout": "00:00:30"
    }
}
プロパティProperty 既定値Default 説明Description
batchSizebatchSize 1,0001000 集計する要求の最大数。Maximum number of requests to aggregate.
flushTimeoutflushTimeout 00:00:3000:00:30 集計する最長期間。Maximum time period to aggregate.

2 つの制限のいずれかに最初に達した場合、関数呼び出しが集計されます。Function invocations are aggregated when the first of the two limits are reached.

applicationInsightsapplicationInsights

この設定は logging の子です。This setting is a child of logging.

Application Insights のサンプリング機能を制御します。Controls the sampling feature in Application Insights.

{
    "applicationInsights": {
        "sampling": {
          "isEnabled": true,
          "maxTelemetryItemsPerSecond" : 5
        }
    }
}
プロパティProperty 既定値Default 説明Description
isEnabledisEnabled truetrue サンプリングを有効または無効にします。Enables or disables sampling.
maxTelemetryItemsPerSecondmaxTelemetryItemsPerSecond 55 サンプリングが開始されるしきい値。The threshold at which sampling begins.

cosmosDbcosmosDb

構成設定は、Cosmos DB のトリガーとバインディングに関する記事に記載されています。Configuration setting can be found in Cosmos DB triggers and bindings.

durableTaskdurableTask

構成設定は、Durable Functions のバインディングに関する記事に記載されています。Configuration setting can be found in bindings for Durable Functions.

eventHubeventHub

構成設定は、Event Hub のトリガーとバインディングに関する記事に記載されています。Configuration settings can be found in Event Hub triggers and bindings.

拡張機能extensions

バインド固有の設定 (httpeventHub など) をすべて含むオブジェクトを返すプロパティ。Property that returns an object that contains all of the binding-specific settings, such as http and eventHub.

functionsfunctions

ジョブのホストが実行される関数の一覧。A list of functions that the job host runs. 空の配列は、すべての関数を実行することを示します。An empty array means run all functions. ローカルで実行する場合にのみ使用します。Intended for use only when running locally. Azure の関数アプリでは、この設定を使用する代わりに、「Azure Functions で関数を無効にする方法」の手順に従って、特定の関数を無効にする必要があります。In function apps in Azure, you should instead follow the steps in How to disable functions in Azure Functions to disable specific functions rather than using this setting.

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

functionTimeoutfunctionTimeout

すべての関数のタイムアウト期間を示します。Indicates the timeout duration for all functions. サーバーレス従量課金プランの有効な範囲は 1 秒から 10 分であり、既定値は 5 分です。In a serverless Consumption plan, the valid range is from 1 second to 10 minutes, and the default value is 5 minutes. App Service プランでは、全体的な制限はなく、既定値はランタイムのバージョンによって異なります。In an App Service plan, there is no overall limit and the default depends on the runtime version. バージョン 2.x では、App Service プランの既定値は 30 分です。In version 2.x, the default value for an App Service plan is 30 minutes. バージョンでは 1.x では null であり、タイムアウトしないことを示します。In version 1.x, it's null, which indicates no timeout.

{
    "functionTimeout": "00:05:00"
}

healthMonitorhealthMonitor

ホストの正常性監視を行うための構成設定です。Configuration settings for Host health monitor.

{
    "healthMonitor": {
        "enabled": true,
        "healthCheckInterval": "00:00:10",
        "healthCheckWindow": "00:02:00",
        "healthCheckThreshold": 6,
        "counterThreshold": 0.80
    }
}
プロパティProperty 既定値Default 説明Description
enabledenabled truetrue 機能が有効かどうかを指定します。Specifies whether the feature is enabled.
healthCheckIntervalhealthCheckInterval 10 秒10 seconds 定期的なバック グラウンドでの正常性チェックの間隔。The time interval between the periodic background health checks.
healthCheckWindowhealthCheckWindow 2 分2 minutes healthCheckThreshold 設定と組み合わせて使用するスライド時間枠。A sliding time window used in conjunction with the healthCheckThreshold setting.
healthCheckThresholdhealthCheckThreshold 66 正常性チェックの最大失敗回数。この回数を超えると、ホスト リサイクルが開始されます。Maximum number of times the health check can fail before a host recycle is initiated.
counterThresholdcounterThreshold 0.800.80 パフォーマンス カウンターが異常とみなされるしきい値。The threshold at which a performance counter will be considered unhealthy.

httphttp

構成設定は、HTTP トリガーとバインディングに関する記事に記載されています。Configuration settings can be found in http triggers and bindings.

{
    "http": {
        "routePrefix": "api",
        "maxOutstandingRequests": 200,
        "maxConcurrentRequests": 100,
        "dynamicThrottlesEnabled": true
    }
}
プロパティProperty 既定値Default 説明Description
routePrefixroutePrefix apiapi すべてのルートに適用されるルート プレフィックス。The route prefix that applies to all routes. 既定のプレフィックスを削除するには、空の文字列を使用します。Use an empty string to remove the default prefix.
maxOutstandingRequestsmaxOutstandingRequests 200*200* 特定の時点で保持される未処理の要求の最大数。The maximum number of outstanding requests that are held at any given time. この制限には、キューに格納され、まだ実行が開始されていない要求と、処理中の実行が含まれます。This limit includes requests that are queued but have not started executing, as well as any in progress executions. この制限を超える受信要求は、429 "Too Busy" 応答で拒否されます。Any incoming requests over this limit are rejected with a 429 "Too Busy" response. これにより、呼び出し元は時間ベースの再試行戦略を採用でき、要求の最大待機時間の制御にも役立ちます。That allows callers to employ time-based retry strategies, and also helps you to control maximum request latencies. この設定は、スクリプト ホストの実行パス内で発生するキューのみを制御します。This only controls queuing that occurs within the script host execution path. ASP.NET 要求キューなどの他のキューは有効なままで、この設定の影響を受けません。Other queues such as the ASP.NET request queue will still be in effect and unaffected by this setting. *バージョン 1.x の既定値は unbounded です。*The default for version 1.x is unbounded. 従量課金プランでのバージョン 2.x の既定値は 200 です。The default for version 2.x in a consumption plan is 200. 専用プランでのバージョン 2.x の既定値は unbounded です。The default for version 2.x in a dedicated plan is unbounded.
maxConcurrentRequestsmaxConcurrentRequests 100*100* 並列で実行される HTTP 関数の最大数。The maximum number of http functions that will be executed in parallel. これによりコンカレンシーを制御でき、リソース使用率の管理に役立ちます。This allows you to control concurrency, which can help manage resource utilization. たとえば、多くのシステム リソース (メモリ、CPU、ソケット) を消費する HTTP 関数があった場合、コンカレンシー率が高すぎると問題が発生します。For example, you might have an http function that uses a lot of system resources (memory/cpu/sockets) such that it causes issues when concurrency is too high. または、サードパーティのサービスに対して要求を送信する関数があり、その呼び出し速度を制限する必要がある場合です。Or you might have a function that makes outbound requests to a third party service, and those calls need to be rate limited. このような場合は、調整を適用することができます。In these cases, applying a throttle here can help. *バージョン 1.x の既定値は unbounded です。*The default for version 1.x is unbounded. 従量課金プランでのバージョン 2.x の既定値は 100 です。The default for version 2.x in a consumption plan is 100. 専用プランでのバージョン 2.x の既定値は unbounded です。The default for version 2.x in a dedicated plan is unbounded.
dynamicThrottlesEnableddynamicThrottlesEnabled true*true* この設定を有効にすると、要求処理パイプラインが、システム パフォーマンス カウンター (接続、スレッド、プロセス、メモリ、CPU など) を定期的にチェックし、カウンターのいずれかが組み込まれた上限閾値 (80%) を超えた場合は、カウンターが正常なレベルに戻るまで要求は 429 "Too Busy" 応答で拒否されます。When enabled, this setting causes the request processing pipeline to periodically check system performance counters like connections/threads/processes/memory/cpu/etc. and if any of those counters are over a built-in high threshold (80%), requests will be rejected with a 429 "Too Busy" response until the counter(s) return to normal levels. *バージョン 1.x の既定値は false です。*The default for version 1.x is false. 従量課金プランでのバージョン 2.x の既定値は true です。The default for version 2.x in a consumption plan is true. 専用プランでのバージョン 2.x の既定値は false です。The default for version 2.x in a dedicated plan is false.

logginglogging

Application Insights など、関数アプリのログの動作を制御します。Controls the logging behaviors of the function app, including Application Insights.

"logging": {
    "fileLoggingMode": "debugOnly",
    "logLevel": {
      "Function.MyFunction": "Information",
      "default": "None"
    },
    "applicationInsights": {
        ...
    }
}
プロパティProperty 既定値Default 説明Description
fileLoggingModefileLoggingMode debugOnlydebugOnly どのレベルでファイルのログ記録を有効にするかを定義します。Defines what level of file logging is enabled. オプションは、neveralwaysdebugOnly です。Options are never, always, debugOnly.
logLevellogLevel 該当なしn/a アプリ内の関数に対するログ カテゴリのフィルター処理を定義するオブジェクト。Object that defines the log category filtering for functions in the app. バージョン 2.x のログ カテゴリのフィルター処理は、ASP.NET Core のレイアウトに従います。Version 2.x follows the ASP.NET Core layout for log category filtering. これにより、特定の関数についてログをフィルター処理できます。This lets you filter logging for specific functions. 詳しくは、ASP.NET Core のドキュメントの「ログのフィルター処理」をご覧ください。For more information, see Log filtering in the ASP.NET Core documentation.
applicationInsightsapplicationInsights 該当なしn/a applicationInsights の設定。The applicationInsights setting.

queuesqueues

構成設定は、Storage キュー トリガーとバインディングに関する記事に記載されています。Configuration settings can be found in Storage queue triggers and bindings.

sendGridsendGrid

構成設定は、SendGrid のトリガーとバインディングに関する記事に記載されています。Configuration setting can be found in SendGrid triggers and bindings.

serviceBusserviceBus

構成設定は、Service Bus のトリガーとバインディングに関する記事に記載されています。Configuration setting can be found in Service Bus triggers and bindings.

singletonsingleton

シングルトン ロック動作の構成設定。Configuration settings for Singleton lock behavior. 詳細については、「GitHub issue about singleton support」(シングルトンのサポートに関する GitHub の問題) を参照してください。For more information, see GitHub issue about singleton support.

{
    "singleton": {
      "lockPeriod": "00:00:15",
      "listenerLockPeriod": "00:01:00",
      "listenerLockRecoveryPollingInterval": "00:01:00",
      "lockAcquisitionTimeout": "00:01:00",
      "lockAcquisitionPollingInterval": "00:00:03"
    }
}
プロパティProperty 既定値Default 説明Description
lockPeriodlockPeriod 00:00:1500:00:15 関数レベルのロックの取得期間。The period that function level locks are taken for. ロックの自動更新。The locks auto-renew.
listenerLockPeriodlistenerLockPeriod 00:01:0000:01:00 リスナーのロックの取得期間。The period that listener locks are taken for.
listenerLockRecoveryPollingIntervallistenerLockRecoveryPollingInterval 00:01:0000:01:00 スタートアップ時にリスナーのロックを獲得できなかった場合に、リスナーのロックの回復に使用される時間間隔。The time interval used for listener lock recovery if a listener lock couldn't be acquired on startup.
lockAcquisitionTimeoutlockAcquisitionTimeout 00:01:0000:01:00 ランタイムがロックの獲得を試行する最長時間。The maximum amount of time the runtime will try to acquire a lock.
lockAcquisitionPollingIntervallockAcquisitionPollingInterval 該当なしn/a ロックの獲得の試行間隔。The interval between lock acquisition attempts.

versionversion

v2 ランタイムを対象とする関数アプリでは、バージョン文字列 "version": "2.0" が必要です。The version string "version": "2.0" is required for a function app that targets the v2 runtime.

watchDirectorieswatchDirectories

変更を監視する共有コード ディレクトリのセット。A set of shared code directories that should be monitored for changes. これらのディレクトリ内のコードを変更した場合に、関数によって変更を選択するようにします。Ensures that when code in these directories is changed, the changes are picked up by your functions.

{
    "watchDirectories": [ "Shared" ]
}

次の手順Next steps