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:
- Wdrożone na platformie Azure: w ustawieniach aplikacji
- Na komputerze lokalnym: w pliku local.settings.json .
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 , PageView Exception , 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 , PageView Exception , 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 maximumSnapshotsRequired programie , 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 , always i 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.