Dokumentacja pliku host.json dla usługi Azure Functions w wersji 2.x lub nowszej

Plik metadanych host.json zawiera opcje konfiguracji, które mają wpływ na wszystkie funkcje w wystąpieniu aplikacji funkcji. W tym artykule wymieniono ustawienia, które są dostępne począwszy od wersji 2.x środowiska uruchomieniowego Azure Functions.

Uwaga

Ten artykuł dotyczy wersji Azure Functions 2.x i nowszych. Aby uzyskać informacje o pliku host.json w usłudze Functions 1.x, zobacz dokumentację pliku host.json dla Azure Functions 1.x.

Inne opcje konfiguracji aplikacji funkcji są zarządzane w zależności od tego, gdzie działa aplikacja funkcji:

Konfiguracje w pliku host.json związane z powiązaniami są stosowane równie do każdej funkcji w aplikacji funkcji.

Możesz również zastąpić lub zastosować ustawienia dla danego środowiska przy użyciu ustawień aplikacji.

Przykładowy plik host.json

Poniższy przykładowy plik host.json dla wersji 2.x+ zawiera wszystkie możliwe opcje określone (z wyłączeniem wszystkich plików przeznaczonych tylko do użytku wewnętrznego).

{
    "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": "[1.*, 2.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"
    },
    "watchDirectories": [ "Shared", "Test" ],
    "watchFiles": [ "myFile.txt" ]
}

W poniższych sekcjach tego artykułu opisano każdą właściwość najwyższego poziomu. Wszystkie są opcjonalne, chyba że wskazano inaczej.

Agregator

Określa, ile wywołań funkcji jest agregowanych podczas obliczania metryk dla usługi Application Insights.

{
    "aggregator": {
        "batchSize": 1000,
        "flushTimeout": "00:00:30"
    }
}
Właściwość Domyślny Opis
batchSize 1000 Maksymalna liczba żądań do zagregowania.
flushTimeout 00:00:30 Maksymalny okres do zagregowania.

Wywołania funkcji są agregowane po osiągnięciu pierwszego z dwóch limitów.

applicationInsights

To ustawienie jest elementem podrzędnym rejestrowania.

Opcje kontrolek dla usługi Application Insights, w tym opcje próbkowania.

Aby uzyskać pełną strukturę JSON, zobacz wcześniej przykładowy plik host.json.

Uwaga

Próbkowanie dzienników może spowodować, że niektóre wykonania nie będą widoczne w bloku monitora usługi Application Insights. Aby uniknąć próbkowania dzienników, dodaj excludedTypes: "Request" do samplingSettings wartości .

Właściwość Domyślny Opis
samplingSettings n/d Zobacz applicationInsights.samplingSettings.
dependencyTrackingOptions n/d Zobacz applicationInsights.dependencyTrackingOptions.
enableLiveMetrics true Włącza zbieranie metryk na żywo.
enableDependencyTracking true Włącza śledzenie zależności.
enablePerformanceCountersCollection true Włącza zbieranie liczników wydajności kudu.
liveMetricsInitializationDelay 00:00:15 Tylko do użytku wewnętrznego.
httpAutoCollectionOptions n/d Zobacz applicationInsights.httpAutoCollectionOptions.
snapshotConfiguration n/d Zobacz applicationInsights.snapshotConfiguration.

applicationInsights.samplingSettings

Aby uzyskać więcej informacji na temat tych ustawień, zobacz Próbkowanie w usłudze Application Insights.

Właściwość Domyślny Opis
Isenabled true Włącza lub wyłącza próbkowanie.
maxTelemetryItemsPerSecond 20 Docelowa liczba rejestrowanych elementów telemetrii na sekundę na każdym hoście serwera. Jeśli aplikacja działa na wielu hostach, zmniejsz tę wartość, aby zachować ogólną szybkość docelową ruchu.
evaluationInterval 01:00:00 Interwał, w którym jest ponownie oceniana bieżąca szybkość telemetrii. Ocena jest wykonywana jako średnia ruchoma. Możesz skrócić ten interwał, jeśli dane telemetryczne mogą być podatne na nagłe wybuchy.
initialSamplingPercentage 100.0 Początkowa wartość procentowa próbkowania zastosowana na początku procesu próbkowania w celu dynamicznego różnić procent. Nie zmniejszaj wartości podczas debugowania.
samplingPercentageIncreaseTimeout 00:00:01 Po zmianie wartości procentowej próbkowania ta właściwość określa, jak szybko potem usługa Application Insights może ponownie podnieść procent próbkowania w celu przechwycenia większej ilości danych.
samplingPercentageDecreaseTimeout 00:00:01 Gdy wartość procentowa próbkowania zmieni się, ta właściwość określa, jak wkrótce potem usługa Application Insights będzie mogła ponownie obniżyć procent próbkowania, aby przechwycić mniej danych.
minSamplingPercentage 0.1 Ponieważ procent próbkowania różni się, ta właściwość określa minimalną dozwoloną wartość procentową próbkowania.
maxSamplingPercentage 100.0 Ponieważ procent próbkowania różni się, ta właściwość określa maksymalną dozwoloną wartość procentową próbkowania.
movingAverageRatio 1.0 W obliczeniu średniej ruchomej waga przypisana do najnowszej wartości. Użyj wartości równej lub mniejszej niż 1. Mniejsze wartości sprawiają, że algorytm jest mniej reaktywny do nagłych zmian.
excludedTypes null Rozdzielana średnikami lista typów, których nie chcesz próbkować. Rozpoznane typy to: Dependency, , Event, PageViewException, Request, i Trace. Wszystkie wystąpienia określonych typów są przesyłane; typy, które nie są określone, są próbkowane.
includedTypes null Rozdzielana średnikami lista typów, które mają być próbkowane; pusta lista oznacza wszystkie typy. Wpisz wymienione tutaj excludedTypes typy przesłonięć. Rozpoznane typy to: Dependency, , Event, PageViewException, Request, i Trace. Wystąpienia określonych typów są próbkowane; typy, które nie są określone lub implikowane, są przesyłane bez próbkowania.

applicationInsights.httpAutoCollectionOptions

Właściwość Domyślny Opis
enableHttpTriggerExtendedInfoCollection true Włącza lub wyłącza rozszerzone informacje o żądaniu HTTP dla wyzwalaczy HTTP: nagłówki korelacji żądań przychodzących, obsługa kluczy wielo instrumentacji, metoda HTTP, ścieżka i odpowiedź.
enableW3CDistributedTracing true Włącza lub wyłącza obsługę protokołu śledzenia rozproszonego W3C (i włącza starszy schemat korelacji). Włączone domyślnie, jeśli enableHttpTriggerExtendedInfoCollection ma wartość true. Jeśli enableHttpTriggerExtendedInfoCollection jest to fałsz, ta flaga dotyczy tylko żądań wychodzących, a nie żądań przychodzących.
enableResponseHeaderInjection true Włącza lub wyłącza wstrzykiwanie nagłówków korelacji z wieloma składnikami do odpowiedzi. Włączenie iniekcji umożliwia usłudze Application Insights konstruowanie mapy aplikacji w przypadku użycia kilku kluczy instrumentacji. Włączone domyślnie, jeśli enableHttpTriggerExtendedInfoCollection ma wartość true. To ustawienie nie ma zastosowania, jeśli enableHttpTriggerExtendedInfoCollection ma wartość false.

applicationInsights.dependencyTrackingOptions

Właściwość Domyślny Opis
enableSqlCommandTextInstrumentation fałsz Włącza zbieranie pełnego tekstu zapytań SQL, które jest domyślnie wyłączone. Aby uzyskać więcej informacji na temat zbierania tekstu zapytania SQL, zobacz Zaawansowane śledzenie SQL, aby uzyskać pełne zapytanie SQL.

applicationInsights.snapshotConfiguration

Aby uzyskać więcej informacji na temat migawek, zobacz Debugowanie migawek dotyczących wyjątków w aplikacjach platformy .NET i Rozwiązywanie problemów z włączaniem debugera migawki usługi Application Insights lub wyświetlaniem migawek.

Właściwość Domyślny Opis
agentEndpoint null Punkt końcowy używany do nawiązywania połączenia z usługą Application Insights Snapshot Debugger. Jeśli ma wartość null, zostanie użyty domyślny punkt końcowy.
captureSnapshotMemoryWeight 0,5 Waga podana do bieżącego rozmiaru pamięci procesu podczas sprawdzania, czy jest wystarczająca ilość pamięci do utworzenia migawki. Oczekiwana wartość to większa niż 0 odpowiedni ułamek (0 < CaptureSnapshotMemoryWeight < 1).
failedRequestLimit 3 Limit liczby żądań zakończonych niepowodzeniem żądań migawek przed wyłączeniem procesora telemetrii.
handleUntrackedExceptions true Włącza lub wyłącza śledzenie wyjątków, które nie są śledzone przez dane telemetryczne usługi Application Insights.
Isenabled true Włącza lub wyłącza kolekcję migawek
isEnabledInDeveloperMode fałsz Włącza lub wyłącza zbieranie migawek jest włączone w trybie dewelopera.
isEnabledWhenProfiling true Włącza lub wyłącza tworzenie migawek, nawet jeśli profiler usługi Application Insights zbiera szczegółową sesję profilowania.
isExceptionSnappointsEnabled fałsz Włącza lub wyłącza filtrowanie wyjątków.
isLowPrioritySnapshotUploader true Określa, czy należy uruchomić proces SnapshotUploader poniżej normalnego priorytetu.
maximumCollectionPlanSize 50 Maksymalna liczba problemów, które możemy śledzić w dowolnym momencie w zakresie od jednego do 9999.
maximumSnapshotsRequired 3 Maksymalna liczba migawek zebranych dla pojedynczego problemu w zakresie od jednego do 999. Problem może być uważany za pojedynczą instrukcję throw w aplikacji. Gdy liczba migawek zebranych dla problemu osiągnie tę wartość, nie będą zbierane żadne migawki dla tego problemu, dopóki liczniki problemów nie zostaną zresetowane (zobacz problemCounterResetInterval), a thresholdForSnapshotting limit zostanie osiągnięty ponownie.
problemCounterResetInterval 24:00:00 Jak często resetować liczniki problemów w zakresie od jednej minuty do siedmiu dni. Po osiągnięciu tego interwału wszystkie liczby problemów są resetowane do zera. Istniejące problemy, które osiągnęły już próg wykonywania migawek, ale jeszcze nie wygenerowały liczby migawek w maximumSnapshotsRequiredprogramie , pozostają aktywne.
provideAnonymousTelemetry true Określa, czy wysyłać anonimowe dane telemetryczne użycia i błędów do firmy Microsoft. Ta telemetria może być używana, jeśli skontaktujesz się z firmą Microsoft, aby rozwiązać problemy z debugerem migawki. Służy również do monitorowania wzorców użycia.
reconnectInterval 00:15:00 Jak często łączymy się ponownie z punktem końcowym snapshot Debugger. Dozwolony zakres to od jednej minuty do jednego dnia.
shadowCopyFolder null Określa folder, który ma być używany do kopiowania plików binarnych w tle. Jeśli nie zostanie ustawiona, foldery określone przez następujące zmienne środowiskowe są sprawdzane w kolejności: Fabric_Folder_App_Temp, LOCALAPPDATA, APPDATA, TEMP.
shareUploaderProcess true Jeśli ma wartość true, tylko jedno wystąpienie elementu SnapshotUploader będzie zbierać i przekazywać migawki dla wielu aplikacji, które współużytkują klucz InstrumentationKey. Jeśli ustawiono wartość false, element SnapshotUploader będzie unikatowy dla każdej krotki (ProcessName, InstrumentationKey).
snapshotInLowPriorityThread true Określa, czy migawki mają być przetwarzane w wątku o niskim priorytcie we/wy. Tworzenie migawki to szybka operacja, ale w celu przekazania migawki do usługi Snapshot Debugger należy najpierw zapisać ją na dysku jako minidump. Dzieje się tak w procesie SnapshotUploader. Ustawienie tej wartości na wartość true powoduje użycie operacji we/wy o niskim priorytcie do zapisania minidump, co nie będzie konkurować z aplikacją dla zasobów. Ustawienie tej wartości na wartość false przyspiesza tworzenie minidump kosztem spowolnienia aplikacji.
snapshotsPerDayLimit 30 Maksymalna liczba migawek dozwolonych w ciągu jednego dnia (24 godziny). Ten limit jest również wymuszany po stronie usługi Application Insights. Przekazywanie jest ograniczone do 50 dziennie na aplikację (czyli na klucz instrumentacji). Ta wartość pomaga zapobiec tworzeniu dodatkowych migawek, które zostaną ostatecznie odrzucone podczas przekazywania. Wartość zero powoduje całkowite usunięcie limitu, co nie jest zalecane.
snapshotsPerTenMinutesLimit 1 Maksymalna liczba migawek dozwolonych w ciągu 10 minut. Mimo że nie ma górnej granicy tej wartości, należy zachować ostrożność, zwiększając ją w obciążeniach produkcyjnych, ponieważ może to mieć wpływ na wydajność aplikacji. Tworzenie migawki jest szybkie, ale utworzenie minidump migawki i przekazanie jej do usługi Snapshot Debugger to znacznie wolniejsza operacja, która będzie konkurować z aplikacją dla zasobów (zarówno procesora, jak i operacji we/wy).
folder tempFolder null Określa folder do zapisywania minidumps i plików dziennika modułu przekazującego. Jeśli nie zostanie ustawiona, zostanie użyta wartość %TEMP%\Zrzuty .
thresholdForSnapshotting 1 Ile razy usługa Application Insights musi zobaczyć wyjątek, zanim poprosi o migawki.
uploaderProxy null Zastępuje serwer proxy używany w procesie przekazywania migawek. Może być konieczne użycie tego ustawienia, jeśli aplikacja łączy się z Internetem za pośrednictwem serwera proxy. Moduł zbierający migawki jest uruchamiany w ramach procesu aplikacji i będzie używać tych samych ustawień serwera proxy. Jednak moduł przekazujący migawki działa jako oddzielny proces i może być konieczne ręczne skonfigurowanie serwera proxy. Jeśli ta wartość ma wartość null, moduł zbierający migawki podejmie próbę autowykrywania adresu serwera proxy, sprawdzając System.Net.WebRequest.DefaultWebProxy i przekazując wartość do modułu przekazującego migawki. Jeśli ta wartość nie ma wartości null, autodetection nie jest używana, a serwer proxy określony w tym miejscu zostanie użyty w narzędziu do przekazywania migawek.

Bloków blob

Ustawienia konfiguracji można znaleźć w temacie Wyzwalacze i powiązania obiektów blob usługi Storage.

console

To ustawienie jest elementem podrzędnym rejestrowania. Steruje rejestrowaniem konsoli, gdy nie jest w trybie debugowania.

{
    "logging": {
    ...
        "console": {
          "isEnabled": false,
          "DisableColors": true
        },
    ...
    }
}
Właściwość Domyślny Opis
DisableColors fałsz Pomija formatowanie dziennika w dziennikach kontenera w systemie Linux. Ustaw wartość true, jeśli w dziennikach kontenera są wyświetlane niepożądane znaki sterujące ANSI podczas uruchamiania w systemie Linux.
Isenabled fałsz Włącza lub wyłącza rejestrowanie konsoli.

Azure Cosmos DB

Ustawienia konfiguracji można znaleźć w wyzwalaczach i powiązaniach usługi Azure Cosmos DB.

program customHandler

Ustawienia konfiguracji niestandardowego programu obsługi. Aby uzyskać więcej informacji, zobacz Azure Functions niestandardowych procedur obsługi.

"customHandler": {
  "description": {
    "defaultExecutablePath": "server",
    "workingDirectory": "handler",
    "arguments": [ "--port", "%FUNCTIONS_CUSTOMHANDLER_PORT%" ]
  },
  "enableForwardingHttpRequest": false
}
Właściwość Domyślny Opis
defaultExecutablePath n/d Plik wykonywalny do uruchomienia jako proces niestandardowego programu obsługi. Jest to ustawienie wymagane w przypadku korzystania z niestandardowych procedur obsługi, a jego wartość jest względna względem katalogu głównego aplikacji funkcji.
Workingdirectory katalog główny aplikacji funkcji Katalog roboczy, w którym należy uruchomić niestandardowy proces obsługi. Jest to ustawienie opcjonalne, a jego wartość jest względna względem katalogu głównego aplikacji funkcji.
Argumenty n/d Tablica argumentów wiersza polecenia do przekazania do niestandardowego procesu obsługi.
enableForwardingHttpRequest fałsz W przypadku ustawienia wszystkie funkcje składające się tylko z wyzwalacza HTTP i danych wyjściowych HTTP są przekazywane oryginalne żądanie HTTP zamiast ładunku żądania niestandardowego programu obsługi.

durableTask

Ustawienie konfiguracji można znaleźć w powiązaniach dla Durable Functions.

współbieżność

Umożliwia dynamiczną współbieżność dla określonych powiązań w aplikacji funkcji. Aby uzyskać więcej informacji, zobacz Dynamiczne współbieżność.

    { 
        "concurrency": { 
            "dynamicConcurrencyEnabled": true, 
            "snapshotPersistenceEnabled": true 
        } 
    } 
Właściwość Domyślny Opis
dynamicConcurrencyEnabled fałsz Włącza dynamiczne zachowania współbieżności dla wszystkich wyzwalaczy obsługiwanych przez tę funkcję, która jest domyślnie wyłączona.
snapshotPersistenceEnabled true Poznane wartości współbieżności są okresowo utrwalane w magazynie, więc nowe wystąpienia zaczynają się od tych wartości zamiast rozpoczynać się od 1 i muszą ponownie przeprowadzić uczenie.

eventHub

Ustawienia konfiguracji można znaleźć w wyzwalaczach i powiązaniach centrum zdarzeń.

extensions

Właściwość zwracająca obiekt zawierający wszystkie ustawienia specyficzne dla powiązania, takie jak http i eventHub.

extensionBundle

Pakiety rozszerzeń umożliwiają dodawanie zgodnego zestawu rozszerzeń powiązań usługi Functions do aplikacji funkcji. Aby dowiedzieć się więcej, zobacz Pakiety rozszerzeń na potrzeby programowania lokalnego.

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

Następujące właściwości są dostępne w programie extensionBundle:

Właściwość Opis
id Przestrzeń nazw dla pakietów rozszerzeń microsoft Azure Functions.
version Zakres wersji pakietu do zainstalowania. Środowisko uruchomieniowe usługi Functions zawsze wybiera maksymalną dozwoloną wersję zdefiniowaną przez zakres wersji lub interwał. Na przykład version zakres [3.3.0, 4.0.0) wartości zezwala na wszystkie wersje pakietu z wersji 3.3.0 do 4.0.0. Aby uzyskać więcej informacji, zobacz notację interwału określającą zakresy wersji.

— funkcje

Lista funkcji uruchamianych przez hosta zadań. Pusta tablica oznacza uruchamianie wszystkich funkcji. Przeznaczone do użycia tylko w przypadku uruchamiania lokalnego. W aplikacjach funkcji na platformie Azure należy zamiast tego wykonać kroki opisane w temacie Jak wyłączyć funkcje w Azure Functions, aby wyłączyć określone funkcje zamiast używać tego ustawienia.

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

functionTimeout

Wskazuje czas trwania przekroczenia limitu czasu dla wszystkich wykonań funkcji. Jest on zgodny z formatem ciągu przedziału czasu.

Typ planu Wartość domyślna (min) Maksymalna (min)
Zużycie 5 10
Premium1 30 -1 (bez ruchu)2
Dedykowane (App Service) 30 -1 (bez ruchu)2

1 Wykonanie planu Premium jest gwarantowane tylko przez 60 minut, ale technicznie bez ograniczeń.
2 Wartość wskazuje -1 niezwiązane wykonanie, ale zaleca się zachowanie stałej górnej granicy.

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

healthMonitor

Ustawienia konfiguracji monitora kondycji hosta.

{
    "healthMonitor": {
        "enabled": true,
        "healthCheckInterval": "00:00:10",
        "healthCheckWindow": "00:02:00",
        "healthCheckThreshold": 6,
        "counterThreshold": 0.80
    }
}
Właściwość Domyślny Opis
enabled true Określa, czy funkcja jest włączona.
healthCheckInterval 10 sekund Interwał czasu między okresowymi kontrolami kondycji w tle.
healthCheckWindow 2 minuty Przesuwane przedziały czasu używane w połączeniu z ustawieniem healthCheckThreshold .
healthCheckThreshold 6 Maksymalna liczba przypadków niepowodzenia sprawdzania kondycji przed zainicjowaniem recyklingu hosta.
counterThreshold 0,80 Próg, przy którym licznik wydajności zostanie uznany za w złej kondycji.

http

Ustawienia konfiguracji można znaleźć w wyzwalaczach i powiązaniach http.

rejestrowanie

Steruje zachowaniami rejestrowania aplikacji funkcji, w tym usługą Application Insights.

"logging": {
    "fileLoggingMode": "debugOnly",
    "logLevel": {
      "Function.MyFunction": "Information",
      "default": "None"
    },
    "console": {
        ...
    },
    "applicationInsights": {
        ...
    }
}
Właściwość Domyślny Opis
fileLoggingMode debugOnly Określa zachowanie rejestrowania plików podczas uruchamiania na platformie Azure. Opcje to never, alwaysi debugOnly. To ustawienie nie jest używane podczas uruchamiania lokalnego. Jeśli to możliwe, podczas debugowania funkcji na platformie Azure należy użyć usługi Application Insights. Użycie always negatywnie wpływa na zachowanie aplikacji podczas zimnego uruchamiania i przepływność danych. Ustawienie domyślne debugOnly generuje pliki dziennika podczas debugowania przy użyciu Azure Portal.
Loglevel n/d Obiekt definiujący filtrowanie kategorii dzienników dla funkcji w aplikacji. To ustawienie umożliwia filtrowanie rejestrowania dla określonych funkcji. Aby uzyskać więcej informacji, zobacz Konfigurowanie poziomów dziennika.
console n/d Ustawienie rejestrowania konsoli .
applicationInsights n/d Ustawienie applicationInsights .

managedDependency

Zależność zarządzana to funkcja, która jest obecnie obsługiwana tylko w przypadku funkcji opartych na programie PowerShell. Umożliwia ona automatyczne zarządzanie zależnościami przez usługę. Gdy właściwość jest ustawiona enabled na true, requirements.psd1 plik jest przetwarzany. Zależności są aktualizowane po wydaniu wszystkich wersji pomocniczych. Aby uzyskać więcej informacji, zobacz Zależność zarządzana w artykule dotyczącym programu PowerShell.

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

Kolejek

Ustawienia konfiguracji można znaleźć w temacie Wyzwalacze i powiązania kolejki magazynu.

sendGrid

Ustawienie konfiguracji można znaleźć w wyzwalaczach i powiązaniach usługi SendGrid.

serviceBus

Ustawienie konfiguracji można znaleźć w wyzwalaczach i powiązaniach usługi Service Bus.

Singleton

Ustawienia konfiguracji dotyczące zachowania blokady pojedynczej. Aby uzyskać więcej informacji, zobacz Problem z usługą GitHub dotyczący obsługi pojedynczej wersji.

{
    "singleton": {
      "lockPeriod": "00:00:15",
      "listenerLockPeriod": "00:01:00",
      "listenerLockRecoveryPollingInterval": "00:01:00",
      "lockAcquisitionTimeout": "00:01:00",
      "lockAcquisitionPollingInterval": "00:00:03"
    }
}
Właściwość Domyślny Opis
lockPeriod 00:00:15 Okres, dla którego są pobierane blokady poziomu funkcji. Blokady są automatycznie odnawiane.
listenerLockPeriod 00:01:00 Okres, dla którego są pobierane blokady odbiornika.
listenerLockRecoveryPollingInterval 00:01:00 Interwał czasu używany do odzyskiwania blokady odbiornika, jeśli nie można uzyskać blokady odbiornika podczas uruchamiania.
lockAcquisitionTimeout 00:01:00 Maksymalny czas próby uzyskania blokady przez środowisko uruchomieniowe.
lockAcquisitionPollingInterval n/d Interwał między próbami uzyskania blokady.

Wersja

Ta wartość wskazuje wersję schematu pliku host.json. Ciąg "version": "2.0" wersji jest wymagany dla aplikacji funkcji przeznaczonej dla środowiska uruchomieniowego w wersji 2 lub nowszej. Nie ma zmian schematu host.json między wersjami 2 i 3.

watchDirectories

Zestaw udostępnionych katalogów kodu , które powinny być monitorowane pod kątem zmian. Zapewnia, że po zmianie kodu w tych katalogach zmiany są pobierane przez funkcje.

{
    "watchDirectories": [ "Shared" ]
}

watchFiles

Tablica z co najmniej jedną nazwą plików monitorowanych pod kątem zmian, które wymagają ponownego uruchomienia aplikacji. Gwarantuje to, że po zmianie kodu w tych plikach aktualizacje są pobierane przez funkcje.

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

Zastępowanie wartości host.json

Mogą istnieć wystąpienia, w których chcesz skonfigurować lub zmodyfikować określone ustawienia w pliku host.json dla określonego środowiska bez zmiany samego pliku host.json. Określone wartości host.json można zastąpić, tworząc równoważną wartość jako ustawienie aplikacji. Gdy środowisko uruchomieniowe znajdzie ustawienie aplikacji w formacie AzureFunctionsJobHost__path__to__setting, zastępuje równoważne ustawienie host.json znajdujące się w path.to.setting pliku JSON. W przypadku wyrażenia jako ustawienia aplikacji kropka (.) używana do wskazania hierarchii JSON jest zastępowana podwójnym podkreśleniem (__).

Załóżmy na przykład, że chcesz wyłączyć próbkowanie usługi Application Insights podczas uruchamiania lokalnego. Jeśli plik local host.json został zmieniony w celu wyłączenia usługi Application Insights, ta zmiana może zostać wypchnięta do aplikacji produkcyjnej podczas wdrażania. Bezpieczniejszym sposobem, aby to zrobić, jest utworzenie ustawienia aplikacji, tak jak "AzureFunctionsJobHost__logging__applicationInsights__samplingSettings__isEnabled":"false" w local.settings.json pliku. Można to zobaczyć w następującym local.settings.json pliku, który nie jest publikowany:

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

Zastępowanie ustawień host.json przy użyciu zmiennych środowiskowych jest zgodne z konwencjami nazewnictwa ASP.NET Core. Gdy struktura elementu zawiera tablicę, indeks tablicy liczbowej powinien być traktowany jako dodatkowa nazwa elementu w tej ścieżce. Aby uzyskać więcej informacji, zobacz Nazewnictwo zmiennych środowiskowych.

Następne kroki