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

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

アプリ設定local.settings.json ファイルには、他のグローバル構成オプションがあります。There are other global configuration options in app settings and in the local.settings.json file.

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

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

{
    "aggregator": {
        "batchSize": 1000,
        "flushTimeout": "00:00:30"
    },
    "applicationInsights": {
        "sampling": {
          "isEnabled": true,
          "maxTelemetryItemsPerSecond" : 5
        }
    },
    "eventHub": {
      "maxBatchSize": 64,
      "prefetchCount": 256,
      "batchCheckpointFrequency": 1
    },
    "functions": [ "QueueProcessor", "GitHubWebHook" ],
    "functionTimeout": "00:05:00",
    "healthMonitor": {
        "enabled": true,
        "healthCheckInterval": "00:00:10",
        "healthCheckWindow": "00:02:00",
        "healthCheckThreshold": 6,
        "counterThreshold": 0.80
    },
    "http": {
        "routePrefix": "api",
        "maxOutstandingRequests": 20,
        "maxConcurrentRequests": 10,
        "dynamicThrottlesEnabled": false
    },
    "id": "9f4ea53c5136457d883d685e57164f08",
    "logger": {
        "categoryFilter": {
            "defaultLevel": "Information",
            "categoryLevels": {
                "Host": "Error",
                "Function": "Error",
                "Host.Aggregator": "Information"
            }
        }
    },
    "queues": {
      "maxPollingInterval": 2000,
      "visibilityTimeout" : "00:00:30",
      "batchSize": 16,
      "maxDequeueCount": 5,
      "newBatchThreshold": 8
    },
    "serviceBus": {
      "maxConcurrentCalls": 16,
      "prefetchCount": 100,
      "autoRenewTimeout": "00:05:00"
    },
    "singleton": {
      "lockPeriod": "00:00:15",
      "listenerLockPeriod": "00:01:00",
      "listenerLockRecoveryPollingInterval": "00:01:00",
      "lockAcquisitionTimeout": "00:01:00",
      "lockAcquisitionPollingInterval": "00:00:03"
    },
    "tracing": {
      "consoleLevel": "verbose",
      "fileLoggingMode": "debugOnly"
    },
    "watchDirectories": [ "Shared" ],
}

この記事の次のセクションでは、最上位レベルの各プロパティについて説明します。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

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.

durableTaskdurableTask

Durable Functions の構成設定。Configuration settings for Durable Functions.

{
  "durableTask": {
    "HubName": "MyTaskHub",
    "ControlQueueBatchSize": 32,
    "PartitionCount": 4,
    "ControlQueueVisibilityTimeout": "00:05:00",
    "WorkItemQueueVisibilityTimeout": "00:05:00",
    "MaxConcurrentActivityFunctions": 10,
    "MaxConcurrentOrchestratorFunctions": 10,
    "AzureStorageConnectionStringName": "AzureWebJobsStorage",
    "TraceInputsAndOutputs": false,
    "EventGridTopicEndpoint": "https://topic_name.westus2-1.eventgrid.azure.net/api/events",
    "EventGridKeySettingName":  "EventGridKey"
  }
}

タスク ハブの名前は、先頭文字をアルファベットとする必要があります。また、使用できるのはアルファベットと数値だけです。Task hub names must start with a letter and consist of only letters and numbers. 指定しない場合、関数アプリの既定のタスク ハブ名は DurableFunctionsHub です。If not specified, the default task hub name for a function app is DurableFunctionsHub. 詳細については、タスク ハブに関するページをご覧ください。For more information, see Task hubs.

プロパティProperty 既定値Default [説明]Description
HubNameHubName DurableFunctionsHubDurableFunctionsHub 代替タスク ハブ名を使用すると、複数の Durable Functions アプリケーションが同じストレージ バックエンドを使用している場合でも、これらのアプリケーションを互いに分離できます。Alternate task hub names can be used to isolate multiple Durable Functions applications from each other, even if they are using the same storage backend.
ControlQueueBatchSizeControlQueueBatchSize 3232 コントロール キューから一度にプルするメッセージの数。The number of messages to pull from the control queue at a time.
PartitionCountPartitionCount 44 コントロール キューのパーティション数。The partition count for the control queue. 1 から 16 までの正の整数を使用できます。May be a positive integer between 1 and 16.
ControlQueueVisibilityTimeoutControlQueueVisibilityTimeout 5 分5 minutes デキューされたコントロール キュー メッセージの表示タイムアウト。The visibility timeout of dequeued control queue messages.
WorkItemQueueVisibilityTimeoutWorkItemQueueVisibilityTimeout 5 分5 minutes デキューされた作業項目キュー メッセージの表示タイムアウト。The visibility timeout of dequeued work item queue messages.
MaxConcurrentActivityFunctionsMaxConcurrentActivityFunctions 現在のマシン上のプロセッサ数の 10 倍10X the number of processors on the current machine 1 つのホスト インスタンスで同時に処理できるアクティビティ関数の最大数。The maximum number of activity functions that can be processed concurrently on a single host instance.
MaxConcurrentOrchestratorFunctionsMaxConcurrentOrchestratorFunctions 現在のマシン上のプロセッサ数の 10 倍10X the number of processors on the current machine 1 つのホスト インスタンスで同時に処理できるアクティビティ関数の最大数。The maximum number of activity functions that can be processed concurrently on a single host instance.
AzureStorageConnectionStringNameAzureStorageConnectionStringName AzureWebJobsStorageAzureWebJobsStorage 基になる Azure Storage リソースの管理に使用される Azure Storage 接続文字列を含むアプリ設定の名前。The name of the app setting that has the Azure Storage connection string used to manage the underlying Azure Storage resources.
TraceInputsAndOutputsTraceInputsAndOutputs falsefalse 関数呼び出しの入力と出力をトレースするかどうかを示す値。A value indicating whether to trace the inputs and outputs of function calls. 関数の実行イベントをトレースした場合の既定の動作では、関数呼び出しのシリアル化された入力および出力のバイト数が記録されます。The default behavior when tracing function execution events is to include the number of bytes in the serialized inputs and outputs for function calls. これにより、ログが肥大化することも、機密情報が誤ってログに公開されることもなく、入力および出力に関する最小限の情報が示されます。This provides minimal information about what the inputs and outputs look like without bloating the logs or inadvertently exposing sensitive information to the logs. このプロパティを true に設定すると、既定の関数ログ記録によって、関数の入力および出力の内容全体がログに記録されます。Setting this property to true causes the default function logging to log the entire contents of function inputs and outputs.
EventGridTopicEndpointEventGridTopicEndpoint Azure Event Grid カスタム トピック エンドポイントの URL。The URL of an Azure Event Grid custom topic endpoint. このプロパティが設定されている場合は、オーケストレーションのライフ サイクル通知イベントがこのエンドポイントに発行されます。When this property is set, orchestration life cycle notification events are published to this endpoint.
EventGridKeySettingNameEventGridKeySettingName EventGridTopicEndpoint での Azure Event Grid カスタム トピックによる認証に使用されるキーを含むアプリ設定の名前。The name of the app setting containing the key used for authenticating with the Azure Event Grid custom topic at EventGridTopicEndpoint.

これらの多くはパフォーマンスの最適化を目的としています。Many of these are for optimizing performance. 詳細については、パフォーマンスとスケールに関するページをご覧ください。For more information, see Performance and scale.

eventHubeventHub

Event Hub トリガーとバインディングの構成設定。Configuration settings for Event Hub triggers and bindings.

{
    "eventHub": {
      "maxBatchSize": 64,
      "prefetchCount": 256,
      "batchCheckpointFrequency": 1
    }
}
プロパティProperty 既定値Default 説明Description
maxBatchSizemaxBatchSize 6464 受信ループあたりで受信される最大イベント数。The maximum event count received per receive loop.
prefetchCountprefetchCount 該当なしn/a 基になる EventProcessorHost に使用される既定の PrefetchCount。The default PrefetchCount that will be used by the underlying EventProcessorHost.
batchCheckpointFrequencybatchCheckpointFrequency 11 EventHub カーソル チェックポイントを作成する前に処理するイベント バッチ数。The number of event batches to process before creating an EventHub cursor checkpoint.

functionsfunctions

ジョブのホストが実行される関数の一覧。A list of functions that the job host will run. 空の配列は、すべての関数を実行することを示します。An empty array means run all functions. ローカルで実行する場合にのみ使用します。Intended for use only when running locally. 関数アプリでは、function.jsondisabled プロパティを使用します。host.json のこのプロパティは使用しません。In function apps, use the function.json disabled property rather than this property in host.json.

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

functionTimeoutfunctionTimeout

すべての関数のタイムアウト期間を示します。Indicates the timeout duration for all functions. 従量課金プランの有効な範囲は 1 秒から 10 分であり、既定値は 5 分です。In Consumption plans, the valid range is from 1 second to 10 minutes, and the default value is 5 minutes. App Service プランに制限はありません。既定値は null です (タイムアウトなしを示します)。In App Service plans, there is no limit and the default value is 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
有効enabled truetrue 機能が有効になっているかどうか。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 for http triggers and bindings.

{
    "http": {
        "routePrefix": "api",
        "maxOutstandingRequests": 20,
        "maxConcurrentRequests": 10,
        "dynamicThrottlesEnabled": false
    }
}
プロパティProperty 既定値Default 説明Description
routePrefixroutePrefix apiapi すべてのルートに適用されるルート プレフィックス。The route prefix that applies to all routes. 既定のプレフィックスを削除するには、空の文字列を使用します。Use an empty string to remove the default prefix.
maxOutstandingRequestsmaxOutstandingRequests -1-1 特定の時点で保持される未処理の要求の最大数。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. 既定値は unbounded です。The default is unbounded.
maxConcurrentRequestsmaxConcurrentRequests -1-1 並列で実行される 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. 既定値は unbounded です。The default is unbounded.
dynamicThrottlesEnableddynamicThrottlesEnabled falsefalse この設定を有効にすると、要求処理パイプラインが、システム パフォーマンス カウンター (接続、スレッド、プロセス、メモリ、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.

idid

ジョブ ホストの一意の ID。The unique ID for a job host. ダッシュを削除した小文字の GUID を指定できます。Can be a lower case GUID with dashes removed. ローカルで実行しているときに必要です。Required when running locally. Azure Functions で実行する場合、id を省略すると、ID は自動的に生成されます。When running in Azure Functions, an ID is generated automatically if id is omitted.

ストレージ アカウントを複数の関数アプリで共有している場合は、各関数アプリの id がそれぞれ異なることを確認してください。If you share a Storage account across multiple function apps, make sure that each function app has a different id. id プロパティは省略することができます。あるいは、各関数アプリの id を手動でそれぞれ異なる値に設定することもできます。You can omit the id property or manually set each function app's id to a different value. 1 つの関数アプリが複数のインスタンスにスケール アウトする場合、タイマー インスタンスが 1 しか存在しないようにするために、タイマー トリガーではストレージ ロックが使用されます。The timer trigger uses a storage lock to ensure that there will be only one timer instance when a function app scales out to multiple instances. 2 つの関数アプリが同じ id を共有していて、それぞれタイマー トリガーを使用している場合は、1 つのタイマーのみが実行されます。If two function apps share the same id and each uses a timer trigger, only one timer will run.

{
    "id": "9f4ea53c5136457d883d685e57164f08"
}

loggerlogger

ILogger object から出力されたログまたは context.log ログのフィルターを制御します。Controls filtering for logs written by an ILogger object or by context.log.

{
    "logger": {
        "categoryFilter": {
            "defaultLevel": "Information",
            "categoryLevels": {
                "Host": "Error",
                "Function": "Error",
                "Host.Aggregator": "Information"
            }
        }
    }
}
プロパティProperty 既定値Default [説明]Description
categoryFiltercategoryFilter 該当なしn/a カテゴリ別のフィルターを指定しますSpecifies filtering by category
defaultLeveldefaultLevel 情報Information categoryLevels 配列に指定されていないカテゴリの場合、このレベル以上のログを Application Insights に送信します。For any categories not specified in the categoryLevels array, send logs at this level and above to Application Insights.
categoryLevelscategoryLevels 該当なしn/a 各カテゴリの Application Insights に送信される最小ログ レベルを指定するカテゴリの配列。An array of categories that specifies the minimum log level to send to Application Insights for each category. ここで指定されるカテゴリは、同じ値で始まるすべてのカテゴリを制御し、長い値の方が優先されます。The category specified here controls all categories that begin with the same value, and longer values take precedence. 前述のサンプル host.json ファイルでは、Information レベルの "Host.Aggregator" で始まるすべてのカテゴリ。In the preceding sample host.json file, all categories that begin with "Host.Aggregator" log at Information level. Error レベルのログである、"Host.Executor" など "Host" で始まるその他すべてのカテゴリ。All other categories that begin with "Host", such as "Host.Executor", log at Error level.

queuesqueues

Storage キュー トリガーとバインディングの構成設定。Configuration settings for Storage queue triggers and bindings.

{
    "queues": {
      "maxPollingInterval": 2000,
      "visibilityTimeout" : "00:00:30",
      "batchSize": 16,
      "maxDequeueCount": 5,
      "newBatchThreshold": 8
    }
}
プロパティProperty 既定値Default [説明]Description
maxPollingIntervalmaxPollingInterval 6000060000 キューのポーリングの最大間隔 (ミリ秒)。The maximum interval in milliseconds between queue polls.
visibilityTimeoutvisibilityTimeout 00 メッセージの処理が失敗したときの再試行間隔。The time interval between retries when processing of a message fails.
batchSizebatchSize 1616 Functions ランタイムが同時に取得して並列で処理するキュー メッセージの数。The number of queue messages that the Functions runtime retrieves simultaneously and processes in parallel. 処理中のメッセージの数が newBatchThreshold まで減少すると、ランタイムは は別のバッチを取得し、そのメッセージの処理を開始します。When the number being processed gets down to the newBatchThreshold, the runtime gets another batch and starts processing those messages. そのため、1 つの関数につき同時に処理されるメッセージの最大数は、batchSizenewBatchThreshold を加えた値です。So the maximum number of concurrent messages being processed per function is batchSize plus newBatchThreshold. この制限は、キューによってトリガーされる各関数に個別に適用されます。This limit applies separately to each queue-triggered function.

1 つのキューで受信した複数のメッセージの並列実行を回避したい場合は、batchSize を 1 に設定します。If you want to avoid parallel execution for messages received on one queue, you can set batchSize to 1. ただし、この設定では、関数アプリが単一の仮想マシン (VM) で実行されている限り、同時実行できません。However, this setting eliminates concurrency only so long as your function app runs on a single virtual machine (VM). この関数アプリを複数の VM にスケール アウトすると、各 VM では、キューによってトリガーされる関数ごとに 1 つのインスタンスを実行できます。If the function app scales out to multiple VMs, each VM could run one instance of each queue-triggered function.

最大の batchSize は 32 です。The maximum batchSize is 32.
maxDequeueCountmaxDequeueCount 55 有害キューに移動する前に、メッセージの処理を試行する回数。The number of times to try processing a message before moving it to the poison queue.
newBatchThresholdnewBatchThreshold batchSize/2batchSize/2 同時に処理されているメッセージの数がこの数まで減少すると、ランタイムは別のバッチを取得します。Whenever the number of messages being processed concurrently gets down to this number, the runtime retrieves another batch.

serviceBusserviceBus

Service Bus トリガーとバインディングの構成設定。Configuration setting for Service Bus triggers and bindings.

{
    "serviceBus": {
      "maxConcurrentCalls": 16,
      "prefetchCount": 100,
      "autoRenewTimeout": "00:05:00"
    }
}
プロパティProperty 既定値Default 説明Description
maxConcurrentCallsmaxConcurrentCalls 1616 メッセージ ポンプが開始する必要があるコールバックの同時呼び出しの最大数The maximum number of concurrent calls to the callback that the message pump should initiate. 既定では、Functions ランタイムは、複数のメッセージを同時に処理します。By default, the Functions runtime processes multiple messages concurrently. 一度に 1 つのキューまたはトピックのメッセージのみを処理するようにランタイムに指示するには、maxConcurrentCalls を 1 に設定します。To direct the runtime to process only a single queue or topic message at a time, set maxConcurrentCalls to 1.
prefetchCountprefetchCount 該当なしn/a 基になる MessageReceiver に使用される既定の PrefetchCount。The default PrefetchCount that will be used by the underlying MessageReceiver.
autoRenewTimeoutautoRenewTimeout 00:05:0000:05:00 メッセージ ロックが自動的に更新される最大間隔。The maximum duration within which the message lock will be renewed automatically.

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.

tracingtracing

TraceWriter オブジェクトを使用して作成するログの構成設定。Configuration settings for logs that you create by using a TraceWriter object. C# のログの記録Node.js のログの記録に関するページを参照してください。See C# Logging and Node.js Logging.

{
    "tracing": {
      "consoleLevel": "verbose",
      "fileLoggingMode": "debugOnly"
    }
}
プロパティProperty 既定値Default [説明]Description
consoleLevelconsoleLevel infoinfo コンソール ログのトレース レベル。The tracing level for console logging. オプションは、offerrorwarninginfo、および verbose です。Options are: off, error, warning, info, and verbose.
fileLoggingModefileLoggingMode debugOnlydebugOnly ファイルのログ記録のトレース レベル。The tracing level for file logging. オプションは、neveralwaysdebugOnly です。Options are never, always, debugOnly.

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