次の方法で共有


Azure Functions 2.x 以降の host.json のリファレンス

host.json メタデータ ファイルには、関数アプリ インスタンス内のすべての関数に影響する構成オプションが含まれています。 この記事では、Azure Functions ランタイムのバージョン 2.x 移行で使用できる設定を一覧表示しています。

注意

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

その他の関数アプリの構成オプションは、関数アプリが実行される場所に応じて管理されます。

バインドに関連する host.json 内の構成は、関数アプリの各関数に均等に適用されます。

また、アプリケーション設定を使用して、環境ごとに設定をオーバーライドまたは適用することもできます。

サンプル host.json ファイル

バージョン 2.x 以降用の次のサンプルの host.json ファイルには、使用可能なすべてのオプションが指定されています (内部でのみ使用するオプションは除く)。

{
    "version": "2.0",
    "aggregator": {
        "batchSize": 1000,
        "flushTimeout": "00:00:30"
    },
    "concurrency": { 
            "dynamicConcurrencyEnabled": true, 
            "snapshotPersistenceEnabled": true 
        },
    "extensions": {
        "blobs": {},
        "cosmosDb": {},
        "durableTask": {},
        "eventHubs": {},
        "http": {},
        "queues": {},
        "sendGrid": {},
        "serviceBus": {}
    },
    "extensionBundle": {
        "id": "Microsoft.Azure.Functions.ExtensionBundle",
        "version": "[4.0.0, 5.0.0)"
    },
    "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" : 20,
              "evaluationInterval": "01:00:00",
              "initialSamplingPercentage": 100.0, 
              "samplingPercentageIncreaseTimeout" : "00:00:01",
              "samplingPercentageDecreaseTimeout" : "00:00:01",
              "minSamplingPercentage": 0.1,
              "maxSamplingPercentage": 100.0,
              "movingAverageRatio": 1.0,
              "excludedTypes" : "Dependency;Event",
              "includedTypes" : "PageView;Trace"
            },
            "dependencyTrackingOptions": {
                "enableSqlCommandTextInstrumentation": true
            },
            "enableLiveMetrics": true,
            "enableDependencyTracking": true,
            "enablePerformanceCountersCollection": true,            
            "httpAutoCollectionOptions": {
                "enableHttpTriggerExtendedInfoCollection": true,
                "enableW3CDistributedTracing": true,
                "enableResponseHeaderInjection": true
            },
            "snapshotConfiguration": {
                "agentEndpoint": null,
                "captureSnapshotMemoryWeight": 0.5,
                "failedRequestLimit": 3,
                "handleUntrackedExceptions": true,
                "isEnabled": true,
                "isEnabledInDeveloperMode": false,
                "isEnabledWhenProfiling": true,
                "isExceptionSnappointsEnabled": false,
                "isLowPrioritySnapshotUploader": true,
                "maximumCollectionPlanSize": 50,
                "maximumSnapshotsRequired": 3,
                "problemCounterResetInterval": "24:00:00",
                "provideAnonymousTelemetry": true,
                "reconnectInterval": "00:15:00",
                "shadowCopyFolder": null,
                "shareUploaderProcess": true,
                "snapshotInLowPriorityThread": true,
                "snapshotsPerDayLimit": 30,
                "snapshotsPerTenMinutesLimit": 1,
                "tempFolder": null,
                "thresholdForSnapshotting": 1,
                "uploaderProxy": null
            }
        }
    },
    "managedDependency": {
        "enabled": true
    },
    "singleton": {
      "lockPeriod": "00:00:15",
      "listenerLockPeriod": "00:01:00",
      "listenerLockRecoveryPollingInterval": "00:01:00",
      "lockAcquisitionTimeout": "00:01:00",
      "lockAcquisitionPollingInterval": "00:00:03"
    },
    "telemetryMode": "OpenTelemetry",
    "watchDirectories": [ "Shared", "Test" ],
    "watchFiles": [ "myFile.txt" ]
}

この記事の次のセクションでは、最上位レベルの各プロパティについて説明します。 特記がない場合は、いずれも省略可能です。

aggregator

Application Insights のメトリックを計算するときに集計される関数呼び出しの数を指定します。

{
    "aggregator": {
        "batchSize": 1000,
        "flushTimeout": "00:00:30"
    }
}
プロパティ Default 説明
batchSize 1000 集計する要求の最大数。
flushTimeout 00:00:30 集計する最長期間。

2 つの制限のいずれかに最初に達した場合、関数呼び出しが集計されます。

applicationInsights

この設定は logging の子です。

サンプリング オプションなど、Application Insights のオプションを制御します。

完全な JSON 構造については、前の サンプル host.json ファイル を参照してください。

注意

ログ サンプリングが原因で、一部の実行が Application Insights の [モニター] ブレードに表示されない場合があります。 ログ サンプリングを回避するには、excludedTypes: "Request"samplingSettings 値に追加します。

プロパティ Default 説明
samplingSettings 該当なし applicationInsights.samplingSettings」を参照してください。
dependencyTrackingOptions 該当なし applicationInsights.dependencyTrackingOptions」を参照してください。
enableLiveMetrics true ライブ メトリックの収集を有効にします。
enableDependencyTracking true 依存関係の追跡を有効にします。
enablePerformanceCountersCollection true Kudu パフォーマンス カウンターの収集を有効にします。
liveMetricsInitializationDelay 00:00:15 内部使用専用です。
httpAutoCollectionOptions 該当なし applicationInsights.httpAutoCollectionOptions」を参照してください。
snapshotConfiguration 該当なし applicationInsights.snapshotConfiguration」を参照してください。

applicationInsights.samplingSettings

これらの設定の詳細については、「Application Insights におけるサンプリング」を参照してください。

プロパティ Default 説明
isEnabled true サンプリングを有効または無効にします。
maxTelemetryItemsPerSecond 20 各サーバー ホストで 1 秒あたりにログに記録されるテレメトリ項目の目標数。 アプリを多数のホストで実行する場合、トラフィックの全体的なターゲット レート内に収まるように、この値を削減します。
evaluationInterval 01:00:00 テレメトリの現在のレートを再評価する間隔。 評価は移動平均として実行されます。 急変しやすいテレメトリの場合は、この間隔を短くすることもできます。
initialSamplingPercentage 100.0 サンプリング率が動的に変化するサンプリング プロセスの開始時に適用される初期サンプリング率。 デバッグ中はこの値を減らさないでください。
samplingPercentageIncreaseTimeout 00:00:01 サンプリング率が変化する場合、このプロパティにより、変化してからどのくらいの時間が経過すると、Application Insights でサンプリング率を上げてキャプチャ データ量を増やすことができるようになるかが決まります。
samplingPercentageDecreaseTimeout 00:00:01 サンプリング率が変化する場合、このプロパティにより、変化してからどのくらいの時間が経過すると、Application Insights でサンプリング率を下げてキャプチャ データ量を減らすことができるようになるかが決まります。
minSamplingPercentage 0.1 サンプリング率がさまざまであるため、このプロパティにより、許容される最小サンプリング率を決定します。
maxSamplingPercentage 100.0 サンプリング率がさまざまであるため、このプロパティにより、許容される最大サンプリング率が決定されます。
movingAverageRatio 1.0 移動平均の計算で最新値に割り当てられる重み。 1 以下の値を使用します。 小さい値にすると、急変に対する反応が低いアルゴリズムになります。
excludedTypes null サンプリングしない型をセミコロンで区切ったリスト。 認識される種類は、DependencyEventExceptionPageViewRequestTrace です。 指定された型のすべてのインスタンスが転送されます。指定されていない型はサンプリングされます。
includedTypes null サンプリングする型をセミコロンで区切ったリスト。空のリストはすべての型を意味します。 excludedTypes にリストされた型は、ここにリストされた型をオーバーライドします。 認識される種類は、DependencyEventExceptionPageViewRequestTrace です。 指定された型のインスタンスがサンプリングされます。明示的にも暗黙的にも指定されていない型はサンプリングなしで転送されます。

applicationInsights.httpAutoCollectionOptions

プロパティ Default 説明
enableHttpTriggerExtendedInfoCollection true HTTP トリガーの拡張 HTTP 要求情報 (受信要求の関連付けヘッダー、複数のインストルメンテーション キーのサポート、HTTP メソッド、パス、応答) を有効または無効にします。
enableW3CDistributedTracing true W3C 分散トレース プロトコルのサポートを有効または無効にします (さらに、レガシの相関スキーマをオンにします)。 enableHttpTriggerExtendedInfoCollection が true の場合、既定で有効になります。 enableHttpTriggerExtendedInfoCollection が false の場合、このフラグは、送信要求にのみ適用され、受信要求には適用されません。
enableResponseHeaderInjection true 複数のコンポーネントの関連付けヘッダーの応答への挿入を有効または無効にします。 挿入を有効にすると、複数のインストルメンテーション キーを使用する場合に、Application Insights でアプリケーション マップを作成できます。 enableHttpTriggerExtendedInfoCollection が true の場合、既定で有効になります。 enableHttpTriggerExtendedInfoCollection が false の場合、この設定は適用されません。

applicationInsights.dependencyTrackingOptions

プロパティ Default 説明
enableSqlCommandTextInstrumentation false 既定では無効になっている、SQL クエリのフルテキストの収集を有効にします。 SQL クエリ テキストの収集の詳細については、「詳細な SQL 追跡で完全な SQL クエリを取得する」を参照してください。

applicationInsights.snapshotConfiguration

スナップショットの詳細については、「.NET アプリでの例外でのデバッグ スナップショット」および「Application Insights Snapshot Debugger の有効化やスナップショットの表示に関する問題のトラブルシューティング」を参照してください。

プロパティ Default 説明
agentEndpoint null Application Insights スナップショット デバッガー サービスに接続するために使用されるエンドポイント。 null の場合、既定のエンドポイントが使用されます。
captureSnapshotMemoryWeight 0.5 スナップショットを取得するのに十分なメモリがあるかどうかを確認するときに、現在のプロセス メモリのサイズに割り当てられる重み。 予期される値は、0 より大きい真分数 (0 < CaptureSnapshotMemoryWeight < 1) です。
failedRequestLimit 3 テレメトリ プロセッサが無効になるまでに、スナップショットを要求する要求が失敗する回数の制限。
handleUntrackedExceptions true Application Insights テレメトリで追跡されない例外の追跡を有効または無効にします。
isEnabled true スナップショットの収集を有効または無効にします。
isEnabledInDeveloperMode false 開発モードでのスナップショットの収集を有効または無効にします。
isEnabledWhenProfiling true Application Insights Profiler で詳細なプロファイル セッションを収集している場合でも、スナップショットの作成を有効または無効にします。
isExceptionSnappointsEnabled false 例外のフィルター処理を有効または無効にします。
isLowPrioritySnapshotUploader true SnapshotUploader プロセスを通常の優先順位以下で実行するかどうかを決定します。
maximumCollectionPlanSize 50 任意の時点で追跡可能な問題の最大個数 (1 から 9999 の範囲内)。
maximumSnapshotsRequired 3 単一の問題について収集されるスナップショットの最大数 (1 から 999 の範囲内)。 問題は、アプリケーション内の個別の throw ステートメントと見なすことができます。 問題について収集されるスナップショット数がこの値に達すると、問題カウンターがリセットされるまで (problemCounterResetInterval を参照)、および thresholdForSnapshotting 制限に再度達するまで、その問題のスナップショットは収集されなくなります。
problemCounterResetInterval 24:00:00 問題カウンターをリセットする頻度 (1 分から 7 日の範囲内)。 この間隔に達すると、すべての問題カウントが 0 にリセットされます。 既存の問題について、スナップショットを実行するためのしきい値に達していても、maximumSnapshotsRequired で指定された数のスナップショットが生成されていない場合は、アクティブのままです。
provideAnonymousTelemetry true 使用状況とエラー テレメトリを匿名で Microsoft に送信するかどうかを決定します。 スナップショット デバッガーに関する問題のトラブルシューティングのサポートを Microsoft に求める場合に、このテレメトリを使用できます。 また、使用状況パターンの監視にも使用されます。
reconnectInterval 00:15:00 スナップショット デバッガー エンドポイントに再接続する頻度。 指定可能な範囲は、1 分から 1 日です。
shadowCopyFolder null シャドウ コピー バイナリに使用するフォルダーを指定します。 設定しない場合、次の環境変数で指定されたフォルダーがこの順で試行されます: Fabric_Folder_App_Temp、LOCALAPPDATA、APPDATA、TEMP。
shareUploaderProcess true true の場合、SnapshotUploader の 1 つのインスタンスだけで、InstrumentationKey を共有する複数のアプリのスナップショットが収集され、アップロードされます。 false に設定すると、SnapshotUploader は、各 (ProcessName, InstrumentationKey) タプルごとに固有になります。
snapshotInLowPriorityThread true スナップショットを、IO 優先度の低いスレッドで処理するかどうかを決定します。 スナップショットの作成は高速操作ですが、スナップショットをスナップショット デバッガー サービスにアップロードするには、最初にスナップショットをミニダンプとしてディスクに書き込む必要があります。 これは、SnapshotUploader プロセスで発生します。 この値を true に設定すると、低優先度の IO を使用してミニダンプが書き込まれ、アプリケーションとのリソースの競合は発生しません。 この値を false に設定すると、ミニダンプの作成速度は速くなりますが、アプリケーションの速度は低下します。
snapshotsPerDayLimit 30 1 日 (24 時間内) に許容されるスナップショットの最大数。 この制限は、Application Insights サービス側にも適用されます。 アップロードの頻度は、アプリケーション (つまり、インストルメンテーション キー) ごとに、1 日あたり 50 回に制限されます。 この値は、最終的にアップロード時に拒否される追加のスナップショットが作成されるのを防ぐのに役立ちます。 値を 0 に設定すると、制限が完全に取り除かれます。これは推奨されません。
snapshotsPerTenMinutesLimit 1 10 分間に許容されるスナップショットの最大数。 この値に上限はありませんが、この値はアプリケーションのパフォーマンスに影響を与える可能性があるため、運用ワークロードでこの値を増加する場合は注意する必要があります。 スナップショットの作成は高速ですが、スナップショットのミニダンプの作成とスナップショット デバッガーへのアップロードの操作は非常に遅くなり、アプリケーションとのリソース (CPU と I/O の両方) の競合が発生します。
tempFolder null ミニダンプとアップローダー ログ ファイルを書き込むフォルダーを指定します。 設定しない場合、 %TEMP%\Dumps が使用されます。
thresholdForSnapshotting 1 Application Insights により、スナップショットが要求される前に確認される必要がある例外の回数。
uploaderProxy null Snapshot Uploader プロセスで使用されるプロキシ サーバーをオーバーライドします。 アプリケーションがプロキシ サーバーを経由してインターネットに接続する場合、この設定を使用することが必要になる場合があります。 Snapshot Collector はアプリケーションのプロセス内で実行され、同じプロキシ設定を使用します。 しかし、Snapshot Uploader は個別のプロセスとして実行され、プロキシ サーバーを手動で構成することが必要になる場合があります。 この値が null の場合、Snapshot Collector によって System.Net.WebRequest.DefaultWebProxy が調べられ、値が Snapshot Uploader に渡されて、プロキシのアドレスの自動検出が試みられます。 この値が null 以外の場合、Snapshot Uploader では、自動検出は使用されず、ここで指定されたプロキシ サーバーが使用されます。

BLOB

構成設定は、Storage BLOB のトリガーとバインディングに関する記事に記載されています。

console

この設定は logging の子です。 デバッグ モードでないときのコンソール ログ記録を制御します。

{
    "logging": {
    ...
        "console": {
          "isEnabled": false,
          "DisableColors": true
        },
    ...
    }
}
プロパティ Default 説明
DisableColors false Linux のコンテナー ログで、ログの書式設定を抑制します。 Linux で実行しているときに、意図しない ANSI 制御文字がコンテナー ログに表示される場合は、true に設定します。
isEnabled false コンソール ログ記録を有効または無効にします。

Azure Cosmos DB

構成設定は、Azure Cosmos DB のトリガーとバインディング に関する記事に記載されています。

customHandler

カスタム ハンドラーの構成設定。 詳細については、「Azure Functions のカスタム ハンドラー」を参照してください。

"customHandler": {
  "description": {
    "defaultExecutablePath": "server",
    "workingDirectory": "handler",
    "arguments": [ "--port", "%FUNCTIONS_CUSTOMHANDLER_PORT%" ]
  },
  "enableForwardingHttpRequest": false
}
プロパティ Default 説明
defaultExecutablePath N/A カスタム ハンドラー プロセスとして起動する実行可能ファイル。 カスタム ハンドラーを使用する場合は必須の設定であり、その値は関数アプリのルートを基準とします。
workingDirectory 関数アプリのルート カスタム ハンドラー プロセスを開始する作業ディレクトリ。 これはオプションの設定であり、その値は関数アプリのルートを基準とします。
arguments N/A カスタム ハンドラー プロセスに渡すコマンド ライン引数の配列。
enableForwardingHttpRequest false 設定した場合、HTTP トリガーと HTTP 出力だけで構成されているすべての関数には、カスタム ハンドラーの要求ペイロードではなく、元の HTTP 要求が転送されます。

durableTask

構成設定は、Durable Functions のバインディングに関する記事に記載されています。

concurrency

関数アプリ内の特定のバインディングに対して動的な同時実行制御を有効にします。 詳細については、「動的な同時実行制御」を参照してください。

    { 
        "concurrency": { 
            "dynamicConcurrencyEnabled": true, 
            "snapshotPersistenceEnabled": true 
        } 
    } 
プロパティ Default 説明
dynamicConcurrencyEnabled false この機能でサポートされているすべてのトリガーに対して動的な同時実行制御動作を有効にします。これは、既定ではオフになっています。
snapshotPersistenceEnabled true 学習された同時実行制御の値は定期的にストレージに保存されるため、新しいインスタンスは、1 から開始して学習をやり直すのではなく、これらの値から開始されます。

eventHub

構成設定は、Event Hub のトリガーとバインディングに関する記事に記載されています。

拡張機能

バインド固有の設定 (httpeventHub など) をすべて含むオブジェクトを返すプロパティ。

extensionBundle

拡張機能バンドルを使用すると、互換性のある一連の関数バインド拡張機能を関数アプリに追加できます。 詳細については、「ローカル開発用の拡張機能バンドル」を参照してください。

{
    "version": "2.0",
    "extensionBundle": {
        "id": "Microsoft.Azure.Functions.ExtensionBundle",
        "version": "[4.0.0, 5.0.0)"
    }
}

extensionBundle では次のプロパティを使用できます。

プロパティ 説明
id Microsoft Azure Functions 拡張機能バンドルの名前空間。
version インストールするバンドルのバージョン範囲。 Functions ランタイムは常に、バージョン範囲 (間隔) で定義された最大許容バージョンを選択します。 たとえば、version 値範囲が [4.0.0, 5.0.0) の場合は、4.0.0 から 5.0.0 未満までのすべてのバンドル バージョンを指定できます。 詳細については、バージョン範囲を指定する間隔の表記に関する説明を参照してください。

functions

ジョブのホストが実行される関数の一覧。 空の配列は、すべての関数を実行することを示します。 ローカルで実行する場合にのみ使用します。 Azure の関数アプリでは、この設定を使用する代わりに、「Azure Functions で関数を無効にする方法」の手順に従って、特定の関数を無効にする必要があります。

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

functionTimeout

すべての関数実行のタイムアウト期間を示します。 これは、期間文字列形式に従います。

プランの種類 既定値 (分) 最大値 (分)
従量課金 5 10
Premium1 30 -1 (無制限)2
専用 (App Service) 30 -1 (無制限)2

1 Premium プランの実行が保証されるのは 60 分間のみですが、技術的には無制限です。
2-1 の値は無制限の実行を示しますが、固定の上限を維持することをお勧めします。

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

healthMonitor

ホストの正常性監視を行うための構成設定です。

{
    "healthMonitor": {
        "enabled": true,
        "healthCheckInterval": "00:00:10",
        "healthCheckWindow": "00:02:00",
        "healthCheckThreshold": 6,
        "counterThreshold": 0.80
    }
}
プロパティ Default 説明
enabled true 機能が有効かどうかを指定します。
healthCheckInterval 10 秒 定期的なバック グラウンドでの正常性チェックの間隔。
healthCheckWindow 2 分 healthCheckThreshold 設定と組み合わせて使用するスライド時間枠。
healthCheckThreshold 6 正常性チェックの最大失敗回数。この回数を超えると、ホスト リサイクルが開始されます。
counterThreshold 0.80 パフォーマンス カウンターが異常とみなされるしきい値。

http

構成設定は、HTTP トリガーとバインディングに関する記事に記載されています。

logging

Application Insights など、関数アプリのログの動作を制御します。

"logging": {
    "fileLoggingMode": "debugOnly",
    "logLevel": {
      "Function.MyFunction": "Information",
      "default": "None"
    },
    "console": {
        ...
    },
    "applicationInsights": {
        ...
    }
}
プロパティ Default 説明
fileLoggingMode debugOnly Azure で実行するときのファイル ログ記録の動作を決定します。 オプションは neveralwaysdebugOnly です。 この設定は、ローカルで実行するときは使用されません。 Azure で関数をデバッグするときは、可能であれば Application Insights を使用する必要があります。 always を使用すると、アプリのコールド スタート動作とデータ スループットに悪影響が及びます。 既定の debugOnly の設定では、Azure portal を使用してデバッグするときにログ ファイルが生成されます。
logLevel 該当なし アプリ内の関数に対するログ カテゴリのフィルター処理を定義するオブジェクト。 この設定により、特定の関数についてログをフィルター処理できます。 詳細については、「ログ レベルを構成する」を参照してください。
console 該当なし console ログ記録の設定。
applicationInsights 該当なし applicationInsights の設定。

managedDependency

マネージド依存関係は、現在 PowerShell ベースの関数でのみサポートされている機能です。 この機能を使用すると、サービスによって依存関係を自動的に管理できます。 enabled プロパティが true に設定されている場合は、requirements.psd1 ファイルが処理されます。 いずれかのマイナー バージョンがリリースされると、依存関係が更新されます。 詳細については、PowerShell の記事のマネージド依存関係に関する記事をご覧ください。

{
    "managedDependency": {
        "enabled": true
    }
}

queues

構成設定は、Storage キュー トリガーとバインディングに関する記事に記載されています。

sendGrid

構成設定は、SendGrid のトリガーとバインディングに関する記事に記載されています。

serviceBus

構成設定は、Service Bus のトリガーとバインディングに関する記事に記載されています。

singleton

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

{
    "singleton": {
      "lockPeriod": "00:00:15",
      "listenerLockPeriod": "00:01:00",
      "listenerLockRecoveryPollingInterval": "00:01:00",
      "lockAcquisitionTimeout": "00:01:00",
      "lockAcquisitionPollingInterval": "00:00:03"
    }
}
プロパティ Default 説明
lockPeriod 00:00:15 関数レベルのロックの取得期間。 ロックの自動更新。
listenerLockPeriod 00:01:00 リスナーのロックの取得期間。
listenerLockRecoveryPollingInterval 00:01:00 スタートアップ時にリスナーのロックを獲得できなかった場合に、リスナーのロックの回復に使用される時間間隔。
lockAcquisitionTimeout 00:01:00 ランタイムがロックの獲得を試行する最長時間。
lockAcquisitionPollingInterval 該当なし ロックの獲得の試行間隔。

telemetryMode

この機能は現在プレビュー段階です。

OpenTelemetry をサポートする 1 つ以上のエンドポイントへの OpenTelemetry 出力形式のログとトレースの出力を有効にするために使用されます。 この設定を OpenTelemetry に設定すると、OpenTelemetry 出力が使用されます。 既定では、この設定を行わないと、すべてのログ、トレース、およびイベントが標準出力を使用して Application Insights に送信されます。 詳細については、「 Azure Functions での OpenTelemetry の使用」を参照してください。

version

この値は、host. json のスキーマ バージョンを示します。 v2 ランタイム、またはそれ以降のバージョンを対象とする関数アプリでは、バージョン文字列 "version": "2.0" が必要です。 v2 と v3 間での host.json スキーマの変更はありません。

watchDirectories

変更を監視する共有コード ディレクトリのセット。 これらのディレクトリ内のコードを変更した場合に、関数によって変更を選択するようにします。

{
    "watchDirectories": [ "Shared" ]
}

watchFiles

アプリを再起動する必要がある変更について監視されているファイルの 1 つ以上の名前の配列。 これにより、これらのファイル内のコードが変更されたときに、その更新が関数によって取得されることが保証されます。

{
    "watchFiles": [ "myFile.txt" ]
}

host.json 値をオーバーライドする

host.json ファイル自体を変更せずに、特定の環境用に host.json ファイル内の特定の設定を構成または変更することが必要な場合があります。 特定の host.json 値をオーバーライドするには、等価の値をアプリケーション設定として作成します。 ランタイムは、AzureFunctionsJobHost__path__to__setting 形式のアプリケーション設定を検出すると、JSON の path.to.setting にある等価の host.json 設定をオーバーライドします。 アプリケーション設定として表現した場合、JSON 階層を示すために使用されるドット (.) は 2 つのアンダースコア (__) に置き換えられます。

たとえば、ローカルで実行しているときに Application Insight のサンプリングを無効にするとします。 ローカルの host.json ファイルを変更して Application Insights を無効にした場合、この変更がデプロイ中に運用アプリにプッシュされる可能性があります。 これをより安全に行うには、代わりに local.settings.json ファイル内にアプリケーション設定を "AzureFunctionsJobHost__logging__applicationInsights__samplingSettings__isEnabled":"false" として作成します。 これは、次の local.settings.json ファイルで確認できます。このファイルは発行されません。

{
    "IsEncrypted": false,
    "Values": {
        "AzureWebJobsStorage": "{storage-account-connection-string}",
        "FUNCTIONS_WORKER_RUNTIME": "{language-runtime}",
        "AzureFunctionsJobHost__logging__applicationInsights__samplingSettings__isEnabled":"false"
    }
}

環境変数を使用した host.json 設定のオーバーライドは、ASP.NET Core の名前付け規則に従います。 要素構造に配列が含まれている場合は、数値配列のインデックスをこのパスの追加の要素名として扱う必要があります。 詳細については、「環境変数の名前付け」を参照してください。

次のステップ