Azure 런타임 업그레이드 중 일반적인 문제 해결
이 문서에서는 런타임에 연결할 수 없고 모듈을 찾을 수 없는 것과 같이 함수 앱 언어 또는 런타임 버전을 업데이트하는 동안 발생할 수 있는 몇 가지 일반적인 문제를 해결하는 방법을 설명합니다.
"권장되는 작업: .NET 6을 사용하도록 Azure Functions 앱 업데이트"라는 전자 메일을 받는 경우 수행할 작업입니다.
Microsoft .NET Core 3.1에 대한 추가 지원은 2022년 12월 3일에 종료되었습니다. Azure Functions 런타임 v3는 .NET Core 3.1을 기반으로 합니다. 함수 앱을 .NET 6을 사용하고 장기 지원을 제공하는 런타임 버전 4.x로 업데이트하는 것이 좋습니다. 2022년 12월 3일 이후에는 앱이 Functions 런타임 버전 4.x로 업그레이드할 때까지 새 기능, 보안 패치, 성능 최적화 또는 지원을 받을 수 없습니다.
런타임 v3의 Functions 앱은 계속 실행되며 애플리케이션은 영향을 받지 않습니다. 이 날짜 이후에 이러한 Functions 애플리케이션에 코드를 배포할 수 있습니다. 그러나 일반적인 경로를 사용하여 Functions 런타임 v3를 대상으로 하는 애플리케이션을 만드는 기능은 제거됩니다.
자세한 내용 및 마이그레이션 지침은 다음을 참조하세요.
런타임 v4에 대한 함수 앱의 호환성 유효성 검사
- Azure Portal에서 해당 함수 앱으로 이동합니다. 진단 및 문제 해결을 선택하여 Azure Functions 진단을 엽니다. 검색 창에서 함수 앱 언어 또는 런타임 버전 업데이트를 입력하여 직접 실행합니다. 진단 보고서에는 업데이트에 대한 지침이 포함되어 있습니다. 유효성 검사가 완료되면 권장 사항을 검토하고 앱의 모든 문제를 해결합니다.
- Azure Functions는 함수 앱을 4.x로 마이그레이션할 때 발생할 수 있는 문제를 식별하는 데 도움이 되는 업그레이드 전 유효성 검사기를 제공합니다. 동일한 진단 검색 창에서 Functions 4.x 업그레이드 전 유효성 검사기를 입력하여 직접 실행합니다. 유효성 검사가 완료되면 권장 사항을 검토하고 앱의 모든 문제를 해결합니다.
- 4.x 버전으로 로컬 프로젝트 환경을 업그레이드하는 것을 적극 권장합니다. Azure Functions 핵심 도구 버전 4.x를 사용하여 앱을 로컬로 완전히 테스트합니다.
- 프로덕션 슬롯에 배포하기 전에 먼저 스테이징 슬롯을 사용하여 새 런타임 버전에서 Azure의 앱을 테스트하고 확인하는 것이 좋습니다. 슬롯을 사용하여 마이그레이션하려면
WEBSITE_OVERRIDE_STICKY_EXTENSION_VERSIONS=0
를 설정해야 합니다.
Windows용 Functions 런타임 버전 변경
- Azure Portal 구성 창
~4
의 앱 설정인 FUNCTIONS_EXTENSION_VERSION 설정합니다. 자세한 내용은 런타임 버전 변경을 참조하세요. netFrameworkVersion
사이트 설정을 .NET 6을 대상으로 설정합니다.netFrameworkVersion
은 앱 설정이 아닌 SiteConfig 설정입니다. 또한 Azure Portal에서 직접 사용할 수 없습니다. 하지만 Azure Resource Explorer 또는 Azure CLI/PowerShell을 사용하여 설정할 수 있습니다.
자세한 내용은 Functions 런타임 버전을 참조하세요.
Linux용 Functions 런타임 버전 변경
- Azure Portal 구성 창
~4
의 앱 설정인 FUNCTIONS_EXTENSION_VERSION 설정합니다. 자세한 내용은 런타임 버전 변경을 참조하세요. - CLI(명령줄 인터페이스)
<Language>|<LanguageVersion>
를 사용하여 사용되는 언어에 따라 로 설정합니다LinuxFxVersion
. 자세한 내용은 Linux 함수 앱용 LinuxFxVersion 사용을 참조 하세요. 예를 들어 .NET 6LinuxFxVersion
dotnet|6.0
FUNCTIONS_EXTENSION_VERSION
~4
으로 업데이트하려면 .
자세한 내용은 Functions 런타임 버전을 참조하세요.
런타임 버전별로 지원되는 언어 목록 가져오기
런타임 버전별로 지원되는 언어 목록을 참조하세요.
코드를 업데이트한 후 함수 앱의 언어 버전 설정 업데이트
- PowerShell: Azure Portal
PowerShell Core version
에서 . 자세한 내용은 PowerShell 버전 변경을 참조하세요. - Python:
linuxFxVersion
을python|3.x
로 설정합니다. 자세한 내용은 Python 버전 변경을 참조하세요. - Java:
-DjavaVersion
을 11 또는 17로 사용하여 언어 버전을 지정합니다. 자세한 내용은 배포 버전 지정을 참조하세요. - 노드, JavaScript: Windows의
WEBSITE_NODE_DEFAULT_VERSION
경우 앱 설정을 .로~16
설정합니다. Linux의 경우 CLI를 사용하여linuxFxVersion
을node|16
으로 설정합니다. 자세한 내용은 노드 버전 설정을 참조하세요.
Azure Functions 프록시 사용
함수 앱을 최신 런타임 버전으로 성공적으로 업그레이드할 수 있도록 버전 4.x에서 프록시 지원이 다시 제공됩니다. 그러나 가능한 한 빨리 함수 앱을 Azure API Management와 통합하는 것으로 전환하는 것이 좋습니다. API Management를 사용하면 보다 완전한 기능 집합을 활용하여 Functions 기반 API를 정의, 보안, 관리 및 수익을 창출할 수 있습니다. 자세한 내용은 APIM으로 마이그레이션하는 방법 및 Visual Studio를 사용하여 APIM과 Functions 통합을 참조하세요.
런타임 버전 1.x, 2.x 또는 3.x를 사용하는 모든 Azure Functions 앱 목록을 가져옵니다.
- Azure Portal에서 해당 함수 앱으로 이동합니다.
- 진단 및 문제 해결을 선택하여 Azure Functions 진단을 엽니다.
- 검색 창에서 함수 앱 언어 또는 런타임 버전 업데이트를 입력하여 직접 실행합니다.
- 진단 보고서에서 아래로 스크롤하여 모든 함수 앱>보기 세부 정보 목록을 선택합니다.
- 검색 필터를 설정하고 표시를 선택하여 현재 구독의 함수 앱 목록을 가져옵니다.
또는 App Service REST API 호출(GetConfiguration)을 사용하여 이를 확인할 수 있습니다. LinuxFxVersion
및 WindowsFxVersion
버전 정보를 제공합니다.
Functions 런타임 v1에서 v4로 .NET Framework 4.6.1 앱 이동
.NET Framework 4.6.1은 수명이 끝났으므로 앱을 .NET Framework 4.8로 업그레이드해야 합니다. Functions v4에서는 Out-of-Process 모드에서 .NET Framework 4.8 앱을 실행할 수 있습니다. 자세한 내용은 격리 프로세스 가이드를 참조하세요.
마이그레이션된 함수 앱이 시작되지 않거나 런타임 문제가 있습니다.
- .NET 앱의 경우 빌드 및 배포하기 전에 코드를 .NET 6으로 업데이트해야 합니다.
- Azure Portal에서 앱의 런타임 버전을 다시 확인합니다.
- Windows 앱의 경우 CLI 또는 PowerShell을 사용하여
netFrameworkVersion
도 설정해야 합니다. - 권장되는 대로 2.x 이상 확장 번들을 사용하고 있는지 확인합니다. Functions 런타임 버전 4.x에는 버전 2.x 또는 3.0.0이 필요합니다.
- AzureWebJobsDashboard를 사용하여 Azure Storage에 로그인하는 것은 4.x에서 더 이상 지원되지 않습니다. 대신 Application Insights를 사용하여 모니터링합니다.
- Azure Functions 런타임에 연결할 수 없고 스토리지 계정을 공유한다는 메시지가 표시되면 호스트 ID 고려 사항을 참조 하세요.
- Azure Functions 4.x는 Node.js 10 및 12, Python 3.6 및 PowerShell 6을 지원하지 않습니다. 자세한 내용은 v4 런타임에 지원되는 언어 버전을 참조 하세요.
- Python 함수의 경우 모듈 충돌과 관련된 오류가 있고 모듈을 찾을 수 없는 경우 앱 설정에서 1로 설정
PYTHON_ISOLATE_WORKER_DEPENDENCIES
해 보세요. - 기존 함수 앱 마이그레이션을 검토합니다.
- 런타임 문제의 경우 Azure Portal의 문제 진단 및 해결 옵션에서 함수 앱을 검색하거나 오류를 보고하고 진단 보고서에서 오류 메시지 및 솔루션을 검토합니다. 또한 Function 구성 검사 감지기를 검토하여 구성이 올바른지 확인합니다.
- 추가 문제 해결 팁은 Azure 함수 앱을 V4로 업그레이드할 때의 블로그 문제를 검토하세요.
도움을 요청하십시오.
질문이 있거나 도움이 필요한 경우 지원 요청을 생성하거나Azure 커뮤니티 지원에 문의하세요. Azure 피드백 커뮤니티에 제품 피드백을 제출할 수도 있습니다.