다음을 통해 공유


Azure 런타임 업그레이드 중 일반적인 문제 해결

이 문서에서는 런타임에 연결할 수 없고 모듈을 찾을 수 없는 것과 같이 함수 앱 언어 또는 런타임 버전을 업데이트하는 동안 발생할 수 있는 몇 가지 일반적인 문제를 해결하는 방법을 설명합니다.

런타임 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 런타임 버전 변경

  1. Azure Portal 구성~4의 앱 설정인 FUNCTIONS_EXTENSION_VERSION 설정합니다. 자세한 내용은 런타임 버전 변경을 참조하세요.
  2. netFrameworkVersion 사이트 설정을 .NET 6을 대상으로 설정합니다. netFrameworkVersion은 앱 설정이 아닌 SiteConfig 설정입니다. 또한 Azure Portal에서 직접 사용할 수 없습니다. 하지만 Azure Resource Explorer 또는 Azure CLI/PowerShell을 사용하여 설정할 수 있습니다.

자세한 내용은 Functions 런타임 버전을 참조하세요.

Linux용 Functions 런타임 버전 변경

  1. Azure Portal 구성~4의 앱 설정인 FUNCTIONS_EXTENSION_VERSION 설정합니다. 자세한 내용은 런타임 버전 변경을 참조하세요.
  2. CLI(명령줄 인터페이스)<Language>|<LanguageVersion>를 사용하여 사용되는 언어에 따라 로 설정합니다LinuxFxVersion. 자세한 내용은 Linux 함수 앱용 LinuxFxVersion 사용을 참조 하세요. 예를 들어 .NET 6 LinuxFxVersion dotnet|6.0 FUNCTIONS_EXTENSION_VERSION ~4으로 업데이트하려면 .

자세한 내용은 Functions 런타임 버전을 참조하세요.

런타임 버전별로 지원되는 언어 목록 가져오기

런타임 버전별로 지원되는 언어 목록을 참조하세요.

코드를 업데이트한 후 함수 앱의 언어 버전 설정 업데이트

  • PowerShell: Azure PortalPowerShell Core version에서 . 자세한 내용은 PowerShell 버전 변경을 참조하세요.
  • Python: linuxFxVersionpython|3.x로 설정합니다. 자세한 내용은 Python 버전 변경을 참조하세요.
  • Java: -DjavaVersion을 11 또는 17로 사용하여 언어 버전을 지정합니다. 자세한 내용은 배포 버전 지정을 참조하세요.
  • 노드, JavaScript: Windows의 WEBSITE_NODE_DEFAULT_VERSION 경우 앱 설정을 .로 ~16설정합니다. Linux의 경우 CLI를 사용하여 linuxFxVersionnode|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 앱 목록을 가져옵니다.

  1. Azure Portal에서 해당 함수 앱으로 이동합니다.
  2. 진단 및 문제 해결을 선택하여 Azure Functions 진단을 엽니다.
  3. 검색 창에서 함수 앱 언어 또는 런타임 버전 업데이트를 입력하여 직접 실행합니다.
  4. 진단 보고서에서 아래로 스크롤하여 모든 함수 앱>보기 세부 정보 목록을 선택합니다.
  5. 검색 필터를 설정하고 표시를 선택하여 현재 구독의 함수 앱 목록을 가져옵니다.

또는 App Service REST API 호출(GetConfiguration)을 사용하여 이를 확인할 수 있습니다. LinuxFxVersionWindowsFxVersion 버전 정보를 제공합니다.

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 피드백 커뮤니티에 제품 피드백을 제출할 수도 있습니다.