다음을 통해 공유


Azure Functions 런타임 버전 개요

Azure Functions는 현재 두 가지 버전의 런타임 호스트를 지원합니다. 다음 표에는 현재 지원되는 런타임 버전, 지원 수준 및 사용해야 하는 경우가 자세히 설명되어 있습니다.

버전 지원 수준 설명
4.x GA 모든 언어의 함수에 권장되는 런타임 버전입니다. 지원되는 언어 버전을 확인하세요.
1.x GA(2026년 9월 14일 지원 종료) .NET Framework를 사용해야 하는 C# 앱에 대해서만 지원됩니다. 이 버전은 현재 유지 관리 모드에 있으며, 기능 개선은 이후 버전에서만 제공됩니다. 버전 1.x에 대한 지원은 2026년 9월 14일에 종료됩니다. 앱을 .NET Framework 4.8, .NET 8 및 .NET 9를 지원하는 버전 4.x로 마이그레이션하는 것이 좋습니다.

Important

2022년 12월 13일부터 Azure Functions 런타임 버전 2.x 및 3.x에서 실행되는 함수 앱의 추가 지원이 종료되었습니다. 자세한 내용은 사용 중지된 버전을 참조하세요.

이 문서에서는 지원되는 버전 간의 차이점, 각 버전을 만드는 방법, 함수가 실행되는 버전을 변경하는 방법을 자세히 설명합니다.

지원 수준

지원에는 두 가지 수준이 있습니다.

  • 일반 공급(GA) - 완전하게 지원되며 프로덕션용으로 승인되었습니다.
  • 미리 보기 - 아직 지원되지 않지만 향후 GA 상태로 전환될 예정입니다.

언어

함수 앱의 모든 함수가 동일한 언어를 공유해야 합니다. 개발자는 앱을 만들 때 함수 앱에서 함수의 언어를 선택합니다. 함수 앱의 언어는 FUNCTIONS_WORKER_RUNTIME 설정에서 관리되며, 기존 함수가 있을 때는 변경할 수 없습니다.

다음 표에서는 Azure Functions에서 지원하는 .NET 버전을 보여 줍니다. 문서 맨 위에 있는 기본 개발 언어를 선택합니다.

지원되는 .NET 버전은 Functions 런타임 버전과 선택한 실행 모델에 따라 다릅니다.

함수 코드는 별도의 .NET 작업자 프로세스에서 실행됩니다. 지원되는 .NET 및 .NET Framework 버전과 함께 사용합니다. 자세한 내용은 .NET 격리 작업자 프로세스 함수 개발을 참조하세요.

지원되는 버전 지원 수준 예상 커뮤니티 수명 종료 날짜
.NET 9 GA 2026년 5월 12일
.NET 8 GA 2026년 11월 10일
.NET Framework 4.8.1 GA 정책 참조

.NET 6은 이전에 격리된 작업자 모델에서 지원되었지만 2024년 11월 12일에 공식 지원이 종료되었습니다.

.NET 7은 이전에 격리된 작업자 모델에서 지원되었지만 2024년 5월 14일에 공식 지원이 종료되었습니다.

자세한 내용은 격리된 작업자 프로세스에서 C# Azure Functions를 실행하기 위한 가이드를 참조하세요.

다음 표에서는 Java 함수에 지원되는 언어 버전을 보여 줍니다. 문서 맨 위에 있는 기본 개발 언어를 선택합니다.

지원되는 버전 지원 수준 예상 커뮤니티 수명 종료 날짜
Java 21(Linux 전용) 미리 보기를 2028년 9월
Java 17 GA 2027년 9월
Java 11 GA 2027년 9월
Java 8 GA 2026년 11월 30일

자세한 내용은 Azure Functions Java 개발자 가이드를 참조하세요.

다음 표에서는 Node.js 함수에 지원되는 언어 버전을 보여 줍니다. 문서 맨 위에 있는 기본 개발 언어를 선택합니다.

지원되는 버전 지원 수준 예상 커뮤니티 수명 종료 날짜
Node.js 22 프리뷰 2027년 4월 30일
Node.js 20 GA 2026년 4월 30일
Node.js 18 GA 2025년 4월 30일

TypeScript는 JavaScript로의 변환 컴파일링을 통해 지원됩니다. 자세한 내용은 Azure Functions Node.js 개발자 가이드를 참조하세요.

다음 표에서는 PowerShell 함수에 지원되는 언어 버전을 보여 줍니다. 문서 맨 위에 있는 기본 개발 언어를 선택합니다.

지원되는 버전 지원 수준 예상 커뮤니티 수명 종료 날짜
PowerShell 7.4 GA 2026년 11월 10일
PowerShell 7.2 GA 2024년 11월 8일 금요일

자세한 내용은 Azure Functions PowerShell 개발자 가이드를 참조하세요.

다음 표에서는 Python 함수에 지원되는 언어 버전을 보여 줍니다. 문서 맨 위에 있는 기본 개발 언어를 선택합니다.

지원되는 버전 지원 수준 예상 커뮤니티 수명 종료 날짜
Python 3.11 GA 2027년 10월
Python 3.10 GA 2026년 10월
Python 3.9 GA 2025년 10월
Python 3.8 GA 2024년 10월

자세한 내용은 Azure Functions Python 개발자 가이드를 참조하세요.

언어 지원 변경 계획에 대한 정보는 Azure 로드맵을 참조하세요.

이전에 지원되었던 Functions 런타임 버전의 언어 버전에 대한 자세한 내용은 사용 중지된 런타임 버전을 참조하세요.

특정 버전에서 실행

Azure에 게시된 앱에서 사용하는 Functions 런타임 버전은 FUNCTIONS_EXTENSION_VERSION 애플리케이션 설정에 따라 결정됩니다. 경우에 따라 특정 언어의 경우 다른 설정이 적용될 수 있습니다.

기본적으로 Azure Portal에서, Azure CLI을 통해 또는 Visual Studio 도구에서 만든 함수 앱은 버전 4.x로 설정됩니다. 필요에 따라 이 버전을 수정할 수 있습니다. 함수 앱을 만든 후, 함수를 추가하기 전에만 런타임 버전을 1.x로 다운그레이드할 수 있습니다. 기존 함수가 있는 앱에서도 최신 주 버전으로 업데이트할 수 있습니다.

기존 함수 앱 마이그레이션

앱에 기존 함수가 있는 경우 이후 주 런타임 버전으로 이동하기 전에 예방 조치를 취해야 합니다. 다음 문서에서는 언어별 호환성이 손상되는 변경을 포함하여 주 버전 간의 호환성이 손상되는 변경에 대해 자세히 설명합니다. 또한 기존 함수 앱을 성공적으로 마이그레이션하기 위한 단계별 지침을 제공합니다.

Azure에서 앱 버전 변경

다음과 같은 주요 런타임 버전 값이 사용됩니다.

런타임 대상
~4 4.x
~1 1.x

Important

다른 앱 설정 변경 및 함수 코드 변경이 필요할 수 있으므로 이 앱 설정을 임의로 변경하지 않도록 합니다. 기존 함수 앱의 경우 마이그레이션 지침을 따릅니다.

특정 부 버전에 고정

최신 주 버전에서 실행할 때 함수 앱의 문제를 해결하려면 앱을 특정 부 버전에 일시적으로 고정해야 합니다. 고정을 사용하면 최신 주 버전에서 앱을 올바르게 실행할 수 있습니다. 부 버전에 고정하는 방법은 Windows와 Linux 간에 다릅니다. 자세한 내용은 Azure Functions 런타임 버전을 대상으로 지정하는 방법을 참조하세요.

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

최소 확장 버전

바인딩 확장 버전과 Functions 런타임 버전 간에는 기술적으로 상관 관계가 없습니다. 그러나 버전 4.x부터 Functions 런타임은 모든 트리거 및 바인딩 확장에 대해 최소 버전을 적용합니다.

패키지가 최소 필수 버전을 충족하지 않는다는 경고가 표시되면 해당 NuGet 패키지를 평소처럼 최소 버전으로 업데이트해야 합니다. Functions v4.x에서 사용되는 확장에 대한 최소 버전 요구 사항은 연결된 구성 파일에서 확인할 수 있습니다.

C# 스크립트의 경우 다음과 같이 host.json에서 확장 번들 참조를 업데이트합니다.

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

확장 번들 버전과 Functions 런타임 버전 간에는 기술적으로 상관 관계가 없습니다. 그러나 버전 4.x부터 Functions 런타임은 확장 번들에 대해 최소 버전을 적용합니다.

확장 번들 버전이 필요한 최소 버전을 충족하지 않는다는 경고가 표시되는 경우 다음과 같이 host.json에서 기존 확장 번들 참조를 업데이트합니다.

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

확장 번들에 대한 자세한 내용은 확장 번들을 참조하세요.

사용 중지된 버전

이러한 버전의 Functions 런타임은 2022년 12월 13일에 연장된 지원 종료에 도달했습니다.

버전 현재 지원 수준 이전 지원 수준
3.x 지원되지 않음 GA
2.x 지원되지 않음 GA

완전한 지원을 가져오려면 최대한 빨리 앱을 버전 4.x로 마이그레이션해야 합니다. 언어별 마이그레이션 지침 전체를 보려면 Azure Functions 버전 4.x로 앱 마이그레이션을 참조하세요.

버전 2.x 및 3.x를 사용하는 앱은 CI/CD DevOps 파이프라인에서 계속 만들기 및 배포할 수 있으며 모든 기존 앱은 변경 내용 없이 계속 실행됩니다. 그러나 사용자의 앱은 새로운 기능, 보안 패치 및 성능 최적화에 적합하지 않습니다. 앱을 버전 4.x로 업그레이드한 후에만 관련 서비스 지원을 가져올 수 있습니다.

버전 2.x 및 3.x에 대한 지원 종료는 코어 종속성이었던 .NET Core 3.1에 대한 지원 종료로 인해 발생합니다. 이 요구 사항은 Azure Functions에서 지원하는 모든 언어에 영향을 미칩니다.

로컬에서 개발된 애플리케이션 버전

함수 앱을 다음과 같이 업데이트하여 대상 버전을 로컬로 변경할 수 있습니다.

Visual Studio 런타임 버전

Visual Studio에서 프로젝트를 만들 때 런타임 버전을 선택합니다. Visual Studio용 Azure Functions 도구는 두 가지 주요 런타임 버전을 지원합니다. 디버깅 및 게시를 수행할 때 프로젝트 설정에 따라 올바른 버전이 사용됩니다. 버전 설정은 .csproj 파일의 다음 속성에 정의됩니다.

<TargetFramework>net8.0</TargetFramework>
<AzureFunctionsVersion>v4</AzureFunctionsVersion>

격리된 작업자 모델을 사용하는 경우 대상 프레임워크로 net8.0, net6.0 또는 net48을 선택할 수 있습니다. net9.0에 대해 미리 보기 지원을 사용하도록 선택할 수도 있습니다. In Process 모델을 사용하는 경우 net8.0 또는 net6.0만 선택할 수 있으며 Microsoft.NET.Sdk.Functions 확장 집합을 4.4.0이상 포함해야 합니다.

.NET 7은 이전에 격리된 작업자 모델에서 지원되었지만 2024년 5월 14일에 공식 지원이 종료되었습니다.

Visual Studio Code 및 Azure Functions Core Tools

Azure Functions Core Tools는 명령줄 개발 및 Visual Studio Code용 Azure Functions 확장에서도 사용됩니다. 자세한 내용은 Azure Functions Core Tools 설치를 참조하세요.

Visual Studio Code 개발의 경우 설치된 도구의 버전과 일치하도록 azureFunctions.projectRuntime에 대한 사용자 설정을 업데이트해야 할 수도 있습니다. 이 설정은 함수 앱을 만드는 동안 사용되는 템플릿 및 언어도 업데이트합니다.

바인딩

버전 2.x부터 런타임은 다음과 같은 이점을 제공하는 새 바인딩 확장성 모델을 사용합니다.

  • 타사 바인딩 확장 지원.

  • 런타임과 바인딩을 분리. 이렇게 변경하면 바인딩 확장의 버전을 지정하고 독립적으로 릴리스할 수 있습니다. 예를 들어 기본 SDK의 최신 버전을 사용하는 확장 버전으로 업그레이드하도록 선택할 수 있습니다.

  • 사용 중인 바인딩만 런타임에 알려지고 로드되는 가벼운 실행 환경.

HTTP 및 타이머 트리거를 제외한 모든 바인딩은 명시적으로 함수 앱 프로젝트에 추가하거나 포털에 등록해야 합니다. 자세한 내용은 바인딩 확장 등록을 참조하세요.

다음 표에는 각 런타임 버전에서 지원되는 바인딩이 나와 있습니다.

이 표는 Azure Functions 런타임의 주요 버전에서 지원되는 바인딩을 보여 줍니다.

Type 1.x1 2.x 이상2 트리거 입력 출력
Blob Storage
Azure Cosmos DB
Azure Data Explorer
Azure SQL
Dap4
Event Grid
Event Hubs
HTTP 및 웹후크
IoT Hub
Kafka3
Mobile Apps
Notification Hubs
Queue Storage
Redis
RabbitMQ3
SendGrid
Service Bus
SignalR
Table Storage
타이머
Twilio

참고:

  1. 2026년 9월 14일에 Azure Functions 런타임 버전 1.x에 대한 지원이 종료됩니다. 완전한 지원을 받으려면 앱을 버전 4.x로 마이그레이션하는 것이 좋습니다.
  2. 버전 2.x 런타임부터는 HTTP 및 타이머를 제외한 모든 바인딩이 등록되어야 합니다. 바인딩 확장 등록을 참조하세요.
  3. 트리거는 소비 계획에서 지원되지 않습니다. 런타임 기반 트리거가 필요합니다.
  4. Kubernetes, IoT Edge 및 기타 자체 호스팅 모드에서만 지원됩니다.

함수 앱 시간 제한 기간

함수 앱의 함수에 대한 시간 제한 기간은 host.json 프로젝트 파일의 functionTimeout 속성에 의해 정의됩니다. 이 속성은 특히 함수 실행에 적용됩니다. 트리거가 함수 실행을 시작한 후 함수는 시간 제한 기간 내에 반환/응답해야 합니다. 시간 제한을 방지하려면 강력한 함수를 작성해야 합니다. 자세한 내용은 Azure Functions 성능 및 안정성 개선을 참조하세요.

아래의 표에는 특정 플랜에 대한 기본값과 최댓값(분)이 나와 있습니다.

계획 기본값 최댓값1
Flex 사용량 계획 30 무제한2
프리미엄 계획 304 무제한2
전용 계획 304 무제한3
Container Apps 30 바인딩되지않은 5
사용 계획 5 10
  1. 함수 앱 시간 제한 설정에 관계없이 230초는 HTTP 트리거 함수가 요청에 응답하는 데 걸리는 최대 시간입니다. 이는 Azure Load Balancer의 기본 유휴 시간 제한 때문입니다. 처리 시간을 늘리려면 Durable Functions 비동기 패턴 사용을 고려하거나 실제 작업을 연기하고 즉각적인 응답을 반환합니다.
  2. 최대 실행 시간 제한 기간은 적용되지 않습니다. 그러나 함수 실행에 지정된 유예 기간은 Flex 소비 및 프리미엄 플랜의 경우 스케일 인 중 60분이며, 플랫폼 업데이트 중에는 10분의 유예 기간이 제공됩니다.
  3. App Service 요금제를 Always On으로 설정해야 합니다. 플랫폼 업데이트 중에는 10분의 유예 기간이 제공됩니다.
  4. 함수 호스트 런타임 버전 1.x의 기본 시간 제한은 무제한입니다.
  5. 최소 복제본 수가 0으로 설정되면 기본 시간 제한은 앱에서 사용되는 특정 트리거에 따라 달라집니다.

다음 단계

자세한 내용은 다음 리소스를 참조하세요.