source

Azure 함수 - "초기화된 언어 작업자를 찾지 못했습니다."

nicesource 2023. 5. 24. 22:12
반응형

Azure 함수 - "초기화된 언어 작업자를 찾지 못했습니다."

나는 Azure에서 Azure 기능을 실행하고 있는데, 이 기능은 BLOB 저장 컨테이너에 파일이 업로드되면서 작동합니다.이 기능은 새 BLOB(파일)를 감지하지만 다음 메시지를 출력합니다.Did not find any initialized language workers.

설정:

  • Python 3.6.8을 사용한 Azure 함수
  • Linux 시스템에서 실행 중
  • zure devops를 사용하여 구축 및 구현(ci/cd 기능용)
  • 블롭 트리거 기능

나는 동일한 blob 저장 컨테이너, 동일한 구성 값을 사용하여 로컬로 코드를 실행했고 azure 함수의 로컬 인스턴스가 예상대로 작동합니다.

함수의 핵심 목적은 blob 스토리지 컨테이너에 업로드된 .xml 파일을 읽고 xml의 데이터를 구문 분석 및 변환하여 코스모스 DB에 Json으로 저장하는 것입니다.

cosmos db에 있는 내 문서로 로컬 인스턴스와 같이 프로세스가 완료될 것으로 예상되지만 다음 오류로 인해 함수가 실제로 아무것도 처리하지 못하는 것 같습니다.

Did not find any initialized language workers

질문을 받았을 때 트로이 위트프트의 대답은 거의 틀림없이 옳았지만, 이 오류 메시지는 매우 일반적입니다.최근 런타임 3.0.14287.0에서 이 오류가 발생했습니다.저는 약 1시간 동안 많은 시도된 호출에서 오류를 보았지만, 그 이전과 이후에는 아무런 개입 없이 모든 것이 정상적으로 작동했습니다.

저는 Azure 지원 엔지니어와 함께 일했는데, 이 엔지니어는 일반적으로 유용할 수 있는 몇 가지 조언을 해주었습니다.

  • Python 버전: 함수 런타임 버전이 있는 경우~3구성 블레이드 아래에서 설정하면 플랫폼은 파이썬 버전 중 하나를 선택할 수 있습니다. 3.6,3.7또는3.8코드를 실행합니다.따라서 이 세 가지 버전 모두에 대해 코드를 테스트해야 합니다.또는 해당 링크의 제안에 따라 다음을 사용하여 기능 앱을 만듭니다.--runtime-version특정 python 버전을 지정하도록 전환합니다.

  • 소비 계획: 이 오류는 소비 가격이 높은 앱이 유휴 상태가 되어 다시 준비하는 데 약간의 시간이 소요된 것과 관련이 있을 수 있습니다.물론 이는 앱의 사용 패턴에 따라 다릅니다. (아마도 앱이 다시 시작하려고 앱이 사용 중인 Azure 데이터 센터가 상당히 바쁘다면, 일부 리소스를 사용할 수 있을 때까지 기다려야수도 있다는 것을 추측합니다.)당신은 항상 켜져 있는 기능 앱에 돈을 지불하거나, 앱이 너무 오랫동안 공회전하는 것을 멈추기 위해 일종의 하트비트 프로세스를 조작함으로써 이 문제를 해결할 수 있습니다. (HTTP 트리거로 가장 쉬움: 아마도 그냥 핑?)

  • Insights: Application Insights에서 할 수 를 볼 수.ARM authentication token validation failed이는 에서 제기되었습니다.Microsoft.Azure.WebJobs.Script.WebHost.Security.Authentication.ArmAuthenticationHandler.HandleAuthenticate()/src/azure-functions-host/src/WebJobs.Script.WebHost/Security/Authentication/Arm/ArmAuthenticationHandler.cs다음과 같은 가장 안쪽 예외가 있는 긴 스택 추적이 있었습니다.System.Security.Cryptography.CryptographicException : Padding is invalid and cannot be removed.우리 둘 다 이것을 완전히 이해할 수 없었고 나는 이 오류에 대한 책임이 다음과 같은 것에 있는지 확실하지 않습니다.HandleAuthenticate()(...의을 무시함) call outside(으)로 합니다.에서 제외)어디서?)

이러한 점의 마지막은 Azure Functions Host 코드베이스 내의 일부 모호한 버그이거나 다른 플랫폼 문제이거나 완전히 오해의 소지가 있고 관련이 없을 수 있습니다.

오류는 같지만 기술, 환경 및 근본 원인은 다릅니다.기술 네트워크 5, 대상 시스템 창.이 경우 종속성 주입을 사용하여 몇 가지 서비스를 추가하고 내부의 환경 변수에서 하나의 매개 변수를 얻었습니다.서비스 구성() 섹션에서 배포할 때 응용 프로그램 설정에 변수를 추가하는 것을 잊었습니다. 이로 인해 이 이상한 오류가 발생했습니다.

이는 SDK 버전 때문입니다. 저는 Azure에 새로운 기능 App을 배포하고 코드를 배포하는 것을 제안합니다. 확인해야 할 두 가지 사항:

  1. 로컬 기능 앱 SDK 버전이 Azure 기능 앱과 일치하는지 확인합니다.
  2. Python 버전 양쪽을 확인합니다.

이 오류는 github 문제 #4384일 가능성이 높습니다.이 버그가 확인되어 2020년 6월 중순에 수정 사항이 릴리스되었습니다.버전 3.0.14063 이상에서 실행되는 앱은 문제가 없습니다.버전 목록은 여기에 있습니다.

Zure 응용프로그램 통찰력을 사용하여 버전을 확인할 수 있습니다.KUSTO 로그를 쿼리합니다.예외 테이블인 zure SDK 열에는 사용자 버전이 있습니다.

전용 앱 서비스 요금제에 가입한 경우 앱을 삭제하고 다시 배포하여 Microsoft에서 최신 버전을 "풀"할 수 있습니다.사용 계획 중인 경우 이 버그 수정이 모든 서버에 롤아웃될 때까지 기다려야 할 수 있습니다.

원인을 찾는 데도 시간이 좀 걸렸지만, 그것은 Azure Functions에서 사용하는 것과 상충되는 버전의 프로토of를 설치하는 것과 관련이 있었습니다.맞아요, 서류에 그것에 대한 경고가 있었어요.내가 어떻게 찾았는지: 다음으로 갔습니다.<your app name>.scm.azurewebsites.net/api/logstream제가 찾을 수 있는 오류가 있는지 찾아봤습니다.

언급URL : https://stackoverflow.com/questions/56832315/azure-function-did-not-find-any-initialized-language-workers

반응형