Azure Functions 2.x 이상에 대한 host.json 참조

host.json 메타데이터 파일에는 함수 앱 인스턴스의 모든 함수에 영향을 주는 구성 옵션이 포함되어 있습니다. 이 문서에서는 Azure Functions 런타임 버전 2.x부터 사용할 수 있는 설정을 나열합니다.

참고 항목

이 문서는 Azure Functions 2.x 이상 버전용입니다. Functions 1.x의 host.json 대한 참조는 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"
    },
    "watchDirectories": [ "Shared", "Test" ],
    "watchFiles": [ "myFile.txt" ]
}

이 문서의 다음 섹션에서는 각 최상위 속성에 대해 설명합니다. 달리 명시되지 않을 경우 모두 선택 사항입니다.

aggregator

Application Insights에 대한 메트릭을 계산할 때 집계되는 함수 호출 수를 지정합니다.

{
    "aggregator": {
        "batchSize": 1000,
        "flushTimeout": "00:00:30"
    }
}
속성 기본값 설명
batchSize 1000 집계할 최대 요청 수입니다.
flushTimeout 00:00:30 집계할 최대 기간입니다.

함수 호출은 두 개의 한도 중 첫 번째 한에 도달할 때 집계됩니다.

applicationInsights

이 설정은 로깅자식입니다.

샘플링 옵션을 포함하여 Application Insights에 대한 옵션을 제어합니다.

전체 JSON 구조는 이전 host.json 예제 파일을 참조하세요.

참고 항목

로그 샘플링으로 인해 Application Insights 모니터 블레이드에 일부 실행이 표시되지 않을 수 있습니다. 로그 샘플링을 방지하려면 값에 추가 excludedTypes: "Request" 합니다 samplingSettings .

속성 기본값 설명
samplingSettings 해당 없음 applicationInsights.samplingSettings를 참조합니다.
dependencyTrackingOptions 해당 없음 applicationInsights.dependencyTrackingOptions를 참조하세요.
enableLiveMetrics true 라이브 메트릭 수집을 사용하도록 설정합니다.
enableDependencyTracking true 종속성 추적을 사용하도록 설정합니다.
enablePerformanceCountersCollection true Kudu 성능 카운터 수집을 사용하도록 설정합니다.
liveMetricsInitializationDelay 00:00:15 내부 전용.
httpAutoCollectionOptions 해당 없음 applicationInsights.httpAutoCollectionOptions를 참조 하세요.
snapshotConfiguration 해당 없음 applicationInsights.스냅샷 참조 구성.

applicationInsights.sampling설정

이러한 설정에 대한 자세한 내용은 Application Insights의 샘플링을 참조 하세요.

속성 기본값 설명
isEnabled true 샘플링을 사용 여부를 설정합니다.
maxTelemetryItemsPerSecond 20 각 서버 호스트에 초당 기록된 원격 분석 항목의 대상 수입니다. 앱이 여러 호스트에서 실행되는 경우 이 값을 줄여서 전체 목표 트래픽 속도 내에서 유지합니다.
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 샘플링하지 않으려는 형식을 세미콜론으로 구분한 목록입니다. 인식되는 형식은 다음과 DependencyTraceEventExceptionPageViewRequest같습니다. 지정된 형식의 모든 인스턴스가 전송됩니다. 지정되지 않은 형식이 샘플링됩니다.
includedTypes null 샘플링하려는 세미콜론으로 구분된 형식 목록입니다. 빈 목록은 모든 형식을 의미합니다. 여기에 나열된 재정의 excludedTypes 형식에 나열된 형식입니다. 인식되는 형식은 다음과 DependencyTraceEventExceptionPageViewRequest같습니다. 지정된 형식의 인스턴스가 샘플링됩니다. 지정되거나 암시되지 않은 형식은 샘플링 없이 전송됩니다.

applicationInsights.httpAutoCollectionOptions

속성 기본값 설명
enableHttpTriggerExtendedInfoCollection true 들어오는 요청 상관 관계 헤더, 다중 계측 키 지원, HTTP 메서드, 경로 및 응답과 같은 HTTP 트리거에 대한 확장 HTTP 요청 정보를 사용하거나 사용하지 않도록 설정합니다.
enableW3CDistributedTracing true W3C 분산 추적 프로토콜 지원을 사용하거나 사용하지 않도록 설정합니다(레거시 상관 관계 스키마 켜기). true이면 enableHttpTriggerExtendedInfoCollection 기본적으로 사용하도록 설정됩니다. false이면 enableHttpTriggerExtendedInfoCollection 이 플래그는 들어오는 요청이 아닌 나가는 요청에만 적용됩니다.
enableResponseHeaderInjection true 다중 구성 요소 상관 관계 헤더를 응답에 삽입하거나 사용하지 않도록 설정합니다. 삽입을 사용하도록 설정하면 여러 개의 계측 키를 사용할 때 Application Insights에서 애플리케이션 맵을 구성할 수 있습니다. true이면 enableHttpTriggerExtendedInfoCollection 기본적으로 사용하도록 설정됩니다. enableHttpTriggerExtendedInfoCollection이 false인 경우 이 설정은 적용되지 않습니다.

applicationInsights.dependencyTrackingOptions

속성 기본값 설명
enableSqlCommandTextInstrumentation false 기본적으로 사용하지 않도록 설정된 SQL 쿼리의 전체 텍스트 컬렉션을 사용하도록 설정합니다. SQL 쿼리 텍스트 수집에 대한 자세한 내용은 전체 SQL 쿼리를 가져오기 위한 고급 SQL 추적을 참조하세요.

applicationInsights. 스냅샷 구성

스냅샷 대한 자세한 내용은 .NET 앱의 예외에 대한 스냅샷 디버그 및 Application Insights 스냅샷 디버거를 사용하도록 설정하거나 스냅샷 보는 문제 해결을 참조하세요.

속성 기본값 설명
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의 인스턴스 하나만 InstrumentationKey를 공유하는 여러 앱에 대한 스냅샷 수집하고 업로드합니다. false로 설정하면 SnapshotUploader는 각각(ProcessName, InstrumentationKey) 튜플에 대해 고유합니다.
스냅샷InLowPriorityThread true 낮은 IO 우선 순위 스레드에서 스냅샷 처리할지 여부를 결정합니다. 스냅샷 만드는 것은 빠른 작업이지만 스냅샷 디버거 서비스에 스냅샷 업로드하려면 먼저 디스크에 미니덤프로 기록해야 합니다. SnapshotUploader 프로세스에서 발생합니다. 이 값을 true로 설정하면 우선 순위가 낮은 IO를 사용하여 리소스에 대한 애플리케이션과 경쟁하지 않는 미니덤프를 작성합니다. 이 값을 false로 설정하면 애플리케이션의 속도가 느려지는 대신 미니덤프 생성 속도가 빨라집니다.
스냅샷sPerDayLimit 30 하루(24시간)에 허용되는 최대 스냅샷 수입니다. 이 제한은 Application Insights 서비스 쪽에서도 적용됩니다. 업로드 속도는 애플리케이션당 하루 50개(즉, 계측 키당)로 제한됩니다. 이 값은 업로드 중에 결국 거부되는 추가 스냅샷 만드는 것을 방지하는 데 도움이 됩니다. 값이 0이면 제한이 완전히 제거되며 권장되지 않습니다.
스냅샷sPerTenMinutesLimit 1 10분 안에 허용되는 최대 스냅샷 수입니다. 이 값에는 상한이 없지만 애플리케이션의 성능에 영향을 미칠 수 있으므로 프로덕션 워크로드에서 증가시키는 데 주의해야 합니다. 스냅샷 만드는 것은 빠르지만 스냅샷 미니덤프를 만들고 스냅샷 디버거 서비스에 업로드하는 작업은 리소스(CPU 및 I/O 모두)에 대한 애플리케이션과 경쟁하는 훨씬 느린 작업입니다.
tempFolder null 미니덤프 및 업로더 로그 파일을 쓸 폴더를 지정합니다. 설정 하지 않으면 %TEMP%\Dumps 가 사용됩니다.
thresholdForSnapshotting 1 Application Insights가 스냅샷 요청하기 전에 예외를 확인해야 하는 횟수입니다.
uploaderProxy null 스냅샷 업로더 프로세스에 사용되는 프록시 서버를 재정의합니다. 애플리케이션이 프록시 서버를 통해 인터넷에 연결하는 경우 이 설정을 사용해야 할 수 있습니다. 스냅샷 수집기는 애플리케이션의 프로세스 내에서 실행되며 동일한 프록시 설정을 사용합니다. 그러나 스냅샷 업로더는 별도의 프로세스로 실행되며 프록시 서버를 수동으로 구성해야 할 수 있습니다. 이 값이 null인 경우 Snapshot Collector는 System.Net.WebRequest.DefaultWebProxy를 검사하고 값을 스냅샷 업로더로 전달하여 프록시 주소를 자동으로 검색합니다. 이 값이 null이 아니면 자동 검색이 사용되지 않으며 여기에 지정된 프록시 서버가 스냅샷 업로더에 사용됩니다.

blobs

구성 설정은 Storage Blob 트리거 및 바인딩에서 찾을 수 있습니다.

콘솔

이 설정은 로깅자식입니다. 디버깅 모드가 아닌 경우 콘솔 로깅을 제어합니다.

{
    "logging": {
    ...
        "console": {
          "isEnabled": false,
          "DisableColors": true
        },
    ...
    }
}
속성 기본값 설명
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
}
속성 기본값 설명
defaultExecutablePath 해당 없음 사용자 지정 처리기 프로세스로 시작할 실행 파일입니다. 사용자 지정 처리기를 사용하는 경우 필수 설정이며 해당 값은 함수 앱 루트를 기준으로 합니다.
workingDirectory 함수 앱 루트 사용자 지정 처리기 프로세스를 시작할 작업 디렉터리입니다. 선택적 설정이며 해당 값은 함수 앱 루트를 기준으로 합니다.
arguments 해당 없음 사용자 지정 처리기 프로세스에 전달할 명령줄 인수의 배열입니다.
enableForwardingHttpRequest false 설정된 경우 HTTP 트리거 및 HTTP 출력으로만 구성된 모든 함수는 사용자 지정 처리기 요청 페이로드 대신 원래 HTTP 요청을 전달합니다.

durableTask

구성 설정은 지속형 함수에 대한 바인딩에서 찾을 수 있습니다.

동시성

함수 앱에서 특정 바인딩에 대한 동적 동시성을 사용하도록 설정합니다. 자세한 내용은 동적 동시성을 참조하세요.

    { 
        "concurrency": { 
            "dynamicConcurrencyEnabled": true, 
            "snapshotPersistenceEnabled": true 
        } 
    } 
속성 기본값 설명
dynamicConcurrencyEnabled false 기본적으로 꺼져 있는 이 기능에서 지원하는 모든 트리거에 대해 동적 동시성 동작을 사용하도록 설정합니다.
snapshotPersistenceEnabled true 학습된 동시성 값이 주기적으로 스토리지에 유지되므로 새 인스턴스가 1부터 시작하여 학습을 다시 실행하지 않고 해당 값에서 시작합니다.

eventHub

구성 설정은 Event Hub 트리거 및 바인딩에서 찾을 수 있습니다.

확장

http 및 eventHub같은 바인딩별 설정을 모두 포함하는 개체를 반환하는 속성입니다.

extensionBundle

확장 번들을 사용하면 함수 앱에 호환되는 Functions 바인딩 확장 집합을 추가할 수 있습니다. 자세한 내용은 로컬 개발을 위한 확장 번들을 참조하세요.

{
    "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까지의 모든 번들 버전을 허용하지만 5.0.0은 포함하지 않습니다. 자세한 내용은 버전 범위를 지정하기 위한 간격 표기법을 참조 하세요.

functions

작업 호스트가 실행하는 함수 목록입니다. 빈 배열은 모든 함수를 실행한다는 의미입니다. 로컬로 실행할 때만 사용할 수 있습니다. Azure의 함수 앱에서는 이 설정을 사용하는 대신 Azure Functions에서 함수를 사용하지 않도록 설정하는 방법의 단계를 수행하여 특정 함수를 사용하지 않도록 설정해야 합니다.

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

functionTimeout

모든 함수 실행에 대한 시간 제한 기간을 나타냅니다. 시간 범위 문자열 형식을 따릅니다.

플랜 유형 기본값(분) 최대값(분)
소비 5 10
프리미엄1 30 -1(제한 없음)2
전용(App Service) 30 -1(제한 없음)2

1 프리미엄 플랜 실행은 60분 동안만 보장되지만 기술적으로는 제한이 없습니다.
2 값은 -1 바인딩되지 않은 실행을 나타내지만 고정 상한을 유지하는 것이 좋습니다.

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

healthMonitor

호스트 상태 모니터에 대한 구성 설정

{
    "healthMonitor": {
        "enabled": true,
        "healthCheckInterval": "00:00:10",
        "healthCheckWindow": "00:02:00",
        "healthCheckThreshold": 6,
        "counterThreshold": 0.80
    }
}
속성 기본값 설명
사용 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": {
        ...
    }
}
속성 기본값 설명
fileLoggingMode debugOnly Azure에서 실행할 때 파일 로깅 동작을 결정합니다. never옵션은 , alwaysdebugOnly. 이 설정은 로컬로 실행할 때 사용되지 않습니다. 가능하면 Azure에서 함수를 디버깅할 때 Application Insights를 사용해야 합니다. 부정적인 사용 always 은 앱의 콜드 시작 동작 및 데이터 처리량에 영향을 줍니다. 기본 debugOnly 설정은 Azure Portal을 사용하여 디버깅할 때 로그 파일을 생성합니다.
logLevel 해당 없음 앱의 함수에 대한 로그 범주 필터링을 정의하는 개체입니다. 이 설정을 사용하면 특정 함수에 대한 로깅을 필터링할 수 있습니다. 자세한 내용은 로그 수준 구성을 참조하세요.
콘솔 해당 없음 콘솔 로깅 설정입니다.
applicationInsights 해당 없음 applicationInsights 설정입니다.

managedDependency

관리되는 종속성은 현재 PowerShell 기반 함수에서만 지원되는 기능입니다. 이를 통해 서비스에서 종속성을 자동으로 관리할 수 있습니다. 속성이 enabled 설정 truerequirements.psd1 되면 파일이 처리됩니다. 부 버전이 릴리스되면 종속성이 업데이트됩니다. 자세한 내용은 PowerShell 문서의 관리되는 종속성을 참조하세요.

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

queues

구성 설정은 Storage 큐 트리거 및 바인딩에서 찾을 수 있습니다.

sendGrid

구성 설정은 SendGrid 트리거 및 바인딩에서 찾을 수 있습니다.

serviceBus

구성 설정은 Service Bus 트리거 및 바인딩에서 찾을 수 있습니다.

singleton

Singleton 잠금 동작에 대한 구성 설정입니다. 자세한 내용은 singleton 지원에 대한 GitHub 문제를 참조하세요.

{
    "singleton": {
      "lockPeriod": "00:00:15",
      "listenerLockPeriod": "00:01:00",
      "listenerLockRecoveryPollingInterval": "00:01:00",
      "lockAcquisitionTimeout": "00:01:00",
      "lockAcquisitionPollingInterval": "00:00:03"
    }
}
속성 기본값 설명
lockPeriod 00:00:15 함수 수준 잠금이 적용되는 기간입니다. 잠금은 자동 갱신됩니다.
listenerLockPeriod 00:01:00 수신기 잠금이 적용되는 기간입니다.
listenerLockRecoveryPollingInterval 00:01:00 시작할 때 수신기 잠금을 가져올 수 없는 경우 수신기 잠금 복구에 사용되는 시간 간격입니다.
lockAcquisitionTimeout 00:01:00 런타임이 잠금을 확보하려고 시도하는 최대 시간입니다.
lockAcquisitionPollingInterval 해당 없음 잠금 확보 시도 사이의 간격입니다.

version

이 값은 host.json 스키마 버전을 나타냅니다. v2 이상 버전의 런타임을 대상으로 하는 함수 앱에서는 버전 문자열 "version": "2.0"이 필수 항목입니다. v2와 v3 사이에는 host.json 스키마 변경 내용이 없습니다.

watchDirectories

변경 내용을 모니터링해야 하는 공유 코드 디렉터리 집합입니다. 이 디렉터리의 코드가 변경되면 변경 내용이 함수에 의해 선택되도록 합니다.

{
    "watchDirectories": [ "Shared" ]
}

watchFiles

애플리케이션을 다시 시작해야 하는 변경 내용을 모니터링하는 하나 이상의 파일 이름으로 이루어진 배열입니다. 이렇게 하면 이러한 파일의 코드가 변경되면 함수에서 업데이트를 선택합니다.

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

host.json 값 재정의

host.json 파일 자체는 변경하지 않고 특정 환경에 맞게 host.json 파일의 특정 설정을 구성하거나 수정할 인스턴스가 있을 수 있습니다. 애플리케이션 설정과 동일한 값을 만들어 특정 host.json 값을 재정의할 수 있습니다. 런타임이 형식 AzureFunctionsJobHost__path__to__setting으로 애플리케이션 설정을 찾으면 JSON에 있는 path.to.setting 해당 host.json 설정을 재정의합니다. 애플리케이션 설정으로 표현되는 경우 JSON 계층 구조를 나타내는 데 사용되는 점(.)이 이중 밑줄(__)로 바뀝니다.

예를 들어 로컬로 실행할 때 Application Insight 샘플링을 사용하지 않도록 설정하려는 경우를 예로 들어 보겠습니다. Application Insights를 사용하지 않도록 로컬 host.json 파일을 변경한 경우 배포 중에 이 변경 내용이 프로덕션 앱으로 푸시될 수 있습니다. 이 작업을 수행하는 더 안전한 방법은 파일에서 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 명명 규칙을 따릅니다. 요소 구조에 배열이 포함된 경우 숫자 배열 인덱스는 이 경로의 추가 요소 이름으로 처리되어야 합니다. 자세한 내용은 환경 변수 이름 지정을 참조하세요.

다음 단계