Udostępnij za pośrednictwem


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 dostępne ustawienia, począwszy od wersji 2.x środowiska uruchomieniowego usługi Azure Functions.

Uwaga

Ten artykuł dotyczy usługi Azure Functions w wersji 2.x i nowszych. Aby zapoznać się z dokumentacją host.json w usłudze Functions 1.x, zobacz host.json reference for Azure Functions 1.x (Dokumentacja usługi 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 host.json powią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 wyjątkiem wszystkich, które są przeznaczone 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": "[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" ]
}

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ści Domyślny opis
batchSize 1000 Maksymalna liczba żądań do agregowania.
flushTimeout 00:00:30 Maksymalny okres do agregowania.

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

applicationInsights

To ustawienie jest elementem podrzędnym rejestrowania.

Kontroluje opcje usługi Application Insights, w tym opcje próbkowania.

Aby uzyskać pełną strukturę JSON, zobacz wcześniejszy 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" wartość samplingSettings .

Właściwości Domyślny opis
samplingSettings nie dotyczy Zobacz applicationInsights.samplingSettings.
dependencyTrackingOptions nie dotyczy Zobacz applicationInsights.dependencyTrackingOptions.
enableLiveMetrics prawda Włącza zbieranie metryk na żywo.
enableDependencyTracking prawda Włącza śledzenie zależności.
enablePerformanceCountersCollection prawda Włącza zbieranie liczników wydajności Kudu.
liveMetricsInitializationDelay 00:00:15 Tylko do użytku wewnętrznego.
httpAutoCollectionOptions nie dotyczy Zobacz applicationInsights.httpAutoCollectionOptions.
snapshotConfiguration nie dotyczy 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ści Domyślny opis
isEnabled prawda Włącza lub wyłącza próbkowanie.
maxTelemetryItemsPerSecond 20 Docelowa liczba zarejestrowanych 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ą docelową szybkość 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 zmieniania wartości procentowej. Nie zmniejszaj wartości podczas debugowania.
samplingPercentageIncreaseTimeout 00:00:01 Gdy wartość procentowa próbkowania zmieni się, ta właściwość określa, jak szybko potem usługa Application Insights może ponownie podnieść procent próbkowania, aby przechwycić więcej danych.
samplingPercentageDecreaseTimeout 00:00:01 Gdy wartość procentowa próbkowania zmieni się, ta właściwość określa, jak szybko potem usługa Application Insights może ponownie obniżyć procent próbkowania w celu przechwycenia mniejszej ilości danych.
minSamplingPercentage 0.1 Ponieważ procent próbkowania jest różny, ta właściwość określa minimalną dozwoloną wartość procentową próbkowania.
maxSamplingPercentage 100,0 Ponieważ procent próbkowania jest różny, 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. Typ wymieniony w excludedTypes typach przesłonięcia wymienionych tutaj. 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ści Domyślny opis
enableHttpTriggerExtendedInfoCollection prawda 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 prawda Włącza lub wyłącza obsługę protokołu rozproszonego śledzenia W3C (i włącza starszy schemat korelacji). Włączone domyślnie, jeśli enableHttpTriggerExtendedInfoCollection ma wartość true. Jeśli enableHttpTriggerExtendedInfoCollection ma wartość false, ta flaga dotyczy tylko żądań wychodzących, a nie żądań przychodzących.
enableResponseHeaderInjection prawda Włącza lub wyłącza wstrzykiwanie nagłówków korelacji wieloskładnikowej 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ści 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 migawek usługi Application Insights lub wyświetlaniem migawek.

Właściwości Domyślny opis
agentEndpoint null Punkt końcowy używany do nawiązywania połączenia z usługą Debugger migawki usługi Application Insights. Jeśli wartość null, zostanie użyty domyślny punkt końcowy.
captureSnapshotMemoryWeight 0.5 Waga podana dla bieżącego rozmiaru pamięci procesu podczas sprawdzania, czy jest wystarczająca ilość pamięci do utworzenia migawki. Oczekiwana wartość jest większa niż 0 właściwego ułamka (0 < CaptureSnapshotMemoryWeight < 1).
failedRequestLimit 3 Limit liczby żądań zakończonych niepowodzeniem żądań migawek przed wyłączeniem procesora telemetrii.
handleUntrackedExceptions prawda Włącza lub wyłącza śledzenie wyjątków, które nie są śledzone przez dane telemetryczne usługi Application Insights.
isEnabled prawda Włącza lub wyłącza kolekcję migawek
isEnabledInDeveloperMode fałsz Włącza lub wyłącza zbieranie migawek jest włączone w trybie dewelopera.
isEnabledWhenProfiling prawda 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 prawda Określa, czy proces SnapshotUploader ma być uruchamiany 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 w przypadku problemu osiągnie tę wartość, nie będą zbierane żadne migawki dla tego problemu, dopóki liczniki problemów nie zostaną zresetowane (zobacz problemCounterResetInterval) i 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 nie wygenerowały jeszcze liczby migawek w maximumSnapshotsRequiredpliku , pozostają aktywne.
provideAnonymousTelemetry prawda Określa, czy wysyłać anonimowe dane telemetryczne użycia i błędów do firmy Microsoft. Te dane telemetryczne mogą być używane, 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 wynosi 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 zostaną wypróbowane w następującej kolejności: Fabric_Folder_App_Temp, LOCALAPPDATA, APPDATA, TEMP.
shareUploaderProcess prawda Jeśli to prawda, tylko jedno wystąpienie klasy 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 prawda Określa, czy należy przetwarzać migawki w wątku o niskim priorytcie we/wy. Tworzenie migawki to szybka operacja, ale aby przekazać migawkę do usługi Snapshot Debugger, najpierw należy ją zapisać na dysku jako minidump. Dzieje się tak w procesie SnapshotUploader. Ustawienie tej wartości na wartość true używa operacji we/wy o niskim priorytcie do zapisania minidump, która 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 całkowicie usuwa limit, który nie jest zalecany.
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 przypadku obciążeń 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 jest znacznie wolniejszą operacją, która będzie konkurować z aplikacją dla zasobów (zarówno procesora CPU, jak i 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żyty %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 będzie używany w narzędziu do przekazywania migawek.

obiekty 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ści 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 niestandardowej procedury obsługi. Aby uzyskać więcej informacji, zobacz Niestandardowe programy obsługi usługi Azure Functions.

"customHandler": {
  "description": {
    "defaultExecutablePath": "server",
    "workingDirectory": "handler",
    "arguments": [ "--port", "%FUNCTIONS_CUSTOMHANDLER_PORT%" ]
  },
  "enableForwardingHttpRequest": false
}
Właściwości Domyślny opis
defaultExecutablePath nie dotyczy Plik wykonywalny do uruchomienia jako niestandardowy proces obsługi. Jest to ustawienie wymagane w przypadku używania 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 nie dotyczy 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 rozszerzenia Durable Functions.

współbieżność

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

    { 
        "concurrency": { 
            "dynamicConcurrencyEnabled": true, 
            "snapshotPersistenceEnabled": true 
        } 
    } 
Właściwości 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 prawda Poznane wartości współbieżności są okresowo utrwalane w magazynie, więc nowe wystąpienia zaczynają się od tych wartości zamiast od 1 i muszą ponownie przeprowadzić naukę.

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ą dodanie 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": "[4.0.0, 5.0.0)"
    }
}

W zbiorze extensionBundlesą dostępne następujące właściwości:

Właściwości opis
id Przestrzeń nazw zbiorów rozszerzeń usługi Microsoft Azure Functions.
version Zakres wersji pakietu do zainstalowania. Środowisko uruchomieniowe usługi Functions zawsze wybiera maksymalnie dozwoloną wersję zdefiniowaną przez zakres wersji lub interwał. Na przykład version zakres [4.0.0, 5.0.0) wartości zezwala na wszystkie wersje pakietu z wersji 4.0.0 do 5.0.0. Aby uzyskać więcej informacji, zapoznaj się z notacją interwału na potrzeby określania zakresów wersji.

— funkcje

Lista funkcji uruchamianych przez hosta zadań. Pusta tablica oznacza uruchamianie wszystkich funkcji. Przeznaczone do użytku 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 usłudze Azure Functions , aby wyłączyć określone funkcje, a nie używać tego ustawienia.

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

functionTimeout

Wskazuje czas trwania przekroczenia limitu czasu dla wszystkich wykonań funkcji. Jest 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ść -1 wskazuje niezwiązane wykonanie, ale zalecane jest 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ści Domyślny opis
enabled prawda Określa, czy funkcja jest włączona.
healthCheckInterval 10 sekund Przedział czasu między okresowymi kontrolami kondycji w tle.
healthCheckWindow 2 minuty Przesuwane okno czasowe 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ści 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 negatywnego wpływu na zachowanie aplikacji podczas zimnego uruchamiania i przepływność danych. Ustawienie domyślne debugOnly generuje pliki dziennika podczas debugowania przy użyciu witryny Azure Portal.
logLevel nie dotyczy 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 nie dotyczy Ustawienie rejestrowania konsoli .
applicationInsights nie dotyczy 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 Zarządzana zależność w artykule dotyczącym programu PowerShell.

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

kolejki

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

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 zachowania pojedynczej blokady. 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ści 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 nie dotyczy Interwał między próbami uzyskania blokady.

telemetryMode

Ta funkcja jest obecnie dostępna w wersji zapoznawczej.

Służy do włączania danych wyjściowych dzienników i śladów w formacie danych wyjściowych OpenTelemetry do co najmniej jednego punktu końcowego obsługującego funkcję OpenTelemetry. Gdy to ustawienie jest ustawione na OpenTelemetrywartość , używane są dane wyjściowe OpenTelemetry. Domyślnie bez tego ustawienia wszystkie dzienniki, ślady i zdarzenia są wysyłane do usługi Application Insights przy użyciu standardowych danych wyjściowych. Aby uzyskać więcej informacji, zobacz Use OpenTelemetry with Azure Functions (Używanie biblioteki OpenTelemetry z usługą Azure Functions).

version

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

watchDirectories

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

{
    "watchDirectories": [ "Shared" ]
}

watchFiles

Tablica co najmniej jednej nazwy 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 host.json lokalnego został zmieniony tak, aby wyłączyć usługę 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 zostanie opublikowany:

{
    "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