함수 앱은 Azure Functions 런타임의 특정 버전에서 실행됩니다. 기본적으로 함수 런타임의 최신 4.x 버전에서 함수 앱을 만듭니다. 지원되는 주 버전에서 실행되는 경우에만 사용자의 함수 앱이 지원됩니다. 이 문서에서는 필요한 경우 특정 버전의 Functions 런타임을 대상으로 지정하거나 고정 하도록 Azure에서 함수 앱을 구성하는 방법을 설명합니다.
고려 사항
특정 런타임 버전을 대상으로 지정할 때는 다음 사항을 고려해야 합니다.
-
Flex 소비 계획은 런타임 버전 4.x에서만 실행됩니다. Flex 소비 계획은 앱 설정을 지원하지
FUNCTIONS_EXTENSION_VERSION않으므로 이 계획에서 실행할 때 앱은 특정 런타임 버전을 대상으로 지정할 수 없습니다. - 특정 버전을 대상으로 지정하는 방법은 사용자가 Windows와 Linux 중 어느 쪽을 실행하는지에 따라 다릅니다.
- 이 문서는 Windows 또는 Linux에만 적용됩니다. 사용자의 운영 체제를 문서 상단에서 선택합니다.
- 가능하면 항상 지원되는 최신 런타임 버전에서 앱을 실행합니다. 최신 버전에 문제가 있는 경우에만 지시에 따라 앱을 특정 버전에 고정하세요. 사용자의 함수가 올바르게 실행되는 즉시 항상 런타임의 최신 버전으로 업그레이드하도록 하세요.
- 로컬 개발 중에는, Azure Functions Core Tools의 설치된 버전과 Azure에서 함수 앱이 사용하는 주 런타임 버전이 일치해야 합니다. 자세한 내용은 Core Tools 버전에서 확인할 수 있습니다.
사용자의 런타임 버전 업데이트하기
가능하면 항상 지원되는 최신 버전의 Azure Functions 런타임에서 함수 앱을 실행합니다. 함수 앱이 현재 이전 버전의 런타임에서 실행 중인 경우 앱을 버전 4.x로 마이그레이션합니다.
사용자의 앱에 기존 함수가 있는 경우에는, 더 높은 런타임 버전으로 업그레이드하기 전에 예방 조치를 취해야 합니다. 다음 문서에서는 언어별 호환성이 손상되는 변경을 포함하여 주 버전 간의 호환성이 손상되는 변경에 대해 자세히 설명합니다. 또한 기존 함수 앱의 성공적인 마이그레이션을 위한 단계별 지침을 제공합니다.
현재 런타임 버전은 현재 런타임 버전 보기에서 확인할 수 있습니다.
현재 런타임 버전 보기
함수 앱의 현재 런타임 버전은 다음 방법 중 하나로 확인할 수 있습니다.
다음 절차를 따라서 현재 함수 앱에서 사용하는 런타임 버전을 보고 업데이트하세요.
Azure Portal에서 함수 앱으로 이동합니다.
설정을 확장한 다음, 구성을 선택합니다.
함수 런타임 설정 탭에서 런타임 버전을 확인합니다. 이 예제에서, 해당 버전은
~4로 설정됩니다.
특정 버전으로 고정하기
Azure Functions를 사용하면 지정된 함수 앱에서 사용하는 런타임 버전을 FUNCTIONS_EXTENSION_VERSION 앱 설정을 사용하여 대상으로 지정할 수 있습니다. 주 버전(~4)만 지정하면, 함수 앱이 새 부 버전의 런타임을 사용 가능해지는 즉시 자동으로 업데이트됩니다. 부 버전 업데이트는 새 부 버전이 함수를 중단하는 변경 내용을 도입할 가능성이 없으므로 자동으로 업데이트됩니다.
Linux 앱은 linuxFxVersion 사이트 설정과 함께 FUNCTIONS_EXTENSION_VERSION을 사용하여 함수를 실행할 올바른 Linux 기본 이미지를 결정합니다. Linux에서 새 함수 앱을 생성하면, 런타임은 올바른 기본 이미지를 사용자의 언어 스택의 런타임 버전에 기반하여 자동으로 선택합니다.
특정 런타임 버전에 고정하면 함수 앱이 다시 시작됩니다.
특정 부 버전(예: 4.0.12345) FUNCTIONS_EXTENSION_VERSION을 지정하는 경우 자동 버전 업데이트로 다시 이동하도록 명시적으로 선택할 때까지 함수 앱을 해당 런타임의 특정 버전에 고정합니다. 함수 앱이 주 버전을 대상으로 지정하지 못하게 하는 문제를 해결하는 동안에는, 특정 부 버전에만 고정하세요. 이전 부 버전은 프로덕션 환경에서 정기적으로 제거됩니다. 함수 앱이 나중에 제거되는 부 버전에 고정되면 함수 앱은 설정된 버전 대신 가장 가까운 기존 버전에서 FUNCTIONS_EXTENSION_VERSION실행됩니다.
App Service 공지 사항에서 부 버전 제거를 발표합니다.
참고
Visual Studio에서, 런타임의 특정 부 버전에 고정된 앱에 게시하려고 하는 경우에 최신 버전으로 업데이트하거나 게시를 취소하라는 대화 상자가 표시됩니다. 특정 부 버전을 사용해야 할 때, 이 확인을 피하려면 <DisableFunctionExtensionVersionUpdate>true</DisableFunctionExtensionVersionUpdate> 속성을 사용자의 .csproj 파일에 추가합니다.
사용자의 앱을 런타임의 특정 버전에 일시적으로 고정하려면, 다음 방법 중 하나를 사용하세요.
다음 절차를 따라서 현재 함수 앱에서 사용하는 런타임 버전을 보고 업데이트하세요.
Azure Portal에서 함수 앱으로 이동합니다.
설정을 확장한 다음, 구성을 선택합니다.
함수 런타임 설정 탭에서 런타임 버전을 확인합니다. 이 예제에서, 해당 버전은
~4로 설정됩니다.
특정 부 버전에 사용자의 앱을 고정하려면, 왼쪽 창에서 설정을 확장한 다음 환경 변수를 선택합니다.
앱 설정 탭에서 FUNCTIONS_EXTENSION_VERSION을 선택하고, 값을 필요한 부 버전으로 변경한 다음 적용을 선택합니다.
적용을 선택한 다음 확인을 선택하여 변경 사항을 적용하고, 해당 앱을 다시 시작합니다.
애플리케이션 설정에 이 변경 사항이 적용된 후에 함수 앱이 다시 시작됩니다.
Linux의 특정 런타임 버전에 함수 앱을 고정하려면 사이트 설정에서linuxFxVersion 버전별 기본 이미지 URL을 형식DOCKER|<PINNED_VERSION_IMAGE_URI>으로 설정합니다.
중요합니다
Linux의 고정된 기능 앱은 정기적인 보안 및 호스트 기능 업데이트를 받지 않습니다. 기술 지원 엔지니어가 이와 다른 설정을 권장하지 않는 한 FUNCTIONS_EXTENSION_VERSION 설정과 언어 및 버전에 대한 표준 linuxFxVersion 값(예: Python|3.12)을 사용합니다. 유효한 값에 대한 내용은 linuxFxVersion 참조 문서에서 확인할 수 있습니다.
특정 런타임에 대한 고정은 사용량 플랜에서 실행되는 Linux 함수 앱에 대해 현재 지원되지 않습니다.
다음 예제에서는 특정 런타임 버전 4.14.0.3에 Node.js 16 함수 앱을 고정하는 데 필요한 linuxFxVersion 값을 보여 줍니다.
DOCKER|mcr.microsoft.com/azure-functions/node:4.14.0.3-node16
필요한 경우 기술 지원 엔지니어가 애플리케이션에 유효한 기본 이미지 URI를 제공할 수 있습니다.
다음 Azure CLI 명령을 사용하여 linuxFxVersion을 보고 설정합니다. 현재는 포털에서 또는 Azure PowerShell을 사용하여 linuxFxVersion을 설정할 수 없습니다.
현재 런타임 버전을 확인하려면, az functionapp config show 명령을 사용합니다.
az functionapp config show --name <function_app> \ --resource-group <my_resource_group> --query 'linuxFxVersion' -o tsv이 코드에서,
<function_app>을 사용자의 함수 앱 이름으로 교체합니다. 또한,<my_resource_group>을 사용자의 함수 앱의 리소스 그룹 이름으로 교체합니다.linuxFxVersion의 현재 값이 반환됩니다.함수 앱에서
linuxFxVersion설정을 업데이트하려면, az functionapp config set 명령을 사용합니다.az functionapp config set --name <FUNCTION_APP> \ --resource-group <RESOURCE_GROUP> \ --linux-fx-version <LINUX_FX_VERSION><FUNCTION_APP>을 사용자의 함수 앱 이름으로 교체합니다. 또한,<RESOURCE_GROUP>을 사용자의 함수 앱의 리소스 그룹 이름으로 교체합니다. 마지막으로<LINUX_FX_VERSION>을 기술 지원 엔지니어가 제공한 특정 이미지 값으로 바꿉니다.
이전의 코드 예제에서 Cloud Shell 열기를 선택함으로써, Azure Cloud Shell에서 이러한 명령을 실행할 수 있습니다. 또한 로컬로 Azure CLI를 사용하여, az login을 실행하여 로그인한 후 이 명령을 실행할 수도 있습니다.
사이트 구성이 변경된 후 함수 앱이 다시 시작됩니다.