Azure Functions의 .NET용 격리된 작업자 모델과 In-process 모델 간의 차이점

.NET 함수에는 다음 두 가지 실행 모델이 있습니다.

실행 모델 설명
격리된 작업자 모델 함수 코드는 별도의 .NET 작업자 프로세스에서 실행됩니다. 지원되는 .NET 및 .NET Framework 버전과 함께 사용합니다. 자세한 내용은 .NET 격리 작업자 프로세스 함수 개발을 참조하세요.
In Process 모델 함수 코드는 Functions 호스트 프로세스와 동일한 프로세스에서 실행됩니다. .NET의 LTS(장기 지원) 버전만 지원합니다. 자세한 내용은 .NET 클래스 라이브러리 함수 개발을 참조하세요.

이 문서에서는 두 모델 간의 현재 기능 및 동작 상태 차이를 설명합니다. In Process 모델에서 격리된 작업자 모델로 마이그레이션하려면 In Process 모델에서 격리된 작업자 모델로 .NET 앱 마이그레이션을 참조하세요.

실행 모드 비교 테이블

다음 표를 사용하여 두 모델 간의 특성 및 기능 차이점을 비교합니다.

기능/동작 격리된 작업자 모델 In Process 모델3
지원되는 .NET 버전 LTS(장기 지원) 버전
STS(표준 기간 지원) 버전,
.NET Framework
LTS(장기 지원) 버전6
핵심 패키지 Microsoft.Azure.Functions.Worker
Microsoft.Azure.Functions.Worker.Sdk
Microsoft.NET.Sdk.Functions
바인딩 확장 패키지 Microsoft.Azure.Functions.Worker.Extensions.* Microsoft.Azure.WebJobs.Extensions.*
지속성 함수 지원됨 지원됨
바인딩에 의해 노출되는 모델 형식 단순 형식
JSON 직렬화 가능 형식
배열/열거형
서비스 SDK 유형4
단순 형식
JSON 직렬화 가능 형식
배열/열거형
서비스 SDK 유형4
HTTP 트리거 모델 형식 HttpRequestData / HttpResponseData
HttpRequest / IActionResult(ASP.NET Core 통합 사용)5
HttpRequest / IActionResult5
HttpRequestMessage / HttpResponseMessage
출력 바인딩 상호 작용 다음을 사용하여 확장된 모델의 값을 반환합니다.
- 단일 또는 다중 출력
- 출력 배열
반환 값(단일 출력에만 해당),
out 매개 변수,
IAsyncCollector
명령적 바인딩1 지원되지 않음 - 대신 SDK 형식으로 직접 작업 지원됨
종속성 주입 지원됨(.NET 에코시스템과 일치하는 향상된 모델) 지원됨
미들웨어 지원됨 지원되지 않음
로깅 FunctionContext 또는 종속성 주입을 통해 획득한 ILogger<T>/ILogger 함수에 전달된 ILogger
종속성 주입을 통한 ILogger<T>
Application Insights 종속성 지원됨 지원됨
취소 토큰 지원됨 지원됨
콜드 시작 시간2 구성 가능한 최적화 최적화됨
ReadyToRun 지원됨 지원됨

1 런타임에 결정된 매개 변수를 사용하여 서비스와 상호 작용해야 하는 경우 명령적 바인딩을 사용하는 경우 해당 서비스 SDK를 직접 사용하는 것이 좋습니다. SDK는 세부 정보가 적고, 더 많은 시나리오를 다루며, 오류 처리 및 디버깅을 위한 이점이 있습니다. 이 권장 사항은 두 모델에 모두 적용됩니다.

2 미리 보기 프레임워크의 Just-In-Time 로드로 인해 일부 미리 보기 버전의 .NET을 사용하는 경우 콜드 시작 시간이 Windows에 추가로 영향을 줄 수 있습니다. 이러한 영향은 In Process 모델과 Out Of Process 모델 모두에 적용되지만 다른 버전에서 비교할 경우에 두드러질 수 있습니다. 미리 보기 버전의 이 지연은 Linux 계획에 없습니다.

3 C# 스크립트 함수도 In-process로 실행되고 In-process 클래스 라이브러리 함수와 동일한 라이브러리를 사용합니다. 자세한 내용은 Azure Functions C# 스크립트(.csx) 개발자 참조를 참조하세요.

4 서비스 SDK 유형에는 BlobClient와 같은 .NET용 Azure SDK의 형식이 포함됩니다.

5 .NET Framework에서는 ASP.NET Core 형식이 지원되지 않습니다.

6 .NET 8은 격리된 작업자 모델에서 사용할 수 있지만 in-process 모델에서는 아직 지원되지 않습니다. 진행 중인 모델에 대한 향후 옵션을 포함하여 .NET 8 계획에 대한 자세한 내용은 Azure Functions 로드맵 업데이트 게시물을 참조하세요.

지원되는 버전

Functions 런타임 버전은 .NET의 특정 버전을 지원합니다. Functions 버전에 대해 자세히 알아보려면 Azure Functions 런타임 버전 개요를 참조하세요. In Process 또는 격리 작업자 프로세스 중 어떤 상태로 함수가 실행되는지에 따라 지원되는 버전이 달라집니다.

참고 항목

함수 앱에서 사용하는 Functions 런타임 버전을 변경하는 방법을 알아보려면 현재 런타임 버전 보기 및 업데이트를 참조하세요.

다음 표에서는 특정 버전의 Functions에서 사용할 수 있는 가장 높은 수준의 .NET 또는 .NET Framework를 보여 줍니다.

Functions 런타임 버전 격리된 작업자 모델 In Process 모델5
Functions 4.x .NET 8.0
.NET 7.01
.NET 6.02
.NET Framework 4.83
.NET 6.02
Functions 1.x4 해당 없음 .NET Framework 4.8

1 .NET 7은 2024년 5월 14일에 공식 지원이 종료됩니다.
2 .NET 6은 2024년 11월 12일에 공식 지원이 종료됩니다.
3 빌드 프로세스에는 .NET SDK도 필요합니다. 4 2026년 9월 14일에 Azure Functions 런타임 버전 1.x에 대한 지원이 종료됩니다. 자세한 내용은 이 지원 공지를 참조하세요. 지속적인 전체 지원을 위해 앱을 버전 4.x로 마이그레이션해야 합니다.
5 In Process 모델에 대한 지원은 2026년 11월 10일에 종료됩니다. 자세한 내용은 이 지원 공지를 참조하세요. 계속해서 완전한 지원을 받으려면 앱을 격리된 작업자 모델로 마이그레이션해야 합니다.

특정한 이전 부 버전의 삭제를 비롯하여 Azure Functions 릴리스에 대한 최신 소식을 보려면 Azure App Service 공지를 주기적으로 확인하세요.

다음 단계